All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:85,1
    - Dst: vfprintf
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:86,1
    - Dst: va_end
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: unrar_dbgmsg_internal
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - vfprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void unrar_dbgmsg_internal(const char* str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:104,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:109,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:114,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:119,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:124,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:129,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:133,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:137,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:142,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:146,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:150,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:154,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:158,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:162,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 1
    argNames:
    - retcode
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 166
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 166
    functionName: unrar_retcode
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - unrar_dbgmsg
    linkageType: ''
    returnType: cl_unrar_error_t
    signature: cl_unrar_error_t unrar_retcode(int retcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: unrar_strnlen
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t unrar_strnlen(const char* s, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unrar_strnlen
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:185,1
    - Dst: malloc
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:186,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 195
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 195
    functionName: unrar_strndup
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - unrar_strnlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: char * unrar_strndup(const char* s, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:204,1
    - Dst: calloc
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:211,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:213,1
    - Dst: calloc
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:220,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:222,1
    - Dst: RAROpenArchiveEx
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:228,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:230,1
    - Dst: unrar_retcode
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:231,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:237,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:241,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:245,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:249,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:253,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:257,1
    - Dst: MIN
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:262,1
    - Dst: unrar_strndup
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:263,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:265,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:270,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:271,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:272,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:273,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:274,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:275,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:276,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:277,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:278,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:280,1
    - Dst: free
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:288,1
    - Dst: free
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:291,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 86
    argCount: 5
    argNames:
    - filename
    - hArchive
    - comment
    - comment_size
    - debug_flag
    argTypes:
    - char*
    - void**
    - char**
    - uint32_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 295
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 295
    functionName: unrar_open
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - calloc
    - RAROpenArchiveEx
    - unrar_strndup
    - MIN
    - free
    - unrar_dbgmsg
    - unrar_retcode
    linkageType: ''
    returnType: cl_unrar_error_t
    signature: cl_unrar_error_t unrar_open(const char* filename, void** hArchive,
      char** comment, uint32_t* comment_size, uint8_t debug_flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:313,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:316,1
    - Dst: memset
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:320,1
    - Dst: memset
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:331,1
    - Dst: RARReadHeaderEx
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:333,1
    - Dst: unrar_retcode
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:335,1
    - Dst: strncpy
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:341,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:347,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:348,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:349,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:350,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:351,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:352,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:359,1
    - Dst: free
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - hArchive
    - file_metadata
    argTypes:
    - void*
    - unrar_metadata_t*
    constantsTouched: []
    func_position:
      end: 372
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 372
    functionName: unrar_peek_file_header
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - memset
    - RARReadHeaderEx
    - strncpy
    - free
    - unrar_dbgmsg
    - unrar_retcode
    linkageType: ''
    returnType: cl_unrar_error_t
    signature: cl_unrar_error_t unrar_peek_file_header(void* hArchive, unrar_metadata_t*
      file_metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:380,1
    - Dst: RARSetCallback
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:386,1
    - Dst: RARProcessFile
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:389,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:391,1
    - Dst: unrar_retcode
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:393,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:398,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - hArchive
    - destPath
    - outputBuffer
    argTypes:
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 408
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 408
    functionName: unrar_extract_file
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - unrar_retcode
    - RARSetCallback
    - unrar_dbgmsg
    - RARProcessFile
    linkageType: ''
    returnType: cl_unrar_error_t
    signature: cl_unrar_error_t unrar_extract_file(void* hArchive, const char* destPath,
      char* outputBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:416,1
    - Dst: RARProcessFile
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:420,1
    - Dst: unrar_retcode
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:422,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - hArchive
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 433
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 433
    functionName: unrar_skip_file
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - unrar_retcode
    - unrar_dbgmsg
    - RARProcessFile
    linkageType: ''
    returnType: cl_unrar_error_t
    signature: cl_unrar_error_t unrar_skip_file(void* hArchive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RARCloseArchive
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hArchive
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: unrar_close
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - RARCloseArchive
    linkageType: ''
    returnType: void
    signature: void unrar_close(void* hArchive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:449,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:458,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:461,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:464,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:474,1
    - Dst: memset
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:478,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:481,1
    - Dst: unrar_dbgmsg
      Src: /src/clamav/libclamunrar_iface/unrar_iface.cpp:486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - msg
    - UserData
    - P1
    - P2
    argTypes:
    - UINT
    - LPARAM
    - LPARAM
    - LPARAM
    constantsTouched: []
    func_position:
      end: 490
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 490
    functionName: CallbackProc
    functionSourceFile: /src/clamav/libclamunrar_iface/unrar_iface.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - unrar_dbgmsg
    linkageType: ''
    returnType: int
    signature: int CallbackProc(UINT msg, LPARAM UserData, LPARAM P1, LPARAM P2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: main
    functionSourceFile: /src/clamav/cmake/CheckFileOffsetBits.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 9
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 9
    functionName: main
    functionSourceFile: /src/clamav/cmake/CheckStructPacking_PRAGMA_PACK.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: main
    functionSourceFile: /src/clamav/cmake/CheckStructPacking_PRAGMA_PACK_HPPA.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/clamav/cmake/CheckUnamePosix.c:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 6
    functionName: main
    functionSourceFile: /src/clamav/cmake/CheckUnamePosix.c
    functionUses: 0
    functionsReached:
    - uname
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 3
    functionName: static_foo
    functionSourceFile: /src/clamav/cmake/TestInline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: foo_t
    signature: foo_t static_foo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 4
    functionName: foo
    functionSourceFile: /src/clamav/cmake/TestInline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: foo_t
    signature: foo_t foo()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 5
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 5
    functionName: main
    functionSourceFile: /src/clamav/cmake/TestInline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/cmake/CheckFDPassing.c:42,1
    - Dst: CMSG_LEN
      Src: /src/clamav/cmake/CheckFDPassing.c:47,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/clamav/cmake/CheckFDPassing.c:49,1
    - Dst: CMSG_LEN
      Src: /src/clamav/cmake/CheckFDPassing.c:50,1
    - Dst: CMSG_DATA
      Src: /src/clamav/cmake/CheckFDPassing.c:53,1
    - Dst: sendmsg
      Src: /src/clamav/cmake/CheckFDPassing.c:55,1
    - Dst: perror
      Src: /src/clamav/cmake/CheckFDPassing.c:56,1
    - Dst: close
      Src: /src/clamav/cmake/CheckFDPassing.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: send_fd
    functionSourceFile: /src/clamav/cmake/CheckFDPassing.c
    functionUses: 0
    functionsReached:
    - perror
    - close
    - memset
    - sendmsg
    - CMSG_DATA
    - CMSG_LEN
    - CMSG_FIRSTHDR
    linkageType: ''
    returnType: int
    signature: int send_fd(int s, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/clamav/cmake/CheckFDPassing.c:66,1
    - Dst: fprintf
      Src: /src/clamav/cmake/CheckFDPassing.c:67,1
    - Dst: memcmp
      Src: /src/clamav/cmake/CheckFDPassing.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: testfd
    functionSourceFile: /src/clamav/cmake/CheckFDPassing.c
    functionUses: 0
    functionsReached:
    - fprintf
    - memcmp
    - read
    linkageType: ''
    returnType: int
    signature: int testfd(int desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/cmake/CheckFDPassing.c:82,1
    - Dst: recvmsg
      Src: /src/clamav/cmake/CheckFDPassing.c:90,1
    - Dst: perror
      Src: /src/clamav/cmake/CheckFDPassing.c:91,1
    - Dst: fprintf
      Src: /src/clamav/cmake/CheckFDPassing.c:95,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/clamav/cmake/CheckFDPassing.c:98,1
    - Dst: CMSG_NXTHDR
      Src: /src/clamav/cmake/CheckFDPassing.c:99,1
    - Dst: CMSG_LEN
      Src: /src/clamav/cmake/CheckFDPassing.c:100,1
    - Dst: testfd
      Src: /src/clamav/cmake/CheckFDPassing.c:104,1
    - Dst: close
      Src: /src/clamav/cmake/CheckFDPassing.c:105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - desc
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 109
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 109
    functionName: recv_fd
    functionSourceFile: /src/clamav/cmake/CheckFDPassing.c
    functionUses: 0
    functionsReached:
    - perror
    - close
    - memset
    - recvmsg
    - CMSG_LEN
    - fprintf
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - testfd
    linkageType: ''
    returnType: int
    signature: int recv_fd(int desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/clamav/cmake/CheckFDPassing.c:118,1
    - Dst: perror
      Src: /src/clamav/cmake/CheckFDPassing.c:119,1
    - Dst: socketpair
      Src: /src/clamav/cmake/CheckFDPassing.c:123,1
    - Dst: perror
      Src: /src/clamav/cmake/CheckFDPassing.c:124,1
    - Dst: fork
      Src: /src/clamav/cmake/CheckFDPassing.c:128,1
    - Dst: perror
      Src: /src/clamav/cmake/CheckFDPassing.c:129,1
    - Dst: exit
      Src: /src/clamav/cmake/CheckFDPassing.c:131,1
    - Dst: recv_fd
      Src: /src/clamav/cmake/CheckFDPassing.c:131,1
    - Dst: send_fd
      Src: /src/clamav/cmake/CheckFDPassing.c:134,1
    - Dst: kill
      Src: /src/clamav/cmake/CheckFDPassing.c:135,1
    - Dst: waitpid
      Src: /src/clamav/cmake/CheckFDPassing.c:136,1
    - Dst: write
      Src: /src/clamav/cmake/CheckFDPassing.c:139,1
    - Dst: close
      Src: /src/clamav/cmake/CheckFDPassing.c:140,1
    - Dst: close
      Src: /src/clamav/cmake/CheckFDPassing.c:143,1
    - Dst: waitpid
      Src: /src/clamav/cmake/CheckFDPassing.c:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 147
    functionName: main
    functionSourceFile: /src/clamav/cmake/CheckFDPassing.c
    functionUses: 0
    functionsReached:
    - perror
    - send_fd
    - close
    - pipe
    - exit
    - waitpid
    - write
    - socketpair
    - fork
    - kill
    - recv_fd
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 6
    functionName: main
    functionSourceFile: /src/clamav/cmake/CheckSignedRightShift.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mallinfo
      Src: /src/clamav/cmake/CheckMallinfo.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 8
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 8
    functionName: main
    functionSourceFile: /src/clamav/cmake/CheckMallinfo.c
    functionUses: 0
    functionsReached:
    - mallinfo
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:36,1
    - Dst: MAKEWORD
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:36,1
    - Dst: pthread_win32_process_attach_np
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:38,1
    - Dst: pthread_win32_thread_attach_np
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:42,1
    - Dst: pthread_win32_thread_detach_np
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:46,1
    - Dst: WSACleanup
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:50,1
    - Dst: pthread_win32_thread_detach_np
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:51,1
    - Dst: pthread_win32_process_detach_np
      Src: /src/clamav/libfreshclam/libfreshclam_main.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hm
    - why
    - rsrv
    argTypes:
    - HMODULE
    - DWORD
    - LPVOID
    constantsTouched: []
    func_position:
      end: 55
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 55
    functionName: DllMain
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_main.c
    functionUses: 0
    functionsReached:
    - pthread_win32_thread_attach_np
    - pthread_win32_thread_detach_np
    - WSACleanup
    - MAKEWORD
    - pthread_win32_process_attach_np
    - WSAStartup
    - pthread_win32_process_detach_np
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HMODULE hm, DWORD why, LPVOID rsrv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - fcerror
    argTypes:
    - fc_error_t
    constantsTouched: []
    func_position:
      end: 124
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 124
    functionName: fc_strerror
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fc_strerror(fc_error_t fcerror)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_cleanup
      Src: /src/clamav/libfreshclam/libfreshclam.c:314,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:317,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:321,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:325,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:329,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:333,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:337,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:341,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:345,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:349,1
    - Dst: codesign_verifier_free
      Src: /src/clamav/libfreshclam/libfreshclam.c:353,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 355
    functionName: fc_cleanup
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - codesign_verifier_free
    - free
    - curl_global_cleanup
    linkageType: ''
    returnType: void
    signature: void fc_cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam.c:366,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:367,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:372,1
    - Dst: opendir
      Src: /src/clamav/libfreshclam/libfreshclam.c:374,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:375,1
    - Dst: readdir
      Src: /src/clamav/libfreshclam/libfreshclam.c:380,1
    - Dst: strstr
      Src: /src/clamav/libfreshclam/libfreshclam.c:383,1
    - Dst: strstr
      Src: /src/clamav/libfreshclam/libfreshclam.c:384,1
    - Dst: strncmp
      Src: /src/clamav/libfreshclam/libfreshclam.c:399,1
    - Dst: mprintf
      Src: /src/clamav/libfreshclam/libfreshclam.c:405,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam.c:406,1
    - Dst: mprintf
      Src: /src/clamav/libfreshclam/libfreshclam.c:407,1
    - Dst: closedir
      Src: /src/clamav/libfreshclam/libfreshclam.c:420,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - databaseList
    - nDatabases
    argTypes:
    - char**
    - uint32_t
    constantsTouched: []
    func_position:
      end: 424
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 424
    functionName: fc_prune_database_directory
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - closedir
    - chdir
    - strstr
    - unlink
    - opendir
    - readdir
    - logg
    - strncmp
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t fc_prune_database_directory(char **databaseList, uint32_t
      nDatabases)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - v1
    - v1_len
    - v2
    - v2_len
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 459
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 459
    functionName: version_string_compare
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int version_string_compare(char *v1, size_t v1_len, char *v2, size_t
      v2_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:469,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:473,1
    - Dst: cl_engine_new
      Src: /src/clamav/libfreshclam/libfreshclam.c:474,1
    - Dst: cl_engine_set_clcb_stats_submit
      Src: /src/clamav/libfreshclam/libfreshclam.c:483,1
    - Dst: cl_load
      Src: /src/clamav/libfreshclam/libfreshclam.c:485,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:489,1
    - Dst: cl_strerror
      Src: /src/clamav/libfreshclam/libfreshclam.c:489,1
    - Dst: cli_bytecode_prepare2
      Src: /src/clamav/libfreshclam/libfreshclam.c:494,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:498,1
    - Dst: cl_strerror
      Src: /src/clamav/libfreshclam/libfreshclam.c:498,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:502,1
    - Dst: cli_hashset_destroy
      Src: /src/clamav/libfreshclam/libfreshclam.c:510,1
    - Dst: cl_engine_free
      Src: /src/clamav/libfreshclam/libfreshclam.c:512,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - dbFilename
    - bBytecodeEnabled
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 516
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 516
    functionName: fc_test_database
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - cl_load
    - cl_engine_free
    - cl_engine_set_clcb_stats_submit
    - cl_engine_new
    - logg
    - cli_bytecode_prepare2
    - cli_hashset_destroy
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t fc_test_database(const char *dbFilename, int bBytecodeEnabled)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:536,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:547,1
    - Dst: dnsquery
      Src: /src/clamav/libfreshclam/libfreshclam.c:551,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:552,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:556,1
    - Dst: cli_strtok
      Src: /src/clamav/libfreshclam/libfreshclam.c:561,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:562,1
    - Dst: atoi
      Src: /src/clamav/libfreshclam/libfreshclam.c:566,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:567,1
    - Dst: time
      Src: /src/clamav/libfreshclam/libfreshclam.c:570,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:572,1
    - Dst: cli_strtok
      Src: /src/clamav/libfreshclam/libfreshclam.c:579,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:580,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:586,1
    - Dst: cli_strtok
      Src: /src/clamav/libfreshclam/libfreshclam.c:592,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:593,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:597,1
    - Dst: strncpy
      Src: /src/clamav/libfreshclam/libfreshclam.c:604,1
    - Dst: get_version
      Src: /src/clamav/libfreshclam/libfreshclam.c:604,1
    - Dst: strstr
      Src: /src/clamav/libfreshclam/libfreshclam.c:608,1
    - Dst: strstr
      Src: /src/clamav/libfreshclam/libfreshclam.c:609,1
    - Dst: strstr
      Src: /src/clamav/libfreshclam/libfreshclam.c:610,1
    - Dst: version_string_compare
      Src: /src/clamav/libfreshclam/libfreshclam.c:614,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam.c:614,1
    - Dst: version_string_compare
      Src: /src/clamav/libfreshclam/libfreshclam.c:615,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam.c:615,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam.c:615,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:617,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:618,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:619,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam.c:620,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:625,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:637,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 3
    argNames:
    - dnsUpdateInfoServer
    - dnsUpdateInfo
    - newVersion
    argTypes:
    - char*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 641
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 641
    functionName: fc_dns_query_update_info
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - cli_strtok
    - dnsquery
    - strstr
    - strlen
    - strncpy
    - cli_safer_strdup
    - time
    - logg
    - get_version
    - version_string_compare
    - free
    - atoi
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t fc_dns_query_update_info(\n    const char *dnsUpdateInfoServer,\n
      \   char **dnsUpdateInfo,\n    char **newVersion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:662,1
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam.c:669,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:670,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:674,1
    - Dst: updatedb
      Src: /src/clamav/libfreshclam/libfreshclam.c:681,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:696,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:698,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:706,1
    - Dst: sleep
      Src: /src/clamav/libfreshclam/libfreshclam.c:707,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:709,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:711,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:719,1
    - Dst: localtime
      Src: /src/clamav/libfreshclam/libfreshclam.c:725,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:727,1
    - Dst: strftime
      Src: /src/clamav/libfreshclam/libfreshclam.c:731,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:732,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:733,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:734,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:735,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:736,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:737,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:738,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:739,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:740,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:741,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:742,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:743,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:744,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:746,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:747,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:749,1
    - Dst: localtime
      Src: /src/clamav/libfreshclam/libfreshclam.c:757,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:759,1
    - Dst: strftime
      Src: /src/clamav/libfreshclam/libfreshclam.c:763,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:764,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:765,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:766,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:767,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:768,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:769,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:770,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:771,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:772,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:773,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:774,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:779,1
    - Dst: fc_strerror
      Src: /src/clamav/libfreshclam/libfreshclam.c:779,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:794,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 122
    argCount: 8
    argNames:
    - database
    - serverList
    - nServers
    - bPrivateMirror
    - dnsUpdateInfo
    - bScriptedUpdates
    - context
    - bUpdated
    argTypes:
    - char*
    - char**
    - uint32_t
    - int
    - char*
    - int
    - void*
    - int*
    constantsTouched: []
    func_position:
      end: 798
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 798
    functionName: fc_update_database
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - chdir
    - fc_strerror
    - sleep
    - updatedb
    - logg
    - strftime
    - localtime
    - free
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t fc_update_database(\n    const char *database,\n    char
      **serverList,\n    uint32_t nServers,\n    int bPrivateMirror,\n    const char
      *dnsUpdateInfo,\n    int bScriptedUpdates,\n    void *context,\n    int *bUpdated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:818,1
    - Dst: time
      Src: /src/clamav/libfreshclam/libfreshclam.c:825,1
    - Dst: localtime
      Src: /src/clamav/libfreshclam/libfreshclam.c:829,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:831,1
    - Dst: strftime
      Src: /src/clamav/libfreshclam/libfreshclam.c:835,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:836,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:837,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:838,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:839,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:840,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:841,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:842,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:843,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:844,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:845,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:846,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:847,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:849,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:850,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:851,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:852,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:854,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:860,1
    - Dst: save_freshclam_dat
      Src: /src/clamav/libfreshclam/libfreshclam.c:861,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/libfreshclam.c:867,1
    - Dst: fc_update_database
      Src: /src/clamav/libfreshclam/libfreshclam.c:870,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 9
    argNames:
    - databaseList
    - nDatabases
    - serverList
    - nServers
    - bPrivateMirror
    - dnsUpdateInfo
    - bScriptedUpdates
    - context
    - nUpdated
    argTypes:
    - char**
    - uint32_t
    - char**
    - uint32_t
    - int
    - char*
    - int
    - void*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 893
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 893
    functionName: fc_update_databases
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - memset
    - save_freshclam_dat
    - time
    - fc_update_database
    - logg
    - strftime
    - localtime
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t fc_update_databases(\n    char **databaseList,\n    uint32_t
      nDatabases,\n    char **serverList,\n    uint32_t nServers,\n    int bPrivateMirror,\n
      \   const char *dnsUpdateInfo,\n    int bScriptedUpdates,\n    void *context,\n
      \   uint32_t *nUpdated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:907,1
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam.c:914,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:915,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:919,1
    - Dst: updatecustomdb
      Src: /src/clamav/libfreshclam/libfreshclam.c:927,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:938,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:940,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:948,1
    - Dst: sleep
      Src: /src/clamav/libfreshclam/libfreshclam.c:949,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:951,1
    - Dst: localtime
      Src: /src/clamav/libfreshclam/libfreshclam.c:960,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:962,1
    - Dst: strftime
      Src: /src/clamav/libfreshclam/libfreshclam.c:966,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:967,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:968,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:969,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:970,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:971,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:972,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:973,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:974,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:975,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:976,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:977,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:979,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:980,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:982,1
    - Dst: localtime
      Src: /src/clamav/libfreshclam/libfreshclam.c:991,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:993,1
    - Dst: strftime
      Src: /src/clamav/libfreshclam/libfreshclam.c:997,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:998,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:999,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1000,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1001,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1002,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1003,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1004,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1005,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1006,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1007,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1008,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1013,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam.c:1027,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 111
    argCount: 3
    argNames:
    - urlDatabase
    - context
    - bUpdated
    argTypes:
    - char*
    - void*
    - int*
    constantsTouched: []
    func_position:
      end: 1031
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 1031
    functionName: fc_download_url_database
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - chdir
    - updatecustomdb
    - sleep
    - logg
    - strftime
    - localtime
    - free
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t fc_download_url_database(\n    const char *urlDatabase,\n
      \   void *context,\n    int *bUpdated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1046,1
    - Dst: fc_download_url_database
      Src: /src/clamav/libfreshclam/libfreshclam.c:1053,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam.c:1057,1
    - Dst: fc_strerror
      Src: /src/clamav/libfreshclam/libfreshclam.c:1057,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - urlDatabaseList
    - nUrlDatabases
    - context
    - nUpdated
    argTypes:
    - char**
    - uint32_t
    - void*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1072
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1072
    functionName: fc_download_url_databases
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached:
    - fc_download_url_database
    - fc_strerror
    - logg
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t fc_download_url_databases(\n    char **urlDatabaseList,\n
      \   uint32_t nUrlDatabases,\n    void *context,\n    uint32_t *nUpdated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - fccb_download_complete
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: fc_set_fccb_download_complete
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fc_set_fccb_download_complete(fccb_download_complete callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: res_init
      Src: /src/clamav/libfreshclam/dns.c:55,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:56,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:60,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/dns.c:62,1
    - Dst: res_query
      Src: /src/clamav/libfreshclam/dns.c:63,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/dns.c:70,1
    - Dst: res_query
      Src: /src/clamav/libfreshclam/dns.c:73,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:74,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:79,1
    - Dst: dn_expand
      Src: /src/clamav/libfreshclam/dns.c:92,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:93,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:99,1
    - Dst: GETSHORT
      Src: /src/clamav/libfreshclam/dns.c:103,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:105,1
    - Dst: dn_expand
      Src: /src/clamav/libfreshclam/dns.c:113,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:114,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:119,1
    - Dst: GETSHORT
      Src: /src/clamav/libfreshclam/dns.c:122,1
    - Dst: GETLONG
      Src: /src/clamav/libfreshclam/dns.c:124,1
    - Dst: GETSHORT
      Src: /src/clamav/libfreshclam/dns.c:125,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:127,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:133,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/dns.c:138,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/dns.c:142,1
    - Dst: memcpy
      Src: /src/clamav/libfreshclam/dns.c:145,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 3
    argNames:
    - domain
    - qtype
    - ttl
    argTypes:
    - char*
    - int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 151
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 151
    functionName: dnsquery
    functionSourceFile: /src/clamav/libfreshclam/dns.c
    functionUses: 1
    functionsReached:
    - memset
    - GETLONG
    - res_query
    - dn_expand
    - GETSHORT
    - logg
    - res_init
    - memcpy
    - malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      dnsquery(const char *domain, int qtype, unsigned int *ttl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - domain
    - qtype
    - ttl
    argTypes:
    - char*
    - int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: dnsquery
    functionSourceFile: /src/clamav/libfreshclam/dns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      dnsquery(const char *domain, int qtype, unsigned int *ttl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:149,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:151,1
    - Dst: time
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:152,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 168
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 168
    functionName: uuid_v4_gen
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - memset
    - snprintf
    - time
    - RAND_bytes
    linkageType: ''
    returnType: void
    signature: void uuid_v4_gen(char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:180,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:181,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:185,1
    - Dst: open
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:187,1
    - Dst: getcwd
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:190,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:191,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:193,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:195,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:200,1
    - Dst: read
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:200,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:200,1
    - Dst: cli_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:202,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:203,1
    - Dst: strncmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:206,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:206,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:207,1
    - Dst: read
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:211,1
    - Dst: cli_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:213,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:214,1
    - Dst: lseek
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:221,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:225,1
    - Dst: lseek
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:230,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:230,1
    - Dst: cli_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:232,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:233,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:233,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:237,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:239,1
    - Dst: read
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:244,1
    - Dst: cli_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:246,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:247,1
    - Dst: read
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:251,1
    - Dst: cli_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:253,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:254,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:255,1
    - Dst: close
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:259,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:267,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:274,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:279,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:280,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:281,1
    - Dst: localtime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:284,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:286,1
    - Dst: strftime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:289,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:290,1
    - Dst: close
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:297,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:301,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:304,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 310
    functionName: load_freshclam_dat
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - lseek
    - getcwd
    - chdir
    - memset
    - close
    - localtime
    - strlen
    - open
    - cli_strerror
    - read
    - logg
    - strftime
    - malloc
    - free
    - strncmp
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t load_freshclam_dat(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:318,1
    - Dst: open
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:322,1
    - Dst: getcwd
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:325,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:326,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:328,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:330,1
    - Dst: getuid
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:330,1
    - Dst: getgid
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:330,1
    - Dst: write
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:334,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:334,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:335,1
    - Dst: write
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:337,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:338,1
    - Dst: write
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:341,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:342,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:345,1
    - Dst: close
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:350,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 354
    functionName: save_freshclam_dat
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 1
    functionsReached:
    - close
    - getcwd
    - strlen
    - getuid
    - open
    - getgid
    - write
    - logg
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t save_freshclam_dat(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:360,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:362,1
    - Dst: uuid_v4_gen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:369,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:372,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:376,1
    - Dst: save_freshclam_dat
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:378,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:379,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 394
    functionName: new_freshclam_dat
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - calloc
    - save_freshclam_dat
    - uuid_v4_gen
    - logg
    - free
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t new_freshclam_dat(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:404,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:406,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:408,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - database
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 414
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 414
    functionName: textrecordfield
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int textrecordfield(const char *database)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:442,1
    - Dst: trunc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:442,1
    - Dst: trunc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:442,1
    - Dst: fmod
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:442,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:444,1
    - Dst: trunc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:444,1
    - Dst: trunc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:444,1
    - Dst: fmod
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:444,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 448
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 448
    functionName: printTime
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fmod
    - trunc
    linkageType: ''
    returnType: void
    signature: void printTime(double seconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:455,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:459,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bytes
    - bPad
    argTypes:
    - curl_off_t
    - int
    constantsTouched: []
    func_position:
      end: 464
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 464
    functionName: printBytes
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void printBytes(curl_off_t bytes, int bPad)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:484,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:485,1
    - Dst: round
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:492,1
    - Dst: curl_easy_getinfo
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:494,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:499,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:503,1
    - Dst: printTime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:504,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:505,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:508,1
    - Dst: printTime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:509,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:510,1
    - Dst: printTime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:511,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:512,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:516,1
    - Dst: printTime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:517,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:518,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:521,1
    - Dst: printTime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:522,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:523,1
    - Dst: printTime
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:524,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:525,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:529,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:533,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:536,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:540,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:543,1
    - Dst: printBytes
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:545,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:546,1
    - Dst: printBytes
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:547,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:550,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:552,1
    - Dst: fprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:556,1
    - Dst: fflush
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:558,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 5
    argNames:
    - prog
    - TotalToDownload
    - NowDownloaded
    - TotalToUpload
    - NowUploaded
    argTypes:
    - void*
    - curl_off_t
    - curl_off_t
    - curl_off_t
    - curl_off_t
    constantsTouched: []
    func_position:
      end: 561
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 561
    functionName: xferinfo
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - curl_easy_getinfo
    - printTime
    - printBytes
    - fflush
    - fprintf
    - round
    linkageType: ''
    returnType: int
    signature: "int xferinfo(void *prog,\n                    curl_off_t TotalToDownload,
      curl_off_t NowDownloaded,\n                    curl_off_t TotalToUpload, curl_off_t
      NowUploaded)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xferinfo
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - prog
    - TotalToDownload
    - NowDownloaded
    - TotalToUpload
    - NowUploaded
    argTypes:
    - void*
    - double
    - double
    - double
    - double
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: older_progress
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - xferinfo
    linkageType: ''
    returnType: int
    signature: "int older_progress(void *prog,\n                          double TotalToDownload,
      double NowDownloaded,\n                          double TotalToUpload, double
      NowUploaded)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:596,1
    - Dst: curl_easy_init
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:602,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:604,1
    - Dst: strncpy
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:610,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:617,1
    - Dst: get_version
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:619,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:626,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:627,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:629,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:630,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:635,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:636,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:638,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:639,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:641,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:642,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:648,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:649,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:655,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:656,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:658,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:659,1
    - Dst: strchr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:666,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:667,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:668,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:671,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:677,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:683,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:684,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:687,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:688,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:691,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:697,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:703,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:704,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:713,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:715,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:716,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:718,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:719,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:721,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:722,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:725,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:726,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:731,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:732,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:734,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:735,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:741,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:742,1
    - Dst: set_tls_ca_bundle
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:746,1
    - Dst: set_tls_client_certificate
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:750,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:751,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:762,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 141
    argCount: 3
    argNames:
    - bHttp
    - bAllowRedirect
    - curlHandle
    argTypes:
    - int
    - int
    - CURL**
    constantsTouched: []
    func_position:
      end: 767
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 767
    functionName: create_curl_handle
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strncpy
    - set_tls_ca_bundle
    - strchr
    - set_tls_client_certificate
    - curl_easy_cleanup
    - logg
    - get_version
    - curl_easy_setopt
    - curl_easy_init
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t create_curl_handle(\n    int bHttp,\n    int bAllowRedirect,\n
      \   CURL **curlHandle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:785,1
    - Dst: memcpy
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 795
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 795
    functionName: WriteMemoryCallback
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - logg
    linkageType: ''
    returnType: size_t
    signature: size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb,
      void *userp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - contents
    - size
    - nmemb
    - userp
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 817
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 817
    functionName: WriteFileCallback
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: size_t
    signature: size_t WriteFileCallback(void *contents, size_t size, size_t nmemb,
      void *userp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:826,1
    - Dst: strncmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:827,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:827,1
    - Dst: memcpy
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:829,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - buffer
    - size
    - nitems
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 835
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 835
    functionName: HeaderCallback
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - strncmp
    linkageType: ''
    returnType: size_t
    signature: "size_t HeaderCallback(char *buffer,\n                      size_t
      size,\n                      size_t nitems,\n                      void *userdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:883,1
    - Dst: strncasecmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:889,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:889,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:896,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:896,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:896,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:897,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:898,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:900,1
    - Dst: create_curl_handle
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:902,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:906,1
    - Dst: isatty
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:912,1
    - Dst: fileno
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:912,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:932,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:933,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:937,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:938,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:941,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:942,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:945,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:946,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:950,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:951,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:955,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:956,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:967,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:968,1
    - Dst: curl_slist_append
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:972,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:973,1
    - Dst: curl_slist_append
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:978,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:979,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:984,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:985,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:991,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:992,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:995,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:996,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1001,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1002,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1005,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1009,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1010,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1014,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1015,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1021,1
    - Dst: curl_easy_perform
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1022,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1030,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1032,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1034,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1034,1
    - Dst: curl_easy_getinfo
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1040,1
    - Dst: time
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1055,1
    - Dst: save_freshclam_dat
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1057,1
    - Dst: curl_easy_getinfo
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1070,1
    - Dst: time
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1075,1
    - Dst: time
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1079,1
    - Dst: save_freshclam_dat
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1081,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1087,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1089,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1094,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1100,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1103,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1114,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1123,1
    - Dst: isprint
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1128,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1130,1
    - Dst: cl_cvdparse
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1140,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1141,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1145,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1154,1
    - Dst: curl_slist_free_all
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1157,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1160,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1163,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 190
    argCount: 5
    argNames:
    - cvdfile
    - ifModifiedSince
    - server
    - logerr
    - cvd
    argTypes:
    - char*
    - uint32_t
    - char*
    - int
    - struct cl_cvd**
    constantsTouched: []
    func_position:
      end: 1167
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 1167
    functionName: remote_cvdhead
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - snprintf
    - curl_easy_strerror
    - curl_easy_cleanup
    - strncasecmp
    - curl_easy_setopt
    - curl_slist_free_all
    - cl_cvdparse
    - fileno
    - save_freshclam_dat
    - time
    - memset
    - isatty
    - isprint
    - malloc
    - curl_slist_append
    - free
    - curl_easy_perform
    - strlen
    - create_curl_handle
    - curl_easy_getinfo
    - logg
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t remote_cvdhead(\n    const char *cvdfile,\n    uint32_t
      ifModifiedSince,\n    char *server,\n    int logerr,\n    struct cl_cvd **cvd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1486,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1494,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1494,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1494,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1495,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1496,1
    - Dst: downloadFile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1498,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1500,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1504,1
    - Dst: strncpy
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1510,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1510,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1512,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1513,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1521,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1521,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1521,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1521,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1522,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1523,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1526,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1526,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1526,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1527,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1528,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1531,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1531,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1531,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1532,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1533,1
    - Dst: downloadFile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1535,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1537,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1542,1
    - Dst: CLI_SAFER_STRDUP_OR_GOTO_DONE
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1544,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1547,1
    - Dst: cl_cvdverify
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1553,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1554,1
    - Dst: cl_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1554,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1560,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1574,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1577,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1584,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1588,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1591,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1594,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 89
    argCount: 9
    argNames:
    - database
    - cvdfile
    - tmpfile
    - server
    - ifModifiedSince
    - remoteVersion
    - sign_file
    - downloadedVersion
    - logerr
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - uint32_t
    - uint32_t
    - char**
    - uint32_t*
    - int
    constantsTouched: []
    func_position:
      end: 1598
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1598
    functionName: getcvd
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - snprintf
    - strlen
    - unlink
    - strncpy
    - cl_cvdverify
    - downloadFile
    - logg
    - cl_cvdfree
    - free
    - malloc
    - cl_cvdhead
    - CLI_SAFER_STRDUP_OR_GOTO_DONE
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t getcvd(\n    const char *database,\n    const char *cvdfile,\n
      \   const char *tmpfile,\n    char *server,\n    uint32_t ifModifiedSince,\n
      \   uint32_t remoteVersion,\n    char **sign_file,\n    uint32_t *downloadedVersion,\n
      \   int logerr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1619,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1624,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1634,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1636,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1640,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1641,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1643,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1647,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1648,1
    - Dst: mkdir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1658,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1659,1
    - Dst: cli_cvdunpack_and_verify
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1666,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1667,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1668,1
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1673,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1674,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 2
    argNames:
    - database
    - tmpdir
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1683
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1683
    functionName: mkdir_and_chdir_for_cdiff_tmp
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - snprintf
    - chdir
    - mkdir
    - access
    - cli_cvdunpack_and_verify
    - logg
    - cli_rmdirs
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t mkdir_and_chdir_for_cdiff_tmp(const char *database, const
      char *tmpdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1710,1
    - Dst: getcwd
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1714,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1715,1
    - Dst: mkdir_and_chdir_for_cdiff_tmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1724,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1732,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1734,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1734,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1734,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1735,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1736,1
    - Dst: downloadFile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1738,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1740,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1742,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1751,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1753,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1753,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1753,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1754,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1755,1
    - Dst: downloadFile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1757,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1760,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1762,1
    - Dst: cdiff_apply
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1768,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1773,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1774,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1784,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1788,1
    - Dst: ffierror_free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1792,1
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1799,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1800,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 5
    argNames:
    - database
    - tmpdir
    - version
    - server
    - logerr
    argTypes:
    - char*
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1806
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1806
    functionName: downloadPatchAndApply
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - getcwd
    - snprintf
    - chdir
    - cdiff_apply
    - strlen
    - ffierror_free
    - downloadFile
    - logg
    - mkdir_and_chdir_for_cdiff_tmp
    - malloc
    - free
    - ffierror_fmt
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t downloadPatchAndApply(\n    const char *database,\n    const
      char *tmpdir,\n    int version,\n    char *server,\n    int logerr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1821,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1825,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1828,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1830,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1833,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1839,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - database
    - localname
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1850
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1850
    functionName: currentdb
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - snprintf
    - access
    - logg
    - cli_safer_strdup
    - cl_cvdhead
    linkageType: ''
    returnType: struct cl_cvd
    signature: struct cl_cvd *currentdb(const char *database, char **localname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1872,1
    - Dst: getcwd
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1876,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1877,1
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1882,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1883,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1888,1
    - Dst: open
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1890,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1891,1
    - Dst: read
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1896,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1897,1
    - Dst: close
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1903,1
    - Dst: strchr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1906,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1907,1
    - Dst: memset
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1911,1
    - Dst: open
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1913,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1914,1
    - Dst: write
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1918,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1919,1
    - Dst: close
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1925,1
    - Dst: gzopen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1927,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1928,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1934,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1935,1
    - Dst: tar_addfile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1940,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1941,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1946,1
    - Dst: tar_addfile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1947,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1948,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1954,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1956,1
    - Dst: tar_addfile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1957,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1958,1
    - Dst: opendir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1964,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1965,1
    - Dst: readdir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1970,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1972,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1972,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1972,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1972,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1972,1
    - Dst: tar_addfile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1975,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1976,1
    - Dst: close
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1988,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1989,1
    - Dst: gzclose
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1993,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1994,1
    - Dst: closedir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:1998,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2003,1
    - Dst: chdir
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2008,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2009,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 140
    argCount: 4
    argNames:
    - tmpdir
    - database
    - newfile
    - bCompress
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2015
      start: 1852
    functionDepth: 1
    functionLinenumber: 1852
    functionLinenumberEnd: 2015
    functionName: buildcld
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - snprintf
    - write
    - gzclose
    - readdir
    - read
    - chdir
    - gzopen
    - strcmp
    - access
    - unlink
    - tar_addfile
    - close
    - getcwd
    - memset
    - closedir
    - open
    - strchr
    - opendir
    - logg
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t buildcld(\n    const char *tmpdir,\n    const char *database,\n
      \   const char *newfile,\n    int bCompress)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2043,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2050,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2052,1
    - Dst: textrecordfield
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2062,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2063,1
    - Dst: cli_strtok
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2064,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2065,1
    - Dst: cli_isnumber
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2066,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2067,1
    - Dst: atoi
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2069,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2070,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2072,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2082,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2083,1
    - Dst: dnsquery
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2084,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2085,1
    - Dst: cli_strtok
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2090,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2091,1
    - Dst: atoi
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2096,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2097,1
    - Dst: time
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2098,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2100,1
    - Dst: cli_strtok
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2101,1
    - Dst: cli_isnumber
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2102,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2103,1
    - Dst: atoi
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2105,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2106,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2108,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2110,1
    - Dst: remote_cvdhead
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2130,1
    - Dst: remote_cvdhead
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2140,1
    - Dst: remote_cvdhead
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2146,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2151,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2155,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2160,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2170,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2172,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2181,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2185,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2188,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 106
    argCount: 8
    argNames:
    - database
    - ifModifiedSince
    - dnsUpdateInfo
    - server
    - bPrivateMirror
    - logerr
    - remoteVersion
    - remoteFilename
    argTypes:
    - char*
    - uint32_t
    - char*
    - char*
    - int
    - int
    - uint32_t*
    - char**
    constantsTouched: []
    func_position:
      end: 2193
      start: 2017
    functionDepth: 3
    functionLinenumber: 2017
    functionLinenumberEnd: 2193
    functionName: query_remote_database_version
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cli_strtok
    - dnsquery
    - time
    - remote_cvdhead
    - cli_isnumber
    - logg
    - cl_cvdfree
    - textrecordfield
    - malloc
    - cli_safer_strdup
    - free
    - atoi
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t query_remote_database_version(\n    const char *database,\n
      \   uint32_t ifModifiedSince,\n    const char *dnsUpdateInfo,\n    char *server,\n
      \   int bPrivateMirror,\n    int logerr,\n    uint32_t *remoteVersion,\n    char
      **remoteFilename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2221,1
    - Dst: currentdb
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2234,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2235,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2237,1
    - Dst: query_remote_database_version
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2245,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2257,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2261,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2269,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2273,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2287,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2292,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2299,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2301,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2308,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2310,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2321,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2324,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2327,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 10
    argNames:
    - database
    - dnsUpdateInfo
    - server
    - bPrivateMirror
    - logerr
    - localVersion
    - remoteVersion
    - localFilename
    - remoteFilename
    - localTimestamp
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - uint32_t*
    - uint32_t*
    - char**
    - char**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2331
      start: 2195
    functionDepth: 4
    functionLinenumber: 2195
    functionLinenumberEnd: 2331
    functionName: check_for_new_database_version
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 0
    functionsReached:
    - currentdb
    - logg
    - cl_cvdfree
    - cli_safer_strdup
    - free
    - query_remote_database_version
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t check_for_new_database_version(\n    const char *database,\n
      \   const char *dnsUpdateInfo,\n    char *server,\n    int bPrivateMirror,\n
      \   int logerr,\n    uint32_t *localVersion,\n    uint32_t *remoteVersion,\n
      \   char **localFilename,\n    char **remoteFilename,\n    uint32_t *localTimestamp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2369,1
    - Dst: check_for_new_database_version
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2380,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2391,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2397,1
    - Dst: calloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2406,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2406,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2406,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2406,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2411,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2411,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2411,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2411,1
    - Dst: getcvd
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2418,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2420,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2423,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2430,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2439,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2448,1
    - Dst: isatty
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2455,1
    - Dst: fileno
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2455,1
    - Dst: mprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2461,1
    - Dst: mprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2463,1
    - Dst: isatty
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2473,1
    - Dst: fileno
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2473,1
    - Dst: mprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2478,1
    - Dst: downloadPatchAndApply
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2483,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2508,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2510,1
    - Dst: getcvd
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2513,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2520,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2530,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2532,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2533,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2540,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2541,1
    - Dst: sprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2547,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2547,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2551,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2552,1
    - Dst: buildcld
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2554,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2555,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2563,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2573,1
    - Dst: g_cb_download_complete
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2574,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2575,1
    - Dst: fc_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2575,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2584,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2587,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2587,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2588,1
    - Dst: rename
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2593,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2594,1
    - Dst: strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2594,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2603,1
    - Dst: sprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2607,1
    - Dst: glob_rm
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2609,1
    - Dst: cli_errmsg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2610,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2611,1
    - Dst: ffierror_free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2612,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2613,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2617,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2623,1
    - Dst: cli_basename
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2626,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2626,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2627,1
    - Dst: rename
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2631,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2632,1
    - Dst: strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2632,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2633,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2637,1
    - Dst: strcmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2641,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2642,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2646,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2647,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2652,1
    - Dst: cl_retflevel
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2655,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2657,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2658,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2659,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2664,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2666,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2680,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2684,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2687,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2690,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2694,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2695,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2698,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2699,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2702,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 236
    argCount: 10
    argNames:
    - database
    - dnsUpdateInfo
    - server
    - bPrivateMirror
    - context
    - bScriptedUpdates
    - logerr
    - signo
    - dbFilename
    - bUpdated
    argTypes:
    - char*
    - char*
    - char*
    - int
    - void*
    - int
    - int
    - int*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 2706
      start: 2333
    functionDepth: 5
    functionLinenumber: 2333
    functionLinenumberEnd: 2706
    functionName: updatedb
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 1
    functionsReached:
    - cli_gentemp_with_prefix
    - snprintf
    - fc_strerror
    - rename
    - downloadPatchAndApply
    - cl_cvdhead
    - sprintf
    - strcmp
    - strerror
    - access
    - fileno
    - unlink
    - ffierror_free
    - cli_basename
    - CLI_FREE_AND_SET_NULL
    - cli_rmdirs
    - mprintf
    - ffierror_fmt
    - calloc
    - getcvd
    - isatty
    - cl_retflevel
    - cl_cvdfree
    - malloc
    - cli_safer_strdup
    - free
    - glob_rm
    - strlen
    - check_for_new_database_version
    - logg
    - g_cb_download_complete
    - buildcld
    - cli_errmsg
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t updatedb(\n    const char *database,\n    const char *dnsUpdateInfo,\n
      \   char *server,\n    int bPrivateMirror,\n    void *context,\n    int bScriptedUpdates,\n
      \   int logerr,\n    int *signo,\n    char **dbFilename,\n    int *bUpdated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2726,1
    - Dst: cli_gentemp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2734,1
    - Dst: strncasecmp
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2740,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2740,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2747,1
    - Dst: strrchr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2749,1
    - Dst: strrchr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2751,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2753,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2753,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2754,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2759,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2760,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2765,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2767,1
    - Dst: cli_filecopy
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2772,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2773,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2778,1
    - Dst: strrchr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2783,1
    - Dst: strlen
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2784,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2785,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2790,1
    - Dst: downloadFile
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2792,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2794,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2797,1
    - Dst: malloc
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2812,1
    - Dst: snprintf
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2817,1
    - Dst: rename
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2818,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2819,1
    - Dst: strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2819,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2820,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2824,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2829,1
    - Dst: g_cb_download_complete
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2830,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2831,1
    - Dst: fc_strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2831,1
    - Dst: access
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2841,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2841,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2842,1
    - Dst: rename
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2847,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2848,1
    - Dst: strerror
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2848,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2856,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2856,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2860,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2861,1
    - Dst: cl_retflevel
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2868,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2870,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2871,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2872,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2875,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2876,1
    - Dst: countlines
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2879,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2882,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2888,1
    - Dst: logg
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2890,1
    - Dst: unlink
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2900,1
    - Dst: free
      Src: /src/clamav/libfreshclam/libfreshclam_internal.c:2901,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 146
    argCount: 6
    argNames:
    - url
    - context
    - logerr
    - signo
    - dbFilename
    - bUpdated
    argTypes:
    - char*
    - void*
    - int
    - int*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 2905
      start: 2708
    functionDepth: 1
    functionLinenumber: 2708
    functionLinenumberEnd: 2905
    functionName: updatecustomdb
    functionSourceFile: /src/clamav/libfreshclam/libfreshclam_internal.c
    functionUses: 1
    functionsReached:
    - snprintf
    - fc_strerror
    - rename
    - cli_strbcasestr
    - strncasecmp
    - cl_cvdhead
    - strerror
    - access
    - unlink
    - countlines
    - strrchr
    - cl_retflevel
    - cl_cvdfree
    - malloc
    - free
    - cli_filecopy
    - cli_safer_strdup
    - strlen
    - CLAMSTAT
    - cli_gentemp
    - downloadFile
    - logg
    - g_cb_download_complete
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t updatecustomdb(\n    const char *url,\n    void *context,\n
      \   int logerr,\n    int *signo,\n    char **dbFilename,\n    int *bUpdated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: w32_strerror
    functionSourceFile: /src/clamav/win32/compat/w32_errno.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *w32_strerror(int errnum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/clamav/win32/compat/w32_errno.c:37,1
    - Dst: w32_strerror
      Src: /src/clamav/win32/compat/w32_errno.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - errnum
    - buf
    - buflen
    argTypes:
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: w32_strerror_r
    functionSourceFile: /src/clamav/win32/compat/w32_errno.c
    functionUses: 0
    functionsReached:
    - strncpy
    - w32_strerror
    linkageType: ''
    returnType: int
    signature: int w32_strerror_r(int errnum, char *buf, size_t buflen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ftime_s
      Src: /src/clamav/win32/compat/gettimeofday.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - struct timezone*
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: gettimeofday
    functionSourceFile: /src/clamav/win32/compat/gettimeofday.c
    functionUses: 0
    functionsReached:
    - _ftime_s
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval *tv, struct timezone *tz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: w32_rand
    functionSourceFile: /src/clamav/win32/compat/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int w32_rand(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: w32_srand
    functionSourceFile: /src/clamav/win32/compat/random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void w32_srand(unsigned int seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: is_abspath
    functionSourceFile: /src/clamav/win32/compat/w32_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_abspath(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/win32/compat/w32_stat.c:46,1
    - Dst: strncmp
      Src: /src/clamav/win32/compat/w32_stat.c:51,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/w32_stat.c:53,1
    - Dst: is_abspath
      Src: /src/clamav/win32/compat/w32_stat.c:55,1
    - Dst: GetCurrentDirectoryW
      Src: /src/clamav/win32/compat/w32_stat.c:57,1
    - Dst: free
      Src: /src/clamav/win32/compat/w32_stat.c:59,1
    - Dst: GetLastError
      Src: /src/clamav/win32/compat/w32_stat.c:60,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/win32/compat/w32_stat.c:80,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/win32/compat/w32_stat.c:81,1
    - Dst: strcmp
      Src: /src/clamav/win32/compat/w32_stat.c:82,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/win32/compat/w32_stat.c:83,1
    - Dst: free
      Src: /src/clamav/win32/compat/w32_stat.c:84,1
    - Dst: GetLastError
      Src: /src/clamav/win32/compat/w32_stat.c:85,1
    - Dst: wcslen
      Src: /src/clamav/win32/compat/w32_stat.c:89,1
    - Dst: wcsncmp
      Src: /src/clamav/win32/compat/w32_stat.c:92,1
    - Dst: wcsstr
      Src: /src/clamav/win32/compat/w32_stat.c:99,1
    - Dst: wcsrchr
      Src: /src/clamav/win32/compat/w32_stat.c:107,1
    - Dst: wcsstr
      Src: /src/clamav/win32/compat/w32_stat.c:123,1
    - Dst: wcslen
      Src: /src/clamav/win32/compat/w32_stat.c:136,1
    - Dst: wcsncmp
      Src: /src/clamav/win32/compat/w32_stat.c:136,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 80
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 141
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 141
    functionName: uncpath
    functionSourceFile: /src/clamav/win32/compat/w32_stat.c
    functionUses: 0
    functionsReached:
    - wcsstr
    - strcmp
    - GetLastError
    - wcsrchr
    - MultiByteToWideChar
    - is_abspath
    - WideCharToMultiByte
    - memcpy
    - malloc
    - GetCurrentDirectoryW
    - wcsncmp
    - free
    - strncmp
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *uncpath(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uncpath
      Src: /src/clamav/win32/compat/w32_stat.c:145,1
    - Dst: va_start
      Src: /src/clamav/win32/compat/w32_stat.c:154,1
    - Dst: va_arg
      Src: /src/clamav/win32/compat/w32_stat.c:155,1
    - Dst: va_end
      Src: /src/clamav/win32/compat/w32_stat.c:156,1
    - Dst: _wopen
      Src: /src/clamav/win32/compat/w32_stat.c:157,1
    - Dst: _wopen
      Src: /src/clamav/win32/compat/w32_stat.c:159,1
    - Dst: free
      Src: /src/clamav/win32/compat/w32_stat.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 162
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 162
    functionName: safe_open
    functionSourceFile: /src/clamav/win32/compat/w32_stat.c
    functionUses: 0
    functionsReached:
    - uncpath
    - va_arg
    - va_start
    - _wopen
    - va_end
    - free
    linkageType: ''
    returnType: int
    signature: int safe_open(const char *path, int flags, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - FILETIME
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: FileTimeToUnixTime
    functionSourceFile: /src/clamav/win32/compat/w32_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t FileTimeToUnixTime(FILETIME t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uncpath
      Src: /src/clamav/win32/compat/w32_stat.c:174,1
    - Dst: GetFileAttributesExW
      Src: /src/clamav/win32/compat/w32_stat.c:182,1
    - Dst: free
      Src: /src/clamav/win32/compat/w32_stat.c:183,1
    - Dst: FileTimeToUnixTime
      Src: /src/clamav/win32/compat/w32_stat.c:193,1
    - Dst: FileTimeToUnixTime
      Src: /src/clamav/win32/compat/w32_stat.c:194,1
    - Dst: FileTimeToUnixTime
      Src: /src/clamav/win32/compat/w32_stat.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - char*
    - struct stat*
    constantsTouched: []
    func_position:
      end: 201
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 201
    functionName: w32_stat
    functionSourceFile: /src/clamav/win32/compat/w32_stat.c
    functionUses: 0
    functionsReached:
    - FileTimeToUnixTime
    - free
    - GetFileAttributesExW
    - uncpath
    linkageType: ''
    returnType: int
    signature: int w32_stat(const char *path, struct stat *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileA
      Src: /src/clamav/win32/compat/w32_stat.c:213,1
    - Dst: GetLastError
      Src: /src/clamav/win32/compat/w32_stat.c:221,1
    - Dst: _set_errno
      Src: /src/clamav/win32/compat/w32_stat.c:222,1
    - Dst: _set_errno
      Src: /src/clamav/win32/compat/w32_stat.c:224,1
    - Dst: CloseHandle
      Src: /src/clamav/win32/compat/w32_stat.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - pathname
    - mode
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 232
    functionName: w32_access
    functionSourceFile: /src/clamav/win32/compat/w32_stat.c
    functionUses: 0
    functionsReached:
    - _set_errno
    - CreateFileA
    - CloseHandle
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int w32_access(const char *pathname, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributes
      Src: /src/clamav/win32/compat/w32_stat.c:237,1
    - Dst: SetFileAttributes
      Src: /src/clamav/win32/compat/w32_stat.c:238,1
    - Dst: DeleteFileA
      Src: /src/clamav/win32/compat/w32_stat.c:239,1
    - Dst: GetLastError
      Src: /src/clamav/win32/compat/w32_stat.c:239,1
    - Dst: rename
      Src: /src/clamav/win32/compat/w32_stat.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - oldname
    - newname
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: w32_rename
    functionSourceFile: /src/clamav/win32/compat/w32_stat.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - rename
    - SetFileAttributes
    - GetFileAttributes
    - DeleteFileA
    linkageType: ''
    returnType: int
    signature: int w32_rename(const char *oldname, const char *newname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/win32/compat/glob.c:83,1
    - Dst: memcmp
      Src: /src/clamav/win32/compat/glob.c:83,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/glob.c:84,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/glob.c:86,1
    - Dst: realloc
      Src: /src/clamav/win32/compat/glob.c:92,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/glob.c:95,1
    - Dst: strlen
      Src: /src/clamav/win32/compat/glob.c:101,1
    - Dst: strlen
      Src: /src/clamav/win32/compat/glob.c:120,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/glob.c:121,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/glob.c:130,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/glob.c:131,1
    - Dst: strlen
      Src: /src/clamav/win32/compat/glob.c:137,1
    - Dst: _alloca
      Src: /src/clamav/win32/compat/glob.c:138,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/glob.c:139,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/glob.c:141,1
    - Dst: dirname
      Src: /src/clamav/win32/compat/glob.c:144,1
    - Dst: basename
      Src: /src/clamav/win32/compat/glob.c:145,1
    - Dst: strlen
      Src: /src/clamav/win32/compat/glob.c:152,1
    - Dst: strlen
      Src: /src/clamav/win32/compat/glob.c:153,1
    - Dst: opendir
      Src: /src/clamav/win32/compat/glob.c:155,1
    - Dst: readdir
      Src: /src/clamav/win32/compat/glob.c:156,1
    - Dst: strcmp
      Src: /src/clamav/win32/compat/glob.c:160,1
    - Dst: strcmp
      Src: /src/clamav/win32/compat/glob.c:160,1
    - Dst: strncasecmp
      Src: /src/clamav/win32/compat/glob.c:162,1
    - Dst: strncasecmp
      Src: /src/clamav/win32/compat/glob.c:166,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/glob.c:167,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/glob.c:169,1
    - Dst: sprintf
      Src: /src/clamav/win32/compat/glob.c:172,1
    - Dst: glob_add
      Src: /src/clamav/win32/compat/glob.c:173,1
    - Dst: strncasecmp
      Src: /src/clamav/win32/compat/glob.c:188,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/glob.c:189,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/glob.c:191,1
    - Dst: sprintf
      Src: /src/clamav/win32/compat/glob.c:194,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/glob.c:195,1
    - Dst: strcpy
      Src: /src/clamav/win32/compat/glob.c:196,1
    - Dst: glob_add
      Src: /src/clamav/win32/compat/glob.c:197,1
    - Dst: closedir
      Src: /src/clamav/win32/compat/glob.c:201,1
    - Dst: _freea
      Src: /src/clamav/win32/compat/glob.c:202,1
    - Dst: free
      Src: /src/clamav/win32/compat/glob.c:203,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 116
    argCount: 3
    argNames:
    - path
    - argc
    - argv
    argTypes:
    - char*
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 205
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 205
    functionName: glob_add
    functionSourceFile: /src/clamav/win32/compat/glob.c
    functionUses: 1
    functionsReached:
    - dirname
    - readdir
    - strncasecmp
    - memcmp
    - sprintf
    - strcmp
    - glob_add
    - basename
    - closedir
    - realloc
    - fprintf
    - malloc
    - strcpy
    - free
    - _freea
    - strlen
    - _alloca
    - strchr
    - opendir
    - memcpy
    linkageType: ''
    returnType: int
    signature: int glob_add(char *path, int *argc, char ***argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCommandLineW
      Src: /src/clamav/win32/compat/glob.c:209,1
    - Dst: wcslen
      Src: /src/clamav/win32/compat/glob.c:215,1
    - Dst: _alloca
      Src: /src/clamav/win32/compat/glob.c:216,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/win32/compat/glob.c:217,1
    - Dst: GetCommandLineA
      Src: /src/clamav/win32/compat/glob.c:218,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/glob.c:259,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/glob.c:263,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/glob.c:266,1
    - Dst: memmove
      Src: /src/clamav/win32/compat/glob.c:267,1
    - Dst: glob_add
      Src: /src/clamav/win32/compat/glob.c:269,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/glob.c:271,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/glob.c:273,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/glob.c:276,1
    - Dst: realloc
      Src: /src/clamav/win32/compat/glob.c:281,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/glob.c:283,1
    - Dst: realloc
      Src: /src/clamav/win32/compat/glob.c:303,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/glob.c:305,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/glob.c:313,1
    - Dst: free
      Src: /src/clamav/win32/compat/glob.c:315,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 100
    argCount: 2
    argNames:
    - argc_ptr
    - argv_ptr
    argTypes:
    - int*
    - char***
    constantsTouched: []
    func_position:
      end: 321
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 321
    functionName: w32_glob
    functionSourceFile: /src/clamav/win32/compat/glob.c
    functionUses: 0
    functionsReached:
    - GetCommandLineA
    - _alloca
    - realloc
    - glob_add
    - strchr
    - WideCharToMultiByte
    - GetCommandLineW
    - fprintf
    - memcpy
    - malloc
    - memmove
    - free
    - wcslen
    linkageType: ''
    returnType: void
    signature: void w32_glob(int *argc_ptr, char ***argv_ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/win32/compat/libgen.c:88,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/libgen.c:107,1
    - Dst: strchr
      Src: /src/clamav/win32/compat/libgen.c:109,1
    - Dst: strrchr
      Src: /src/clamav/win32/compat/libgen.c:119,1
    - Dst: strcmp
      Src: /src/clamav/win32/compat/libgen.c:122,1
    - Dst: strcmp
      Src: /src/clamav/win32/compat/libgen.c:122,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 3
    argNames:
    - path
    - dir
    - base
    argTypes:
    - char*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 143
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 143
    functionName: splitpath
    functionSourceFile: /src/clamav/win32/compat/libgen.c
    functionUses: 0
    functionsReached:
    - strlen
    - strrchr
    - strcmp
    - strchr
    linkageType: ''
    returnType: void
    signature: void splitpath(char *path, char **dir, char **base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: splitpath
      Src: /src/clamav/win32/compat/libgen.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: dirname
    functionSourceFile: /src/clamav/win32/compat/libgen.c
    functionUses: 1
    functionsReached:
    - splitpath
    linkageType: ''
    returnType: char
    signature: char *dirname(char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: splitpath
      Src: /src/clamav/win32/compat/libgen.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: basename
    functionSourceFile: /src/clamav/win32/compat/libgen.c
    functionUses: 2
    functionsReached:
    - splitpath
    linkageType: ''
    returnType: char
    signature: char *basename(char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 199
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 199
    functionName: day_of_the_week
    functionSourceFile: /src/clamav/win32/compat/strptime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void day_of_the_week(struct tm *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __isleap
      Src: /src/clamav/win32/compat/strptime.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: day_of_the_year
    functionSourceFile: /src/clamav/win32/compat/strptime.c
    functionUses: 0
    functionsReached:
    - __isleap
    linkageType: ''
    returnType: void
    signature: void day_of_the_year(struct tm *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/win32/compat/snprintf.c:38,1
    - Dst: vsnprintf
      Src: /src/clamav/win32/compat/snprintf.c:40,1
    - Dst: va_end
      Src: /src/clamav/win32/compat/snprintf.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - size
    - format
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: snprintf
    functionSourceFile: /src/clamav/win32/compat/snprintf.c
    functionUses: 12
    functionsReached:
    - va_start
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: int snprintf(char *str, size_t size, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _strdup
      Src: /src/clamav/win32/compat/utf8_util.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: cli_strdup_to_utf8
    functionSourceFile: /src/clamav/win32/compat/utf8_util.c
    functionUses: 0
    functionsReached:
    - _strdup
    linkageType: ''
    returnType: char
    signature: char *cli_strdup_to_utf8(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/win32/compat/utf8_util.c:54,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/win32/compat/utf8_util.c:60,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/win32/compat/utf8_util.c:64,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/utf8_util.c:66,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/win32/compat/utf8_util.c:73,1
    - Dst: strcmp
      Src: /src/clamav/win32/compat/utf8_util.c:73,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/win32/compat/utf8_util.c:84,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/win32/compat/utf8_util.c:85,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/utf8_util.c:86,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/win32/compat/utf8_util.c:87,1
    - Dst: free
      Src: /src/clamav/win32/compat/utf8_util.c:91,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 97
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 97
    functionName: cli_to_utf8_maybe_alloc
    functionSourceFile: /src/clamav/win32/compat/utf8_util.c
    functionUses: 0
    functionsReached:
    - strcmp
    - MultiByteToWideChar
    - WideCharToMultiByte
    - malloc
    - free
    linkageType: ''
    returnType: char
    signature: char *cli_to_utf8_maybe_alloc(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/clamav/win32/compat/dirent.c:39,1
    - Dst: S_ISDIR
      Src: /src/clamav/win32/compat/dirent.c:42,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/dirent.c:46,1
    - Dst: uncpath
      Src: /src/clamav/win32/compat/dirent.c:50,1
    - Dst: wcsncpy
      Src: /src/clamav/win32/compat/dirent.c:53,1
    - Dst: free
      Src: /src/clamav/win32/compat/dirent.c:54,1
    - Dst: wcslen
      Src: /src/clamav/win32/compat/dirent.c:56,1
    - Dst: free
      Src: /src/clamav/win32/compat/dirent.c:59,1
    - Dst: wcsncat
      Src: /src/clamav/win32/compat/dirent.c:70,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 73
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 73
    functionName: opendir
    functionSourceFile: /src/clamav/win32/compat/dirent.c
    functionUses: 3
    functionsReached:
    - wcsncpy
    - S_ISDIR
    - wcsncat
    - uncpath
    - stat
    - malloc
    - free
    - wcslen
    linkageType: ''
    returnType: DIR
    signature: DIR *opendir(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFileW
      Src: /src/clamav/win32/compat/dirent.c:79,1
    - Dst: FindNextFileW
      Src: /src/clamav/win32/compat/dirent.c:84,1
    - Dst: GetLastError
      Src: /src/clamav/win32/compat/dirent.c:85,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/win32/compat/dirent.c:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    constantsTouched: []
    func_position:
      end: 97
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 97
    functionName: readdir
    functionSourceFile: /src/clamav/win32/compat/dirent.c
    functionUses: 3
    functionsReached:
    - FindNextFileW
    - WideCharToMultiByte
    - FindFirstFileW
    - GetLastError
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *readdir(DIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/clamav/win32/compat/dirent.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: rewinddir
    functionSourceFile: /src/clamav/win32/compat/dirent.c
    functionUses: 0
    functionsReached:
    - FindClose
    linkageType: ''
    returnType: void
    signature: void rewinddir(DIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rewinddir
      Src: /src/clamav/win32/compat/dirent.c:108,1
    - Dst: free
      Src: /src/clamav/win32/compat/dirent.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: closedir
    functionSourceFile: /src/clamav/win32/compat/dirent.c
    functionUses: 3
    functionsReached:
    - free
    - rewinddir
    linkageType: ''
    returnType: int
    signature: int closedir(DIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WSAGetLastError
      Src: /src/clamav/win32/compat/net.c:35,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 184
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 218
    functionName: wsock2errno
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    linkageType: ''
    returnType: void
    signature: void wsock2errno()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/clamav/win32/compat/net.c:222,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: w32_socket
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    - socket
    linkageType: ''
    returnType: int
    signature: int w32_socket(int domain, int type, int protocol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/clamav/win32/compat/net.c:232,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - sockfd
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - int
    - int
    - int
    - void*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: w32_getsockopt
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int w32_getsockopt(int sockfd, int level, int optname, void *optval,
      socklen_t *optlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/clamav/win32/compat/net.c:241,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - sockfd
    - level
    - optname
    - optval
    - optlen
    argTypes:
    - int
    - int
    - int
    - void*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: w32_setsockopt
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - setsockopt
    - wsock2errno
    linkageType: ''
    returnType: int
    signature: int w32_setsockopt(int sockfd, int level, int optname, const void *optval,
      socklen_t optlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/clamav/win32/compat/net.c:250,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sockfd
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: w32_bind
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    - bind
    linkageType: ''
    returnType: int
    signature: int w32_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/clamav/win32/compat/net.c:259,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sockfd
    - addr
    - addrlen
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: w32_connect
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - connect
    - wsock2errno
    linkageType: ''
    returnType: int
    signature: int w32_connect(int sockfd, const struct sockaddr *addr, socklen_t
      addrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - sockfd
    - buf
    - len
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: w32_send
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t w32_send(int sockfd, const void *buf, size_t len, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - sockfd
    - buf
    - len
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: w32_recv
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t w32_recv(int sockfd, void *buf, size_t len, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - name
    - namelen
    argTypes:
    - int
    - struct sockaddr*
    - int*
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: w32_getpeername
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    linkageType: ''
    returnType: int
    signature: int w32_getpeername(int s, struct sockaddr *name, int *namelen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntoa
      Src: /src/clamav/win32/compat/net.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct in_addr
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: w32_inet_ntoa
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - inet_ntoa
    linkageType: ''
    returnType: char
    signature: char *w32_inet_ntoa(struct in_addr in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/clamav/win32/compat/net.c:303,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sockfd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: w32_closesocket
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - closesocket
    - wsock2errno
    linkageType: ''
    returnType: int
    signature: int w32_closesocket(int sockfd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getservbyname
      Src: /src/clamav/win32/compat/net.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - proto
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: w32_getservbyname
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - getservbyname
    linkageType: ''
    returnType: struct servent
    signature: struct servent *w32_getservbyname(const char *name, const char *proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - node
    - service
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: w32_getaddrinfo
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    linkageType: ''
    returnType: int
    signature: int w32_getaddrinfo(const char *node, const char *service, const struct
      addrinfo *hints, struct addrinfo **res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freeaddrinfo
      Src: /src/clamav/win32/compat/net.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct addrinfo*
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: w32_freeaddrinfo
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    linkageType: ''
    returnType: void
    signature: void w32_freeaddrinfo(struct addrinfo *res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntoa
      Src: /src/clamav/win32/compat/net.c:335,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:337,1
    - Dst: strlen
      Src: /src/clamav/win32/compat/net.c:340,1
    - Dst: strcpy
      Src: /src/clamav/win32/compat/net.c:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - size
    argTypes:
    - int
    - void*
    - char*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: w32_inet_ntop
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcpy
    - wsock2errno
    - inet_ntoa
    linkageType: ''
    returnType: char
    signature: char *w32_inet_ntop(int af, const void *src, char *dst, socklen_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - nfds
    - readfds
    - writefds
    - exceptfds
    - timeout
    argTypes:
    - int
    - fd_set*
    - fd_set*
    - fd_set*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: w32_select
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    linkageType: ''
    returnType: int
    signature: int w32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set
      *exceptfds, struct timeval *timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/clamav/win32/compat/net.c:360,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sockfd
    - addr
    - addrlen
    argTypes:
    - SOCKET
    - struct sockaddr*
    - socklen_t*
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: w32_accept
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    - accept
    linkageType: ''
    returnType: int
    signature: int w32_accept(SOCKET sockfd, struct sockaddr *addr, socklen_t *addrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: listen
      Src: /src/clamav/win32/compat/net.c:369,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sockfd
    - backlog
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: w32_listen
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    - listen
    linkageType: ''
    returnType: int
    signature: int w32_listen(int sockfd, int backlog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/clamav/win32/compat/net.c:378,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sockfd
    - how
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: w32_shutdown
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - wsock2errno
    - shutdown
    linkageType: ''
    returnType: int
    signature: int w32_shutdown(int sockfd, int how)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WSAEnumNetworkEvents
      Src: /src/clamav/win32/compat/net.c:398,1
    - Dst: SetEvent
      Src: /src/clamav/win32/compat/net.c:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - param
    - timedout
    argTypes:
    - PVOID
    - BOOLEAN
    constantsTouched: []
    func_position:
      end: 416
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 416
    functionName: poll_cb
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - WSAEnumNetworkEvents
    - SetEvent
    linkageType: ''
    returnType: VOID
    signature: VOID poll_cb(PVOID param, BOOLEAN timedout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/clamav/win32/compat/net.c:427,1
    - Dst: Sleep
      Src: /src/clamav/win32/compat/net.c:430,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/net.c:433,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/net.c:435,1
    - Dst: CreateEvent
      Src: /src/clamav/win32/compat/net.c:438,1
    - Dst: malloc
      Src: /src/clamav/win32/compat/net.c:440,1
    - Dst: fprintf
      Src: /src/clamav/win32/compat/net.c:442,1
    - Dst: CreateEvent
      Src: /src/clamav/win32/compat/net.c:447,1
    - Dst: WSAEventSelect
      Src: /src/clamav/win32/compat/net.c:450,1
    - Dst: CloseHandle
      Src: /src/clamav/win32/compat/net.c:451,1
    - Dst: RegisterWaitForSingleObject
      Src: /src/clamav/win32/compat/net.c:463,1
    - Dst: WSAEventSelect
      Src: /src/clamav/win32/compat/net.c:464,1
    - Dst: CloseHandle
      Src: /src/clamav/win32/compat/net.c:465,1
    - Dst: WaitForMultipleObjects
      Src: /src/clamav/win32/compat/net.c:473,1
    - Dst: CreateEvent
      Src: /src/clamav/win32/compat/net.c:478,1
    - Dst: ResetEvent
      Src: /src/clamav/win32/compat/net.c:481,1
    - Dst: UnregisterWaitEx
      Src: /src/clamav/win32/compat/net.c:482,1
    - Dst: WSAEventSelect
      Src: /src/clamav/win32/compat/net.c:483,1
    - Dst: WaitForSingleObject
      Src: /src/clamav/win32/compat/net.c:484,1
    - Dst: CloseHandle
      Src: /src/clamav/win32/compat/net.c:485,1
    - Dst: CloseHandle
      Src: /src/clamav/win32/compat/net.c:489,1
    - Dst: free
      Src: /src/clamav/win32/compat/net.c:490,1
    - Dst: CloseHandle
      Src: /src/clamav/win32/compat/net.c:491,1
    - Dst: free
      Src: /src/clamav/win32/compat/net.c:492,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 4
    argNames:
    - fds
    - nfds
    - timeout
    - event
    argTypes:
    - struct pollfd*
    - int
    - int
    - HANDLE
    constantsTouched: []
    func_position:
      end: 494
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 494
    functionName: poll_with_event
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObject
    - CreateEvent
    - RegisterWaitForSingleObject
    - UnregisterWaitEx
    - WaitForMultipleObjects
    - ResetEvent
    - fprintf
    - WSAEventSelect
    - CloseHandle
    - Sleep
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int poll_with_event(struct pollfd *fds, int nfds, int timeout, HANDLE
      event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/win32/compat/net.c:499,1
    - Dst: va_arg
      Src: /src/clamav/win32/compat/net.c:504,1
    - Dst: ioctlsocket
      Src: /src/clamav/win32/compat/net.c:505,1
    - Dst: wsock2errno
      Src: /src/clamav/win32/compat/net.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - fd
    - cmd
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 512
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 512
    functionName: fcntl
    functionSourceFile: /src/clamav/win32/compat/net.c
    functionUses: 0
    functionsReached:
    - va_start
    - wsock2errno
    - va_arg
    - ioctlsocket
    linkageType: ''
    returnType: int
    signature: int fcntl(int fd, int cmd, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: res_init
    functionSourceFile: /src/clamav/win32/compat/resolv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int res_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DnsQuery
      Src: /src/clamav/win32/compat/resolv.c:42,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/resolv.c:58,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/resolv.c:65,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/resolv.c:78,1
    - Dst: DnsRecordListFree
      Src: /src/clamav/win32/compat/resolv.c:84,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - dname
    - class
    - type
    - answer
    - anslen
    argTypes:
    - char*
    - int
    - int
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 86
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 86
    functionName: res_query
    functionSourceFile: /src/clamav/win32/compat/resolv.c
    functionUses: 1
    functionsReached:
    - memcpy
    - DnsRecordListFree
    - DnsQuery
    linkageType: ''
    returnType: int
    signature: int res_query(const char *dname, int class, int type, unsigned char
      *answer, int anslen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/clamav/win32/compat/resolv.c:96,1
    - Dst: memcpy
      Src: /src/clamav/win32/compat/resolv.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - msg
    - eomorig
    - comp_dn
    - exp_dn
    - length
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: dn_expand
    functionSourceFile: /src/clamav/win32/compat/resolv.c
    functionUses: 1
    functionsReached:
    - memcpy
    - strnlen
    linkageType: ''
    returnType: int
    signature: int dn_expand(unsigned char *msg, unsigned char *eomorig, unsigned
      char *comp_dn, char *exp_dn, int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/clamav/clamscan/manager.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - username
    - mode
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: checkaccess
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - access
    linkageType: ''
    returnType: int
    signature: int checkaccess(const char *path, const char *username, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/clamav/clamscan/manager.c:90,1
    - Dst: getpwnam
      Src: /src/clamav/clamscan/manager.c:91,1
    - Dst: fork
      Src: /src/clamav/clamscan/manager.c:95,1
    - Dst: setgid
      Src: /src/clamav/clamscan/manager.c:99,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:100,1
    - Dst: exit
      Src: /src/clamav/clamscan/manager.c:101,1
    - Dst: setuid
      Src: /src/clamav/clamscan/manager.c:104,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:105,1
    - Dst: exit
      Src: /src/clamav/clamscan/manager.c:106,1
    - Dst: access
      Src: /src/clamav/clamscan/manager.c:109,1
    - Dst: exit
      Src: /src/clamav/clamscan/manager.c:110,1
    - Dst: exit
      Src: /src/clamav/clamscan/manager.c:112,1
    - Dst: wait
      Src: /src/clamav/clamscan/manager.c:114,1
    - Dst: WIFEXITED
      Src: /src/clamav/clamscan/manager.c:115,1
    - Dst: WEXITSTATUS
      Src: /src/clamav/clamscan/manager.c:115,1
    - Dst: access
      Src: /src/clamav/clamscan/manager.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - path
    - username
    - mode
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 124
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 124
    functionName: checkaccess
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - geteuid
    - setgid
    - access
    - exit
    - wait
    - fork
    - setuid
    - fprintf
    - WIFEXITED
    - WEXITSTATUS
    - getpwnam
    linkageType: ''
    returnType: int
    signature: int checkaccess(const char *path, const char *username, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:145,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - type
    - context
    argTypes:
    - int
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: pre
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t pre(int fd, const char *type, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/clamscan/manager.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - c
    - str
    - len
    argTypes:
    - struct metachain*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 182
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 182
    functionName: print_chain
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int print_chain(struct metachain *c, char *str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:190,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:191,1
    - Dst: print_chain
      Src: /src/clamav/clamscan/manager.c:197,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - fd
    - result
    - virname
    - context
    argTypes:
    - int
    - int
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 210
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 210
    functionName: post
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - print_chain
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t post(int fd, int result, const char *virname, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:224,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:225,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:226,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:227,1
    - Dst: strncmp
      Src: /src/clamav/clamscan/manager.c:234,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:235,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:235,1
    - Dst: malloc
      Src: /src/clamav/clamscan/manager.c:240,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:245,1
    - Dst: snprintf
      Src: /src/clamav/clamscan/manager.c:246,1
    - Dst: snprintf
      Src: /src/clamav/clamscan/manager.c:248,1
    - Dst: realloc
      Src: /src/clamav/clamscan/manager.c:253,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:255,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:264,1
    - Dst: print_chain
      Src: /src/clamav/clamscan/manager.c:269,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:270,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:272,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 7
    argNames:
    - container_type
    - fsize_container
    - filename
    - fsize_real
    - is_encrypted
    - filepos_container
    - context
    argTypes:
    - char*
    - unsigned long
    - char*
    - unsigned long
    - int
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 276
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 276
    functionName: meta
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strcmp
    - UNUSEDPARAM
    - strlen
    - realloc
    - print_chain
    - logg
    - malloc
    - free
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t meta(const char *container_type, unsigned long fsize_container,
      const char *filename,\n                       unsigned long fsize_real, int
      is_encrypted, unsigned int filepos_container, void *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamscan/manager.c:283,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - virname
    - context
    argTypes:
    - int
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: clamscan_virus_found_cb
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - logg
    linkageType: ''
    returnType: void
    signature: void clamscan_virus_found_cb(int fd, const char *virname, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:309,1
    - Dst: cli_realpath
      Src: /src/clamav/clamscan/manager.c:314,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:316,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:317,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:322,1
    - Dst: match_regex
      Src: /src/clamav/clamscan/manager.c:324,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:326,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:335,1
    - Dst: match_regex
      Src: /src/clamav/clamscan/manager.c:339,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:349,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamscan/manager.c:356,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:360,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:367,1
    - Dst: geteuid
      Src: /src/clamav/clamscan/manager.c:376,1
    - Dst: checkaccess
      Src: /src/clamav/clamscan/manager.c:377,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:379,1
    - Dst: memset
      Src: /src/clamav/clamscan/manager.c:387,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:388,1
    - Dst: malloc
      Src: /src/clamav/clamscan/manager.c:389,1
    - Dst: strdup
      Src: /src/clamav/clamscan/manager.c:391,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:393,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:394,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:402,1
    - Dst: safe_open
      Src: /src/clamav/clamscan/manager.c:404,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:405,1
    - Dst: strerror
      Src: /src/clamav/clamscan/manager.c:405,1
    - Dst: cl_scandesc_callback
      Src: /src/clamav/clamscan/manager.c:412,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:413,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:418,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:420,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:427,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/manager.c:430,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:435,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:435,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:441,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:443,1
    - Dst: close
      Src: /src/clamav/clamscan/manager.c:444,1
    - Dst: action
      Src: /src/clamav/clamscan/manager.c:447,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:451,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 124
    argCount: 4
    argNames:
    - filename
    - engine
    - opts
    - options
    argTypes:
    - char*
    - struct cl_engine*
    - struct optstruct*
    - struct cl_scan_options*
    constantsTouched: []
    func_position:
      end: 454
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 454
    functionName: scanfile
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - geteuid
    - safe_open
    - action
    - match_regex
    - strerror
    - checkaccess
    - optget
    - mprintf
    - cl_strerror
    - close
    - memset
    - fprintf
    - cli_realpath
    - cl_scandesc_callback
    - malloc
    - free
    - strdup
    - CLAMSTAT
    - logg
    linkageType: ''
    returnType: void
    signature: void scanfile(const char *filename, struct cl_engine *engine, const
      struct optstruct *opts, struct cl_scan_options *options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:466,1
    - Dst: match_regex
      Src: /src/clamav/clamscan/manager.c:468,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:470,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:479,1
    - Dst: match_regex
      Src: /src/clamav/clamscan/manager.c:482,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:492,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:498,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:501,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:502,1
    - Dst: opendir
      Src: /src/clamav/clamscan/manager.c:504,1
    - Dst: readdir
      Src: /src/clamav/clamscan/manager.c:507,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:509,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:509,1
    - Dst: malloc
      Src: /src/clamav/clamscan/manager.c:511,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:511,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:511,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:513,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:517,1
    - Dst: sprintf
      Src: /src/clamav/clamscan/manager.c:518,1
    - Dst: sprintf
      Src: /src/clamav/clamscan/manager.c:520,1
    - Dst: LSTAT
      Src: /src/clamav/clamscan/manager.c:523,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:524,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:527,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:529,1
    - Dst: S_ISLNK
      Src: /src/clamav/clamscan/manager.c:533,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:536,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamscan/manager.c:537,1
    - Dst: S_ISREG
      Src: /src/clamav/clamscan/manager.c:538,1
    - Dst: scanfile
      Src: /src/clamav/clamscan/manager.c:539,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamscan/manager.c:540,1
    - Dst: scandirs
      Src: /src/clamav/clamscan/manager.c:542,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:545,1
    - Dst: S_ISREG
      Src: /src/clamav/clamscan/manager.c:548,1
    - Dst: scanfile
      Src: /src/clamav/clamscan/manager.c:549,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamscan/manager.c:550,1
    - Dst: scandirs
      Src: /src/clamav/clamscan/manager.c:551,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:555,1
    - Dst: closedir
      Src: /src/clamav/clamscan/manager.c:559,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:562,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 88
    argCount: 6
    argNames:
    - dirname
    - engine
    - opts
    - options
    - depth
    - dev
    argTypes:
    - char*
    - struct cl_engine*
    - struct optstruct*
    - struct cl_scan_options*
    - unsigned int
    - dev_t
    constantsTouched: []
    func_position:
      end: 566
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 566
    functionName: scandirs
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 1
    functionsReached:
    - S_ISLNK
    - closedir
    - match_regex
    - strcmp
    - strlen
    - S_ISDIR
    - CLAMSTAT
    - opendir
    - readdir
    - optget
    - LSTAT
    - logg
    - scanfile
    - malloc
    - scandirs
    - free
    - sprintf
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void scandirs(const char *dirname, struct cl_engine *engine, const
      struct optstruct *opts, struct cl_scan_options *options, unsigned int depth,
      dev_t dev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_get_str
      Src: /src/clamav/clamscan/manager.c:579,1
    - Dst: cli_gettmpdir
      Src: /src/clamav/clamscan/manager.c:581,1
    - Dst: access
      Src: /src/clamav/clamscan/manager.c:584,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:585,1
    - Dst: cli_gentemp
      Src: /src/clamav/clamscan/manager.c:589,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:590,1
    - Dst: fopen
      Src: /src/clamav/clamscan/manager.c:594,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:595,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:596,1
    - Dst: fread
      Src: /src/clamav/clamscan/manager.c:600,1
    - Dst: fwrite
      Src: /src/clamav/clamscan/manager.c:602,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:603,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:604,1
    - Dst: fclose
      Src: /src/clamav/clamscan/manager.c:605,1
    - Dst: fclose
      Src: /src/clamav/clamscan/manager.c:610,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:612,1
    - Dst: cl_scanfile_callback
      Src: /src/clamav/clamscan/manager.c:619,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:623,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/manager.c:626,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:629,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:629,1
    - Dst: unlink
      Src: /src/clamav/clamscan/manager.c:634,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:635,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - engine
    - options
    argTypes:
    - struct cl_engine*
    - struct cl_scan_options*
    constantsTouched: []
    func_position:
      end: 637
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 637
    functionName: scanstdin
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - fread
    - access
    - cl_engine_get_str
    - fwrite
    - unlink
    - cli_gentemp
    - fprintf
    - mprintf
    - cl_scanfile_callback
    - logg
    - free
    - fclose
    - cli_gettmpdir
    - fopen
    linkageType: ''
    returnType: int
    signature: int scanstdin(const struct cl_engine *engine, struct cl_scan_options
      *options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:660,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:662,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - time_t
    constantsTouched: []
    func_position:
      end: 666
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 666
    functionName: print_time
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_time(time_t seconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:673,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:677,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sigs
    - bPad
    argTypes:
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 682
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 682
    functionName: print_num_sigs
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_num_sigs(size_t sigs, int bPad)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/clamav/clamscan/manager.c:708,1
    - Dst: time
      Src: /src/clamav/clamscan/manager.c:711,1
    - Dst: time
      Src: /src/clamav/clamscan/manager.c:713,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:718,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:721,1
    - Dst: print_time
      Src: /src/clamav/clamscan/manager.c:722,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:723,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:726,1
    - Dst: print_time
      Src: /src/clamav/clamscan/manager.c:727,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:728,1
    - Dst: print_time
      Src: /src/clamav/clamscan/manager.c:729,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:730,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:733,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:737,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:740,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:744,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:747,1
    - Dst: print_num_sigs
      Src: /src/clamav/clamscan/manager.c:749,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:750,1
    - Dst: print_num_sigs
      Src: /src/clamav/clamscan/manager.c:751,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:752,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:755,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:757,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:761,1
    - Dst: fflush
      Src: /src/clamav/clamscan/manager.c:763,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 3
    argNames:
    - total_items
    - now_completed
    - context
    argTypes:
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 766
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 766
    functionName: sigload_callback
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    - time
    - round
    - print_num_sigs
    - print_time
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t sigload_callback(size_t total_items, size_t now_completed,
      void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/clamav/clamscan/manager.c:792,1
    - Dst: time
      Src: /src/clamav/clamscan/manager.c:795,1
    - Dst: time
      Src: /src/clamav/clamscan/manager.c:797,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:802,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:805,1
    - Dst: print_time
      Src: /src/clamav/clamscan/manager.c:806,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:807,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:810,1
    - Dst: print_time
      Src: /src/clamav/clamscan/manager.c:811,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:812,1
    - Dst: print_time
      Src: /src/clamav/clamscan/manager.c:813,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:814,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:817,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:821,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:824,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:828,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:831,1
    - Dst: print_num_sigs
      Src: /src/clamav/clamscan/manager.c:833,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:834,1
    - Dst: print_num_sigs
      Src: /src/clamav/clamscan/manager.c:835,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:836,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:839,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:841,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:845,1
    - Dst: fflush
      Src: /src/clamav/clamscan/manager.c:847,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 3
    argNames:
    - total_items
    - now_completed
    - context
    argTypes:
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 850
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 850
    functionName: engine_compile_callback
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    - time
    - round
    - print_num_sigs
    - print_time
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t engine_compile_callback(size_t total_items, size_t now_completed,
      void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/clamav/clamscan/manager.c:876,1
    - Dst: time
      Src: /src/clamav/clamscan/manager.c:879,1
    - Dst: time
      Src: /src/clamav/clamscan/manager.c:881,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:886,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:888,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:893,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:899,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:902,1
    - Dst: print_num_sigs
      Src: /src/clamav/clamscan/manager.c:904,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:905,1
    - Dst: print_num_sigs
      Src: /src/clamav/clamscan/manager.c:906,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:907,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:910,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:912,1
    - Dst: fprintf
      Src: /src/clamav/clamscan/manager.c:916,1
    - Dst: fflush
      Src: /src/clamav/clamscan/manager.c:918,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - total_items
    - now_completed
    - context
    argTypes:
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 921
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 921
    functionName: engine_free_callback
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    - time
    - round
    - print_num_sigs
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t engine_free_callback(size_t total_items, size_t now_completed,
      void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scanmem
      Src: /src/clamav/clamscan/manager.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - engine
    - opts
    - options
    argTypes:
    - struct cl_engine*
    - struct optstruct*
    - struct cl_scan_options*
    constantsTouched: []
    func_position:
      end: 944
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 944
    functionName: scan_memory
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - scanmem
    linkageType: ''
    returnType: int
    signature: int scan_memory(struct cl_engine *engine, const struct optstruct *opts,
      struct cl_scan_options *options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:965,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:966,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:971,1
    - Dst: scan_memory
      Src: /src/clamav/clamscan/manager.c:972,1
    - Dst: filelist
      Src: /src/clamav/clamscan/manager.c:976,1
    - Dst: strdup
      Src: /src/clamav/clamscan/manager.c:976,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:977,1
    - Dst: scanstdin
      Src: /src/clamav/clamscan/manager.c:979,1
    - Dst: LSTAT
      Src: /src/clamav/clamscan/manager.c:980,1
    - Dst: perror
      Src: /src/clamav/clamscan/manager.c:982,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:983,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:988,1
    - Dst: S_ISLNK
      Src: /src/clamav/clamscan/manager.c:996,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1001,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamscan/manager.c:1003,1
    - Dst: S_ISREG
      Src: /src/clamav/clamscan/manager.c:1005,1
    - Dst: scanfile
      Src: /src/clamav/clamscan/manager.c:1007,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamscan/manager.c:1008,1
    - Dst: scandirs
      Src: /src/clamav/clamscan/manager.c:1010,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1013,1
    - Dst: S_ISREG
      Src: /src/clamav/clamscan/manager.c:1017,1
    - Dst: scanfile
      Src: /src/clamav/clamscan/manager.c:1019,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamscan/manager.c:1020,1
    - Dst: scandirs
      Src: /src/clamav/clamscan/manager.c:1022,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1024,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:1029,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 5
    argNames:
    - engine
    - opts
    - options
    - dirlnk
    - filelnk
    argTypes:
    - struct cl_engine*
    - struct optstruct*
    - struct cl_scan_options*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1033
      start: 957
    functionDepth: 4
    functionLinenumber: 957
    functionLinenumberEnd: 1033
    functionName: scan_files
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - perror
    - S_ISLNK
    - strcmp
    - strlen
    - filelist
    - strdup
    - CLAMSTAT
    - S_ISDIR
    - LSTAT
    - optget
    - scanstdin
    - logg
    - scanfile
    - scandirs
    - scan_memory
    - free
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int scan_files(struct cl_engine *engine, const struct optstruct *opts,
      struct cl_scan_options *options,\n                      unsigned int dirlnk,
      unsigned int filelnk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/clamscan/manager.c:1058,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1060,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1062,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1067,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1069,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1074,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:1076,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:1077,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:1079,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1084,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1087,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1090,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1093,1
    - Dst: cl_init
      Src: /src/clamav/clamscan/manager.c:1096,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1097,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1097,1
    - Dst: cl_engine_new
      Src: /src/clamav/clamscan/manager.c:1102,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1103,1
    - Dst: cl_engine_set_clcb_virus_found
      Src: /src/clamav/clamscan/manager.c:1108,1
    - Dst: isatty
      Src: /src/clamav/clamscan/manager.c:1110,1
    - Dst: fileno
      Src: /src/clamav/clamscan/manager.c:1110,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1111,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1112,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1113,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1114,1
    - Dst: cl_engine_set_clcb_sigload_progress
      Src: /src/clamav/clamscan/manager.c:1116,1
    - Dst: cl_engine_set_clcb_engine_compile_progress
      Src: /src/clamav/clamscan/manager.c:1117,1
    - Dst: cl_engine_set_clcb_engine_free_progress
      Src: /src/clamav/clamscan/manager.c:1119,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1123,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1124,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1125,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1126,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1128,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1130,1
    - Dst: realloc
      Src: /src/clamav/clamscan/manager.c:1134,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:1134,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1135,1
    - Dst: sprintf
      Src: /src/clamav/clamscan/manager.c:1141,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:1142,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1151,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1153,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:1155,1
    - Dst: realloc
      Src: /src/clamav/clamscan/manager.c:1163,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:1163,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1164,1
    - Dst: sprintf
      Src: /src/clamav/clamscan/manager.c:1169,1
    - Dst: strlen
      Src: /src/clamav/clamscan/manager.c:1170,1
    - Dst: cl_engine_set_str
      Src: /src/clamav/clamscan/manager.c:1181,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1182,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1182,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:1184,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:1189,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1193,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1194,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1196,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1197,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1197,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1199,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1200,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1202,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1203,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1205,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1208,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1209,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1211,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1212,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1214,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1215,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1217,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:1220,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:1222,1
    - Dst: strcmp
      Src: /src/clamav/clamscan/manager.c:1224,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1229,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1232,1
    - Dst: strcasecmp
      Src: /src/clamav/clamscan/manager.c:1234,1
    - Dst: strcasecmp
      Src: /src/clamav/clamscan/manager.c:1236,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1243,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1246,1
    - Dst: cl_engine_set_str
      Src: /src/clamav/clamscan/manager.c:1247,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1248,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1248,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1255,1
    - Dst: LSTAT
      Src: /src/clamav/clamscan/manager.c:1259,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1260,1
    - Dst: cl_engine_set_str
      Src: /src/clamav/clamscan/manager.c:1268,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1269,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1269,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1275,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1277,1
    - Dst: LSTAT
      Src: /src/clamav/clamscan/manager.c:1278,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1279,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamscan/manager.c:1283,1
    - Dst: CLI_DBEXT_SIGNATURE
      Src: /src/clamav/clamscan/manager.c:1283,1
    - Dst: check_if_cvd_outdated
      Src: /src/clamav/clamscan/manager.c:1287,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1287,1
    - Dst: cl_load
      Src: /src/clamav/clamscan/manager.c:1293,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1294,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1294,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1305,1
    - Dst: check_if_cvd_outdated
      Src: /src/clamav/clamscan/manager.c:1306,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1306,1
    - Dst: cl_load
      Src: /src/clamav/clamscan/manager.c:1312,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1313,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1313,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:1315,1
    - Dst: free
      Src: /src/clamav/clamscan/manager.c:1320,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1324,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1325,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1326,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1326,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1332,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1333,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1334,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1334,1
    - Dst: cl_engine_compile
      Src: /src/clamav/clamscan/manager.c:1340,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1341,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1341,1
    - Dst: isatty
      Src: /src/clamav/clamscan/manager.c:1346,1
    - Dst: fileno
      Src: /src/clamav/clamscan/manager.c:1346,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1347,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1348,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1349,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1350,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1352,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1355,1
    - Dst: cl_engine_set_clcb_meta
      Src: /src/clamav/clamscan/manager.c:1356,1
    - Dst: cl_engine_set_clcb_pre_cache
      Src: /src/clamav/clamscan/manager.c:1357,1
    - Dst: cl_engine_set_clcb_post_scan
      Src: /src/clamav/clamscan/manager.c:1358,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1364,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1365,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1366,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1366,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1371,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1372,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1373,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1373,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1379,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1380,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1381,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1381,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1387,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1388,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1389,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1389,1
    - Dst: getrlimit
      Src: /src/clamav/clamscan/manager.c:1396,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamscan/manager.c:1397,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1398,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamscan/manager.c:1399,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1400,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1402,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1406,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1407,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1408,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1408,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1414,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1417,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1422,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1423,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1423,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1431,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1432,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1433,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1433,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1439,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1440,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1441,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1441,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1447,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1448,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1449,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1449,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1455,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1456,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1457,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1457,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1463,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1464,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1465,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1465,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1471,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1472,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1473,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1473,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1479,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1480,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1481,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1481,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1487,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1488,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1489,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1489,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1495,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1496,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1497,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1497,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1504,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1509,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1510,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1514,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1515,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1519,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1520,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1523,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1526,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1530,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1531,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1535,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1540,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1541,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1546,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1549,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1553,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1554,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1558,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1561,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1564,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1567,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1570,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1573,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1573,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1576,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1579,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1582,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1585,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1588,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1591,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1595,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1596,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1600,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1604,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1609,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1610,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1615,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1619,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1622,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1625,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1637,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1645,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1646,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1647,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1647,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1653,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamscan/manager.c:1654,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1655,1
    - Dst: cl_strerror
      Src: /src/clamav/clamscan/manager.c:1655,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1661,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1669,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamscan/manager.c:1680,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1685,1
    - Dst: scan_files
      Src: /src/clamav/clamscan/manager.c:1688,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1691,1
    - Dst: scan_memory
      Src: /src/clamav/clamscan/manager.c:1693,1
    - Dst: getcwd
      Src: /src/clamav/clamscan/manager.c:1703,1
    - Dst: logg
      Src: /src/clamav/clamscan/manager.c:1704,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamscan/manager.c:1707,1
    - Dst: scandirs
      Src: /src/clamav/clamscan/manager.c:1708,1
    - Dst: optget
      Src: /src/clamav/clamscan/manager.c:1712,1
    - Dst: strcasecmp
      Src: /src/clamav/clamscan/manager.c:1714,1
    - Dst: cli_sigperf_print
      Src: /src/clamav/clamscan/manager.c:1715,1
    - Dst: cli_sigperf_events_destroy
      Src: /src/clamav/clamscan/manager.c:1716,1
    - Dst: strcasecmp
      Src: /src/clamav/clamscan/manager.c:1717,1
    - Dst: cli_pcre_perf_print
      Src: /src/clamav/clamscan/manager.c:1718,1
    - Dst: cli_pcre_perf_events_destroy
      Src: /src/clamav/clamscan/manager.c:1719,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamscan/manager.c:1728,1
    CyclomaticComplexity: 213
    EdgeCount: 213
    ICount: 544
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1737
      start: 1035
    functionDepth: 5
    functionLinenumber: 1035
    functionLinenumberEnd: 1737
    functionName: scanmanager
    functionSourceFile: /src/clamav/clamscan/manager.c
    functionUses: 0
    functionsReached:
    - cl_engine_set_clcb_engine_free_progress
    - cli_sigperf_print
    - cl_init
    - strcasecmp
    - S_ISDIR
    - cl_engine_free
    - CLI_DBEXT_SIGNATURE
    - cl_engine_new
    - sprintf
    - cl_engine_get_num
    - strcmp
    - cl_engine_set_clcb_virus_found
    - fileno
    - cl_engine_compile
    - cl_engine_set_num
    - cl_engine_set_clcb_pre_cache
    - optget
    - scan_files
    - cli_sigperf_events_destroy
    - scandirs
    - scan_memory
    - cl_engine_set_clcb_meta
    - cl_strerror
    - cl_engine_set_str
    - memset
    - getcwd
    - isatty
    - realloc
    - cli_pcre_perf_events_destroy
    - cli_pcre_perf_print
    - free
    - cl_engine_set_clcb_engine_compile_progress
    - cl_engine_set_clcb_sigload_progress
    - strlen
    - cl_load
    - CLAMSTAT
    - LSTAT
    - cl_engine_set_clcb_post_scan
    - logg
    - check_if_cvd_outdated
    - getrlimit
    linkageType: ''
    returnType: int
    signature: int scanmanager(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:232,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:233,1
    - Dst: get_version
      Src: /src/clamav/clamscan/clamscan.c:233,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:234,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:235,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:236,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:237,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:238,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:239,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:240,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:241,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:242,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:243,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:244,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:245,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:246,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:247,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:248,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:249,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:250,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:251,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:252,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:253,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:254,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:255,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:256,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:257,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:258,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:259,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:260,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:261,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:262,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:263,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:264,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:265,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:266,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:267,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:268,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:269,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:270,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:271,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:272,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:273,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:274,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:275,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:276,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:277,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:279,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:280,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:281,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:283,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:284,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:285,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:286,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:287,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:288,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:289,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:290,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:291,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:292,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:293,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:294,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:295,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:296,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:297,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:298,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:299,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:300,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:301,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:302,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:303,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:304,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:305,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:306,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:307,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:308,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:309,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:310,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:311,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:312,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:313,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:314,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:315,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:316,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:317,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:318,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:319,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:320,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:321,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:322,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:323,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:324,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:325,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:326,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:327,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:328,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:329,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:330,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:331,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:332,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:333,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:334,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:335,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:336,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:337,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:338,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:339,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:340,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:341,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:342,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:343,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:344,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:345,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:346,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:347,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:348,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:349,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:350,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:351,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:352,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:353,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:354,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:355,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:356,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:357,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:358,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:359,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:360,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:361,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:362,1
    - Dst: mprintf
      Src: /src/clamav/clamscan/clamscan.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 132
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 364
    functionName: help
    functionSourceFile: /src/clamav/clamscan/clamscan.c
    functionUses: 0
    functionsReached:
    - get_version
    - mprintf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:82,1
    - Dst: strcmp
      Src: /src/clamav/clamconf/clamconf.c:86,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:91,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:95,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:98,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:99,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:105,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:108,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:109,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:113,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:117,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 2
    argNames:
    - opts
    - nondef
    argTypes:
    - struct optstruct*
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 121
    functionName: printopts
    functionSourceFile: /src/clamav/clamconf/clamconf.c
    functionUses: 0
    functionsReached:
    - strcmp
    - printf
    linkageType: ''
    returnType: void
    signature: void printopts(struct optstruct *opts, int nondef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/clamconf/clamconf.c:131,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:137,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:139,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:140,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:144,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:145,1
    - Dst: strncpy
      Src: /src/clamav/clamconf/clamconf.c:150,1
    - Dst: cli_strtokenize
      Src: /src/clamav/clamconf/clamconf.c:152,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:153,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:155,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:160,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:162,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:167,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:169,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:174,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:176,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:178,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:183,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:185,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:189,1
    - Dst: strchr
      Src: /src/clamav/clamconf/clamconf.c:192,1
    - Dst: strncpy
      Src: /src/clamav/clamconf/clamconf.c:193,1
    - Dst: cli_strtokenize
      Src: /src/clamav/clamconf/clamconf.c:195,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:197,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:199,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 205
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 205
    functionName: printconf
    functionSourceFile: /src/clamav/clamconf/clamconf.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncpy
    - strchr
    - printf
    - cli_strtokenize
    linkageType: ''
    returnType: int
    signature: int printconf(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:209,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:210,1
    - Dst: get_version
      Src: /src/clamav/clamconf/clamconf.c:210,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:211,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:212,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:213,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:214,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:215,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:216,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:217,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:218,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 221
    functionName: help
    functionSourceFile: /src/clamav/clamconf/clamconf.c
    functionUses: 0
    functionsReached:
    - get_version
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:225,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:226,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:229,1
    - Dst: access
      Src: /src/clamav/clamconf/clamconf.c:232,1
    - Dst: fputs
      Src: /src/clamav/clamconf/clamconf.c:233,1
    - Dst: fflush
      Src: /src/clamav/clamconf/clamconf.c:234,1
    - Dst: system
      Src: /src/clamav/clamconf/clamconf.c:235,1
    - Dst: perror
      Src: /src/clamav/clamconf/clamconf.c:236,1
    - Dst: access
      Src: /src/clamav/clamconf/clamconf.c:241,1
    - Dst: fopen
      Src: /src/clamav/clamconf/clamconf.c:243,1
    - Dst: fgets
      Src: /src/clamav/clamconf/clamconf.c:246,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:247,1
    - Dst: fclose
      Src: /src/clamav/clamconf/clamconf.c:248,1
    - Dst: strcmp
      Src: /src/clamav/clamconf/clamconf.c:253,1
    - Dst: zlibVersion
      Src: /src/clamav/clamconf/clamconf.c:253,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:254,1
    - Dst: zlibVersion
      Src: /src/clamav/clamconf/clamconf.c:254,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:256,1
    - Dst: zlibVersion
      Src: /src/clamav/clamconf/clamconf.c:257,1
    - Dst: zlibCompileFlags
      Src: /src/clamav/clamconf/clamconf.c:257,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:260,1
    - Dst: zlibVersion
      Src: /src/clamav/clamconf/clamconf.c:261,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:265,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:267,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct cli_environment*
    constantsTouched: []
    func_position:
      end: 272
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 272
    functionName: print_platform
    functionSourceFile: /src/clamav/clamconf/clamconf.c
    functionUses: 0
    functionsReached:
    - fputs
    - perror
    - strcmp
    - access
    - printf
    - fflush
    - system
    - fclose
    - zlibVersion
    - zlibCompileFlags
    - fgets
    - fopen
    linkageType: ''
    returnType: void
    signature: void print_platform(struct cli_environment *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:278,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:306,1
    - Dst: cli_printcxxver
      Src: /src/clamav/clamconf/clamconf.c:312,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:314,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:318,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:319,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct cli_environment*
    constantsTouched: []
    func_position:
      end: 322
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 322
    functionName: print_build
    functionSourceFile: /src/clamav/clamconf/clamconf.c
    functionUses: 0
    functionsReached:
    - printf
    - cli_printcxxver
    linkageType: ''
    returnType: void
    signature: void print_build(struct cli_environment *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/clamav/clamconf/clamconf.c:332,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:333,1
    - Dst: readdir
      Src: /src/clamav/clamconf/clamconf.c:337,1
    - Dst: CLI_DBEXT
      Src: /src/clamav/clamconf/clamconf.c:339,1
    - Dst: malloc
      Src: /src/clamav/clamconf/clamconf.c:340,1
    - Dst: strlen
      Src: /src/clamav/clamconf/clamconf.c:340,1
    - Dst: strlen
      Src: /src/clamav/clamconf/clamconf.c:340,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:342,1
    - Dst: closedir
      Src: /src/clamav/clamconf/clamconf.c:343,1
    - Dst: sprintf
      Src: /src/clamav/clamconf/clamconf.c:346,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/clamconf/clamconf.c:347,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/clamconf/clamconf.c:347,1
    - Dst: cl_cvdhead
      Src: /src/clamav/clamconf/clamconf.c:348,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:350,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:353,1
    - Dst: ctime
      Src: /src/clamav/clamconf/clamconf.c:353,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:356,1
    - Dst: cl_cvdfree
      Src: /src/clamav/clamconf/clamconf.c:357,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/clamconf/clamconf.c:359,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:360,1
    - Dst: countlines
      Src: /src/clamav/clamconf/clamconf.c:363,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:364,1
    - Dst: free
      Src: /src/clamav/clamconf/clamconf.c:367,1
    - Dst: closedir
      Src: /src/clamav/clamconf/clamconf.c:371,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 373
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 373
    functionName: print_dbs
    functionSourceFile: /src/clamav/clamconf/clamconf.c
    functionUses: 0
    functionsReached:
    - closedir
    - strlen
    - countlines
    - printf
    - cli_strbcasestr
    - opendir
    - readdir
    - ctime
    - CLI_DBEXT
    - cl_cvdfree
    - free
    - malloc
    - cl_cvdhead
    - sprintf
    linkageType: ''
    returnType: void
    signature: void print_dbs(const char *dir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optparse
      Src: /src/clamav/clamconf/clamconf.c:384,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:386,1
    - Dst: optget
      Src: /src/clamav/clamconf/clamconf.c:390,1
    - Dst: help
      Src: /src/clamav/clamconf/clamconf.c:391,1
    - Dst: optfree
      Src: /src/clamav/clamconf/clamconf.c:392,1
    - Dst: optget
      Src: /src/clamav/clamconf/clamconf.c:396,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:397,1
    - Dst: get_version
      Src: /src/clamav/clamconf/clamconf.c:397,1
    - Dst: optfree
      Src: /src/clamav/clamconf/clamconf.c:398,1
    - Dst: optget
      Src: /src/clamav/clamconf/clamconf.c:402,1
    - Dst: printconf
      Src: /src/clamav/clamconf/clamconf.c:403,1
    - Dst: optfree
      Src: /src/clamav/clamconf/clamconf.c:404,1
    - Dst: optget
      Src: /src/clamav/clamconf/clamconf.c:410,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:411,1
    - Dst: snprintf
      Src: /src/clamav/clamconf/clamconf.c:413,1
    - Dst: access
      Src: /src/clamav/clamconf/clamconf.c:415,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:416,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:419,1
    - Dst: strlen
      Src: /src/clamav/clamconf/clamconf.c:420,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:421,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:422,1
    - Dst: optparse
      Src: /src/clamav/clamconf/clamconf.c:423,1
    - Dst: printopts
      Src: /src/clamav/clamconf/clamconf.c:426,1
    - Dst: optget
      Src: /src/clamav/clamconf/clamconf.c:426,1
    - Dst: optget
      Src: /src/clamav/clamconf/clamconf.c:428,1
    - Dst: strncpy
      Src: /src/clamav/clamconf/clamconf.c:429,1
    - Dst: optget
      Src: /src/clamav/clamconf/clamconf.c:432,1
    - Dst: strncpy
      Src: /src/clamav/clamconf/clamconf.c:433,1
    - Dst: optfree
      Src: /src/clamav/clamconf/clamconf.c:436,1
    - Dst: optfree
      Src: /src/clamav/clamconf/clamconf.c:438,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:440,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:441,1
    - Dst: cl_retver
      Src: /src/clamav/clamconf/clamconf.c:441,1
    - Dst: strcmp
      Src: /src/clamav/clamconf/clamconf.c:442,1
    - Dst: cl_retver
      Src: /src/clamav/clamconf/clamconf.c:442,1
    - Dst: get_version
      Src: /src/clamav/clamconf/clamconf.c:442,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:443,1
    - Dst: cl_retver
      Src: /src/clamav/clamconf/clamconf.c:443,1
    - Dst: get_version
      Src: /src/clamav/clamconf/clamconf.c:443,1
    - Dst: cl_init
      Src: /src/clamav/clamconf/clamconf.c:444,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:445,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:447,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:450,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:453,1
    - Dst: get_fpu_endian
      Src: /src/clamav/clamconf/clamconf.c:456,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:458,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:461,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:464,1
    - Dst: have_clamjit
      Src: /src/clamav/clamconf/clamconf.c:465,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:466,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:467,1
    - Dst: strlen
      Src: /src/clamav/clamconf/clamconf.c:469,1
    - Dst: freshdbdir
      Src: /src/clamav/clamconf/clamconf.c:470,1
    - Dst: strncpy
      Src: /src/clamav/clamconf/clamconf.c:472,1
    - Dst: free
      Src: /src/clamav/clamconf/clamconf.c:473,1
    - Dst: strncpy
      Src: /src/clamav/clamconf/clamconf.c:475,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:480,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:481,1
    - Dst: strcmp
      Src: /src/clamav/clamconf/clamconf.c:482,1
    - Dst: printf
      Src: /src/clamav/clamconf/clamconf.c:483,1
    - Dst: print_dbs
      Src: /src/clamav/clamconf/clamconf.c:484,1
    - Dst: cli_detect_environment
      Src: /src/clamav/clamconf/clamconf.c:486,1
    - Dst: print_platform
      Src: /src/clamav/clamconf/clamconf.c:487,1
    - Dst: print_build
      Src: /src/clamav/clamconf/clamconf.c:488,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 90
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 491
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 491
    functionName: main
    functionSourceFile: /src/clamav/clamconf/clamconf.c
    functionUses: 0
    functionsReached:
    - print_build
    - help
    - snprintf
    - cl_init
    - printconf
    - printf
    - cl_retver
    - get_version
    - strcmp
    - optfree
    - access
    - printopts
    - strncpy
    - print_dbs
    - optget
    - cli_detect_environment
    - get_fpu_endian
    - optparse
    - free
    - print_platform
    - strlen
    - have_clamjit
    - freshdbdir
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:75,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:76,1
    - Dst: get_version
      Src: /src/clamav/clamsubmit/clamsubmit.c:76,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:77,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:78,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:79,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:80,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:81,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:82,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:83,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:84,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:85,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:86,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:87,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:88,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:89,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:90,1
    - Dst: printf
      Src: /src/clamav/clamsubmit/clamsubmit.c:91,1
    - Dst: exit
      Src: /src/clamav/clamsubmit/clamsubmit.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 93
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 93
    functionName: usage
    functionSourceFile: /src/clamav/clamsubmit/clamsubmit.c
    functionUses: 0
    functionsReached:
    - exit
    - get_version
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: print_version
      Src: /src/clamav/clamsubmit/clamsubmit.c:97,1
    - Dst: exit
      Src: /src/clamav/clamsubmit/clamsubmit.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: version
    functionSourceFile: /src/clamav/clamsubmit/clamsubmit.c
    functionUses: 9
    functionsReached:
    - exit
    - print_version
    linkageType: ''
    returnType: void
    signature: void version(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/clamsubmit/clamsubmit.c:110,1
    - Dst: strchr
      Src: /src/clamav/clamsubmit/clamsubmit.c:113,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:115,1
    - Dst: malloc
      Src: /src/clamav/clamsubmit/clamsubmit.c:118,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:120,1
    - Dst: memcpy
      Src: /src/clamav/clamsubmit/clamsubmit.c:123,1
    - Dst: strncmp
      Src: /src/clamav/clamsubmit/clamsubmit.c:125,1
    - Dst: strlen
      Src: /src/clamav/clamsubmit/clamsubmit.c:125,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:128,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 133
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 133
    functionName: header_cb
    functionSourceFile: /src/clamav/clamsubmit/clamsubmit.c
    functionUses: 0
    functionsReached:
    - strlen
    - strchr
    - logg
    - memcpy
    - malloc
    - free
    - strncmp
    linkageType: ''
    returnType: size_t
    signature: size_t header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/clamav/clamsubmit/clamsubmit.c:142,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:144,1
    - Dst: memcpy
      Src: /src/clamav/clamsubmit/clamsubmit.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ptr
    - size
    - nmemb
    - userdata
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: write_cb
    functionSourceFile: /src/clamav/clamsubmit/clamsubmit.c
    functionUses: 0
    functionsReached:
    - memcpy
    - realloc
    - logg
    linkageType: ''
    returnType: size_t
    signature: size_t write_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/clamav/clamsubmit/clamsubmit.c:167,1
    - Dst: json_object_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:168,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:170,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ps_json_obj
    - key
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: presigned_get_string
    functionSourceFile: /src/clamav/clamsubmit/clamsubmit.c
    functionUses: 0
    functionsReached:
    - json_object_get_string
    - logg
    - json_object_object_get_ex
    linkageType: ''
    returnType: char
    signature: char *presigned_get_string(json_object *ps_json_obj, char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: curl_global_init
      Src: /src/clamav/clamsubmit/clamsubmit.c:207,1
    - Dst: curl_easy_init
      Src: /src/clamav/clamsubmit/clamsubmit.c:209,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:211,1
    - Dst: memset
      Src: /src/clamav/clamsubmit/clamsubmit.c:215,1
    - Dst: snprintf
      Src: /src/clamav/clamsubmit/clamsubmit.c:216,1
    - Dst: get_version
      Src: /src/clamav/clamsubmit/clamsubmit.c:218,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:221,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:222,1
    - Dst: my_getopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:225,1
    - Dst: version
      Src: /src/clamav/clamsubmit/clamsubmit.c:228,1
    - Dst: usage
      Src: /src/clamav/clamsubmit/clamsubmit.c:238,1
    - Dst: usage
      Src: /src/clamav/clamsubmit/clamsubmit.c:243,1
    - Dst: usage
      Src: /src/clamav/clamsubmit/clamsubmit.c:256,1
    - Dst: usage
      Src: /src/clamav/clamsubmit/clamsubmit.c:261,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:264,1
    - Dst: usage
      Src: /src/clamav/clamsubmit/clamsubmit.c:265,1
    - Dst: strlen
      Src: /src/clamav/clamsubmit/clamsubmit.c:267,1
    - Dst: read_stream
      Src: /src/clamav/clamsubmit/clamsubmit.c:268,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:270,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:278,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:279,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:281,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:282,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:286,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:287,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:291,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:292,1
    - Dst: set_tls_ca_bundle
      Src: /src/clamav/clamsubmit/clamsubmit.c:296,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:307,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:308,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:309,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:310,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:311,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:312,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamsubmit/clamsubmit.c:313,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:315,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamsubmit/clamsubmit.c:315,1
    - Dst: strstr
      Src: /src/clamav/clamsubmit/clamsubmit.c:319,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:321,1
    - Dst: strstr
      Src: /src/clamav/clamsubmit/clamsubmit.c:324,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:326,1
    - Dst: strchr
      Src: /src/clamav/clamsubmit/clamsubmit.c:330,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:332,1
    - Dst: malloc
      Src: /src/clamav/clamsubmit/clamsubmit.c:335,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:337,1
    - Dst: memcpy
      Src: /src/clamav/clamsubmit/clamsubmit.c:340,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:342,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:349,1
    - Dst: strlen
      Src: /src/clamav/clamsubmit/clamsubmit.c:352,1
    - Dst: malloc
      Src: /src/clamav/clamsubmit/clamsubmit.c:353,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:355,1
    - Dst: snprintf
      Src: /src/clamav/clamsubmit/clamsubmit.c:358,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:359,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:373,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:374,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:377,1
    - Dst: strlen
      Src: /src/clamav/clamsubmit/clamsubmit.c:381,1
    - Dst: strlen
      Src: /src/clamav/clamsubmit/clamsubmit.c:381,1
    - Dst: malloc
      Src: /src/clamav/clamsubmit/clamsubmit.c:382,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:384,1
    - Dst: snprintf
      Src: /src/clamav/clamsubmit/clamsubmit.c:387,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:388,1
    - Dst: curl_slist_append
      Src: /src/clamav/clamsubmit/clamsubmit.c:391,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:392,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:395,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:396,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:397,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:398,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamsubmit/clamsubmit.c:400,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:402,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamsubmit/clamsubmit.c:402,1
    - Dst: curl_slist_free_all
      Src: /src/clamav/clamsubmit/clamsubmit.c:405,1
    - Dst: json_tokener_parse
      Src: /src/clamav/clamsubmit/clamsubmit.c:411,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:413,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:416,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:418,1
    - Dst: strchr
      Src: /src/clamav/clamsubmit/clamsubmit.c:421,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:423,1
    - Dst: strchr
      Src: /src/clamav/clamsubmit/clamsubmit.c:427,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:429,1
    - Dst: malloc
      Src: /src/clamav/clamsubmit/clamsubmit.c:433,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:435,1
    - Dst: memcpy
      Src: /src/clamav/clamsubmit/clamsubmit.c:438,1
    - Dst: curl_easy_init
      Src: /src/clamav/clamsubmit/clamsubmit.c:441,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:443,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:447,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:448,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:453,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:454,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:456,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:457,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:461,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:462,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:466,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:467,1
    - Dst: set_tls_ca_bundle
      Src: /src/clamav/clamsubmit/clamsubmit.c:471,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:474,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:476,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:478,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:481,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:483,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:485,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:488,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:490,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:492,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:495,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:497,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:499,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:502,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:504,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:506,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:509,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:511,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:513,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:516,1
    - Dst: presigned_get_string
      Src: /src/clamav/clamsubmit/clamsubmit.c:518,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:520,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:523,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:525,1
    - Dst: curl_slist_append
      Src: /src/clamav/clamsubmit/clamsubmit.c:527,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:528,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:529,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:530,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamsubmit/clamsubmit.c:532,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:534,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamsubmit/clamsubmit.c:534,1
    - Dst: curl_slist_free_all
      Src: /src/clamav/clamsubmit/clamsubmit.c:537,1
    - Dst: curl_formfree
      Src: /src/clamav/clamsubmit/clamsubmit.c:539,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamsubmit/clamsubmit.c:542,1
    - Dst: json_object_put
      Src: /src/clamav/clamsubmit/clamsubmit.c:544,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:547,1
    - Dst: curl_slist_append
      Src: /src/clamav/clamsubmit/clamsubmit.c:553,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:556,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:559,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:560,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:561,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:562,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:563,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:564,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:566,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:568,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:570,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:571,1
    - Dst: curl_formadd
      Src: /src/clamav/clamsubmit/clamsubmit.c:572,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:573,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:574,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:575,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamsubmit/clamsubmit.c:576,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamsubmit/clamsubmit.c:577,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:579,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamsubmit/clamsubmit.c:579,1
    - Dst: curl_easy_getinfo
      Src: /src/clamav/clamsubmit/clamsubmit.c:583,1
    - Dst: curl_easy_getinfo
      Src: /src/clamav/clamsubmit/clamsubmit.c:585,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:587,1
    - Dst: strstr
      Src: /src/clamav/clamsubmit/clamsubmit.c:590,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:592,1
    - Dst: strcmp
      Src: /src/clamav/clamsubmit/clamsubmit.c:593,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:594,1
    - Dst: strcmp
      Src: /src/clamav/clamsubmit/clamsubmit.c:596,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:597,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:599,1
    - Dst: logg
      Src: /src/clamav/clamsubmit/clamsubmit.c:602,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:611,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:614,1
    - Dst: curl_slist_free_all
      Src: /src/clamav/clamsubmit/clamsubmit.c:617,1
    - Dst: curl_formfree
      Src: /src/clamav/clamsubmit/clamsubmit.c:620,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamsubmit/clamsubmit.c:623,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamsubmit/clamsubmit.c:626,1
    - Dst: curl_global_cleanup
      Src: /src/clamav/clamsubmit/clamsubmit.c:628,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:631,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:636,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:639,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:642,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:645,1
    - Dst: remove
      Src: /src/clamav/clamsubmit/clamsubmit.c:648,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:649,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 407
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 653
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 653
    functionName: main
    functionSourceFile: /src/clamav/clamsubmit/clamsubmit.c
    functionUses: 0
    functionsReached:
    - snprintf
    - curl_easy_strerror
    - json_tokener_parse
    - curl_easy_cleanup
    - remove
    - json_object_put
    - get_version
    - curl_easy_setopt
    - usage
    - curl_formfree
    - my_getopt
    - curl_slist_free_all
    - version
    - strcmp
    - strstr
    - presigned_get_string
    - read_stream
    - curl_formadd
    - curl_easy_init
    - curl_global_cleanup
    - memset
    - malloc
    - curl_slist_append
    - free
    - curl_easy_perform
    - strlen
    - curl_global_init
    - set_tls_ca_bundle
    - curl_easy_getinfo
    - strchr
    - logg
    - memcpy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp
      Src: /src/clamav/clamsubmit/clamsubmit.c:662,1
    - Dst: fopen
      Src: /src/clamav/clamsubmit/clamsubmit.c:667,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:669,1
    - Dst: feof
      Src: /src/clamav/clamsubmit/clamsubmit.c:673,1
    - Dst: fread
      Src: /src/clamav/clamsubmit/clamsubmit.c:675,1
    - Dst: fclose
      Src: /src/clamav/clamsubmit/clamsubmit.c:677,1
    - Dst: remove
      Src: /src/clamav/clamsubmit/clamsubmit.c:678,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:679,1
    - Dst: fwrite
      Src: /src/clamav/clamsubmit/clamsubmit.c:685,1
    - Dst: fclose
      Src: /src/clamav/clamsubmit/clamsubmit.c:687,1
    - Dst: remove
      Src: /src/clamav/clamsubmit/clamsubmit.c:688,1
    - Dst: free
      Src: /src/clamav/clamsubmit/clamsubmit.c:689,1
    - Dst: fclose
      Src: /src/clamav/clamsubmit/clamsubmit.c:697,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 700
    functionName: read_stream
    functionSourceFile: /src/clamav/clamsubmit/clamsubmit.c
    functionUses: 1
    functionsReached:
    - feof
    - fread
    - fwrite
    - cli_gentemp
    - remove
    - fclose
    - free
    - fopen
    linkageType: ''
    returnType: char
    signature: char *read_stream(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp
      Src: /src/clamav/unit_tests/check_clamav.c:50,1
    - Dst: mkdir
      Src: /src/clamav/unit_tests/check_clamav.c:51,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: cl_setup
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - mkdir
    - cli_gentemp
    linkageType: ''
    returnType: void
    signature: void cl_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_clamav.c:58,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: cl_teardown
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - free
    - cli_rmdirs
    linkageType: ''
    returnType: void
    signature: void cl_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cl_free)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_build)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_debug
      Src: /src/clamav/unit_tests/check_clamav.c:89,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:90,1
    - Dst: cli_get_debug_flag
      Src: /src/clamav/unit_tests/check_clamav.c:90,1
    - Dst: cli_set_debug_flag
      Src: /src/clamav/unit_tests/check_clamav.c:92,1
    - Dst: cl_debug
      Src: /src/clamav/unit_tests/check_clamav.c:94,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:95,1
    - Dst: cli_get_debug_flag
      Src: /src/clamav/unit_tests/check_clamav.c:95,1
    - Dst: cli_set_debug_flag
      Src: /src/clamav/unit_tests/check_clamav.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_set_debug_flag
    - cl_debug
    - cli_get_debug_flag
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_debug)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:105,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:105,1
    - Dst: cl_retdbdir
      Src: /src/clamav/unit_tests/check_clamav.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - strcmp
    - cl_retdbdir
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cl_retdbdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:118,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:118,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:119,1
    - Dst: strcspn
      Src: /src/clamav/unit_tests/check_clamav.c:119,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - strlen
    - ck_assert_msg
    - strcspn
    - strcmp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cl_retver)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 145
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_cvdfree)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 168
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_statfree)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_retflevel)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_cvdhead)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_cvdparse)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:209,1
    - Dst: cl_scandesc
      Src: /src/clamav/unit_tests/check_clamav.c:210,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:211,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:214,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:214,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:215,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:215,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 218
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - cl_scandesc
    - ck_assert_msg
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cl_scandesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:230,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:235,1
    - Dst: cl_scandesc
      Src: /src/clamav/unit_tests/check_clamav.c:236,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:238,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:241,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:241,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:242,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:242,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 245
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - cl_scandesc
    - ck_assert_msg
    - cli_dbgmsg
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scandesc_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:258,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:262,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:264,1
    - Dst: cl_scanfile
      Src: /src/clamav/unit_tests/check_clamav.c:265,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:266,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:269,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:269,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:270,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 272
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - ck_assert_msg
    - cli_dbgmsg
    - cl_scanfile
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scanfile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:284,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:289,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:291,1
    - Dst: cl_scanfile
      Src: /src/clamav/unit_tests/check_clamav.c:292,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:293,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:296,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:296,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:297,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - ck_assert_msg
    - cli_dbgmsg
    - cl_scanfile
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scanfile_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:311,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:315,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:317,1
    - Dst: cl_scanfile_callback
      Src: /src/clamav/unit_tests/check_clamav.c:319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:320,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:323,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:323,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:324,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 326
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - ck_assert_msg
    - cli_dbgmsg
    - cl_scanfile_callback
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scanfile_callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:338,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:343,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:345,1
    - Dst: cl_scanfile_callback
      Src: /src/clamav/unit_tests/check_clamav.c:347,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:348,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:351,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:351,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:352,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 354
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - ck_assert_msg
    - cli_dbgmsg
    - cl_scanfile_callback
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scanfile_callback_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:366,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:371,1
    - Dst: cl_scandesc_callback
      Src: /src/clamav/unit_tests/check_clamav.c:373,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:374,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:377,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:377,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:378,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:378,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 381
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - ck_assert_msg
    - cli_dbgmsg
    - cl_scandesc_callback
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scandesc_callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:393,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:399,1
    - Dst: cl_scandesc_callback
      Src: /src/clamav/unit_tests/check_clamav.c:401,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:402,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:405,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:405,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:406,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:406,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 409
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - ck_assert_msg
    - cli_dbgmsg
    - cl_scandesc_callback
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scandesc_callback_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_clamav.c:421,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:422,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:422,1
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_clamav.c:424,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:425,1
    - Dst: cl_load
      Src: /src/clamav/unit_tests/check_clamav.c:429,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:430,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:430,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:431,1
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_clamav.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 434
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - cl_init
    - cl_load
    - cl_engine_free
    - ck_assert_msg
    - cl_engine_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_load)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/clamav/unit_tests/check_clamav.c:448,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:449,1
    - Dst: cl_cvdverify_ex
      Src: /src/clamav/unit_tests/check_clamav.c:453,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:454,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:454,1
    - Dst: cl_cvdverify_ex
      Src: /src/clamav/unit_tests/check_clamav.c:458,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:459,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:459,1
    - Dst: cl_cvdverify_ex
      Src: /src/clamav/unit_tests/check_clamav.c:463,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:464,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:464,1
    - Dst: cl_cvdverify_ex
      Src: /src/clamav/unit_tests/check_clamav.c:468,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:469,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:469,1
    - Dst: sprintf
      Src: /src/clamav/unit_tests/check_clamav.c:472,1
    - Dst: fopen
      Src: /src/clamav/unit_tests/check_clamav.c:474,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:475,1
    - Dst: fopen
      Src: /src/clamav/unit_tests/check_clamav.c:477,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:478,1
    - Dst: fread
      Src: /src/clamav/unit_tests/check_clamav.c:481,1
    - Dst: fwrite
      Src: /src/clamav/unit_tests/check_clamav.c:482,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_clamav.c:484,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_clamav.c:485,1
    - Dst: cl_cvdverify
      Src: /src/clamav/unit_tests/check_clamav.c:488,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:489,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 490
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 490
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - getenv
    - fread
    - fwrite
    - ck_assert_msg
    - cl_cvdverify
    - cl_cvdverify_ex
    - fclose
    - sprintf
    - fopen
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_cvdverify)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/unit_tests/check_clamav.c:502,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:503,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:503,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/unit_tests/check_clamav.c:507,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:508,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 509
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - ck_assert_msg
    - cl_cvdunpack_ex
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_cvdunpack_ex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_statinidir)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 521
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_statchkdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_settempdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 533
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_strerror)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 552
    functionName: skip_files
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned skip_files(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/clamav/unit_tests/check_clamav.c:560,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:561,1
    - Dst: readdir
      Src: /src/clamav/unit_tests/check_clamav.c:566,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_clamav.c:567,1
    - Dst: cli_safer_realloc
      Src: /src/clamav/unit_tests/check_clamav.c:570,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:571,1
    - Dst: strdup
      Src: /src/clamav/unit_tests/check_clamav.c:572,1
    - Dst: get_fpu_endian
      Src: /src/clamav/unit_tests/check_clamav.c:575,1
    - Dst: skip_files
      Src: /src/clamav/unit_tests/check_clamav.c:577,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:578,1
    - Dst: closedir
      Src: /src/clamav/unit_tests/check_clamav.c:580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 581
    functionName: init_testfiles
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - get_fpu_endian
    - closedir
    - strdup
    - opendir
    - readdir
    - ck_assert_msg
    - skip_files
    - cli_safer_realloc
    - strncmp
    linkageType: ''
    returnType: void
    signature: void init_testfiles(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:587,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: free_testfiles
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_testfiles(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_testfiles
      Src: /src/clamav/unit_tests/check_clamav.c:601,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:603,1
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_clamav.c:603,1
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_clamav.c:605,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:606,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:607,1
    - Dst: cl_load
      Src: /src/clamav/unit_tests/check_clamav.c:607,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:608,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:609,1
    - Dst: cl_engine_compile
      Src: /src/clamav/unit_tests/check_clamav.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: engine_setup
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_init
    - cl_engine_compile
    - cl_load
    - init_testfiles
    - ck_assert_msg
    - cl_engine_new
    linkageType: ''
    returnType: void
    signature: void engine_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_testfiles
      Src: /src/clamav/unit_tests/check_clamav.c:614,1
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_clamav.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 616
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 616
    functionName: engine_teardown
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - free_testfiles
    - cl_engine_free
    linkageType: ''
    returnType: void
    signature: void engine_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:623,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_clamav.c:626,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:627,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:628,1
    - Dst: FSTAT
      Src: /src/clamav/unit_tests/check_clamav.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - i
    - file
    - fsize
    - size
    argTypes:
    - int
    - char*
    - unsigned
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 631
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 631
    functionName: get_test_file
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - open
    - ck_assert_msg
    - FSTAT
    linkageType: ''
    returnType: int
    signature: int get_test_file(int i, char *file, unsigned fsize, unsigned long
      *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pread
      Src: /src/clamav/unit_tests/check_clamav.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - buf
    - count
    - offset
    argTypes:
    - void*
    - void*
    - size_t
    - off_t
    constantsTouched: []
    func_position:
      end: 637
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 637
    functionName: pread_cb
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - pread
    linkageType: ''
    returnType: off_t
    signature: off_t pread_cb(void *handle, void *buf, size_t count, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:649,1
    - Dst: cl_fmap_open_handle
      Src: /src/clamav/unit_tests/check_clamav.c:654,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:655,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:657,1
    - Dst: cl_scanmap_callback
      Src: /src/clamav/unit_tests/check_clamav.c:658,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:659,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:662,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:662,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:663,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:663,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:665,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 667
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 667
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - strcmp
    - cl_scanmap_callback
    - ck_assert_msg
    - cli_dbgmsg
    - cl_fmap_close
    - cl_fmap_open_handle
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cl_scanmap_callback_handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:680,1
    - Dst: cl_fmap_open_handle
      Src: /src/clamav/unit_tests/check_clamav.c:686,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:687,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:689,1
    - Dst: cl_scanmap_callback
      Src: /src/clamav/unit_tests/check_clamav.c:690,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:691,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:694,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:694,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:695,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:695,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:697,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 699
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - close
    - memset
    - ck_assert
    - strcmp
    - cl_scanmap_callback
    - ck_assert_msg
    - cli_dbgmsg
    - cl_fmap_close
    - cl_fmap_open_handle
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scanmap_callback_handle_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:715,1
    - Dst: mmap
      Src: /src/clamav/unit_tests/check_clamav.c:720,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:721,1
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/unit_tests/check_clamav.c:724,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:725,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:727,1
    - Dst: cl_scanmap_callback
      Src: /src/clamav/unit_tests/check_clamav.c:728,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:729,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:731,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:731,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:732,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:732,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:734,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:735,1
    - Dst: munmap
      Src: /src/clamav/unit_tests/check_clamav.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 738
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - munmap
    - cl_strerror
    - close
    - memset
    - strcmp
    - cl_fmap_open_memory
    - cl_scanmap_callback
    - ck_assert_msg
    - cli_dbgmsg
    - cl_fmap_close
    - mmap
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cl_scanmap_callback_mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:752,1
    - Dst: mmap
      Src: /src/clamav/unit_tests/check_clamav.c:758,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:759,1
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/unit_tests/check_clamav.c:762,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:763,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:765,1
    - Dst: cl_scanmap_callback
      Src: /src/clamav/unit_tests/check_clamav.c:766,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:767,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:769,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_clamav.c:769,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:770,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:770,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:772,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:773,1
    - Dst: munmap
      Src: /src/clamav/unit_tests/check_clamav.c:774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 775
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 775
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - munmap
    - cl_strerror
    - close
    - memset
    - ck_assert
    - strcmp
    - cl_fmap_open_memory
    - cl_scanmap_callback
    - ck_assert_msg
    - cli_dbgmsg
    - cl_fmap_close
    - mmap
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cl_scanmap_callback_mem_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/unit_tests/check_clamav.c:788,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:789,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:794,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:795,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:796,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:797,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:798,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:799,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:801,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:802,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:803,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:803,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:805,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:806,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:812,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:813,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:814,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:815,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:816,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:817,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:819,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:820,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:821,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:821,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:826,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:827,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:828,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:829,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:830,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:831,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:833,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:834,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:835,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:835,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:837,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:838,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:840,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:841,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:847,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:848,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:849,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:850,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:851,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:852,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:854,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:855,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:856,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:856,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:861,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:862,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:863,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:864,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:865,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:866,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:868,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:869,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:870,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:870,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:872,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:873,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:875,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:876,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:882,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:883,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:884,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:885,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:886,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:887,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:889,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:890,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:891,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:891,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:896,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:897,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:898,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:899,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:900,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:901,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:903,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:904,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:905,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:905,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:907,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:908,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:910,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:911,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:914,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 916
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 916
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert
    - fmap_duplicate
    - cl_fmap_open_memory
    - fmap_readn
    - ck_assert_msg
    - cli_dbgmsg
    - free_duplicate_fmap
    - cl_fmap_close
    - memcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_fmap_duplicate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/unit_tests/check_clamav.c:928,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:929,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:934,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:935,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:936,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:937,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:938,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:939,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:941,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:942,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:944,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:945,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:951,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:952,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:953,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:954,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:955,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:956,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:958,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:959,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:960,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:960,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:962,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:963,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:969,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:970,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:971,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:972,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:973,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:974,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:976,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:977,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:978,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:978,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:983,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:984,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:985,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:987,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:988,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:994,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:995,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:996,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:997,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:998,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:999,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:1001,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1002,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1003,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1003,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1011,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:1012,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1013,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1014,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1015,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1016,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:1018,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1019,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1020,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1020,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1022,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:1023,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1030,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:1031,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1032,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1033,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1034,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1035,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:1037,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1038,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1040,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:1041,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1047,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:1048,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1049,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1052,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:1053,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1056,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 1058
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert
    - fmap_duplicate
    - cl_fmap_open_memory
    - fmap_readn
    - ck_assert_msg
    - cli_dbgmsg
    - free_duplicate_fmap
    - cl_fmap_close
    - memcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_fmap_duplicate_out_of_bounds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/unit_tests/check_clamav.c:1088,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1089,1
    - Dst: fmap_readn
      Src: /src/clamav/unit_tests/check_clamav.c:1094,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1095,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1096,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1096,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/unit_tests/check_clamav.c:1101,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1102,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/unit_tests/check_clamav.c:1108,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1109,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1110,1
    - Dst: memchr
      Src: /src/clamav/unit_tests/check_clamav.c:1116,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1117,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:1121,1
    - Dst: fmap_gets
      Src: /src/clamav/unit_tests/check_clamav.c:1123,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1124,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1125,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1126,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1126,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1127,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:1129,1
    - Dst: fmap_gets
      Src: /src/clamav/unit_tests/check_clamav.c:1131,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1132,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1133,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1134,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1134,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1135,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/unit_tests/check_clamav.c:1140,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1141,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1142,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1143,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1143,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/unit_tests/check_clamav.c:1148,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1149,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/unit_tests/check_clamav.c:1151,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1152,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1153,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1153,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/unit_tests/check_clamav.c:1158,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1159,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/unit_tests/check_clamav.c:1161,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1162,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1163,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1163,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 4
    argNames:
    - map
    - map_data
    - map_data_len
    - msg
    argTypes:
    - cl_fmap_t*
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 1166
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1166
    functionName: fmap_api_tests
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - memset
    - calloc
    - fmap_gets
    - fmap_need_ptr_once
    - memchr
    - fmap_need_off_once
    - fmap_readn
    - fmap_need_offstr
    - ck_assert_msg
    - fmap_need_off_once_len
    - memcmp
    - free
    linkageType: ''
    returnType: void
    signature: void fmap_api_tests(cl_fmap_t *map, const char *map_data, size_t map_data_len,
      const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/unit_tests/check_clamav.c:1179,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1181,1
    - Dst: fmap_api_tests
      Src: /src/clamav/unit_tests/check_clamav.c:1186,1
    - Dst: fmap_dump_to_file
      Src: /src/clamav/unit_tests/check_clamav.c:1191,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1192,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1193,1
    - Dst: fmap
      Src: /src/clamav/unit_tests/check_clamav.c:1195,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1196,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1197,1
    - Dst: fmap_api_tests
      Src: /src/clamav/unit_tests/check_clamav.c:1202,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1207,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:1208,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1213,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1214,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1215,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1216,1
    - Dst: fmap_api_tests
      Src: /src/clamav/unit_tests/check_clamav.c:1221,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1224,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:1225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1231,1
    - Dst: fmap_duplicate
      Src: /src/clamav/unit_tests/check_clamav.c:1232,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1237,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1238,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1239,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1240,1
    - Dst: fmap_api_tests
      Src: /src/clamav/unit_tests/check_clamav.c:1245,1
    - Dst: fmap_dump_to_file
      Src: /src/clamav/unit_tests/check_clamav.c:1250,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1251,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1252,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1255,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/unit_tests/check_clamav.c:1256,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:1260,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:1263,1
    - Dst: cli_unlink
      Src: /src/clamav/unit_tests/check_clamav.c:1266,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1267,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:1271,1
    - Dst: fmap
      Src: /src/clamav/unit_tests/check_clamav.c:1277,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1279,1
    - Dst: fmap_api_tests
      Src: /src/clamav/unit_tests/check_clamav.c:1284,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/unit_tests/check_clamav.c:1287,1
    - Dst: cl_fmap_close
      Src: /src/clamav/unit_tests/check_clamav.c:1288,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:1291,1
    - Dst: cli_unlink
      Src: /src/clamav/unit_tests/check_clamav.c:1294,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1297
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - fmap
    - close
    - fmap_duplicate
    - cl_fmap_open_memory
    - cli_unlink
    - fmap_dump_to_file
    - ck_assert_msg
    - cli_dbgmsg
    - free_duplicate_fmap
    - fmap_api_tests
    - cl_fmap_close
    - free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_fmap_assorted_api)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_clamav.c:1302,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_clamav.c:1303,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_clamav.c:1304,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_clamav.c:1307,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_clamav.c:1308,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1309,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1310,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1311,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1313,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1315,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1316,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1317,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1318,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1319,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1320,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1321,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1322,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1323,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1324,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1325,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1326,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_clamav.c:1328,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_clamav.c:1329,1
    - Dst: get_fpu_endian
      Src: /src/clamav/unit_tests/check_clamav.c:1331,1
    - Dst: skip_files
      Src: /src/clamav/unit_tests/check_clamav.c:1333,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1334,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1335,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1336,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1337,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1338,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1339,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1340,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1341,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1343,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1344,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1347,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1348,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1350,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1351,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1352,1
    - Dst: getenv
      Src: /src/clamav/unit_tests/check_clamav.c:1354,1
    - Dst: tcase_set_timeout
      Src: /src/clamav/unit_tests/check_clamav.c:1357,1
    - Dst: printf
      Src: /src/clamav/unit_tests/check_clamav.c:1358,1
    - Dst: printf
      Src: /src/clamav/unit_tests/check_clamav.c:1360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1363
    functionName: test_cl_suite
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - get_fpu_endian
    - tcase_add_test
    - getenv
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_loop_test
    - printf
    - tcase_create
    - skip_files
    - tcase_set_timeout
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_cl_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_clamav.c:1376,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_clamav.c:1377,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1378,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1379,1
    - Dst: memcpy
      Src: /src/clamav/unit_tests/check_clamav.c:1384,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1388
    functionName: data_setup
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    - ck_assert_msg
    - memset
    linkageType: ''
    returnType: void
    signature: void data_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1392,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1394
    functionName: data_teardown
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void data_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1404,1
    - Dst: cli_readint16
      Src: /src/clamav/unit_tests/check_clamav.c:1404,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1409,1
    - Dst: cli_readint16
      Src: /src/clamav/unit_tests/check_clamav.c:1409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1411
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_readint16
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cli_readint16)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1421,1
    - Dst: cli_readint32
      Src: /src/clamav/unit_tests/check_clamav.c:1421,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1426,1
    - Dst: cli_readint32
      Src: /src/clamav/unit_tests/check_clamav.c:1426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1428
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_readint32
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cli_readint32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_writeint32
      Src: /src/clamav/unit_tests/check_clamav.c:1437,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1440,1
    - Dst: cli_readint32
      Src: /src/clamav/unit_tests/check_clamav.c:1440,1
    - Dst: cli_writeint32
      Src: /src/clamav/unit_tests/check_clamav.c:1444,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1447,1
    - Dst: cli_readint32
      Src: /src/clamav/unit_tests/check_clamav.c:1447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1449
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_readint32
    - cli_writeint32
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cli_writeint32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1456
    functionName: dsig_test
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST dsig_test
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1482,1
    - Dst: cli_versig
      Src: /src/clamav/unit_tests/check_clamav.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1484
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_versig
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_cli_dsig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamav.c:1517,1
    - Dst: cl_sha256
      Src: /src/clamav/unit_tests/check_clamav.c:1519,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1520,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1520,1
    - Dst: cl_sha256
      Src: /src/clamav/unit_tests/check_clamav.c:1522,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1523,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1523,1
    - Dst: cl_hash_init
      Src: /src/clamav/unit_tests/check_clamav.c:1525,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1526,1
    - Dst: cl_update_hash
      Src: /src/clamav/unit_tests/check_clamav.c:1529,1
    - Dst: cl_finish_hash
      Src: /src/clamav/unit_tests/check_clamav.c:1530,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1531,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1532
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - memset
    - memcmp
    - ck_assert_msg
    - cl_sha256
    - cl_hash_init
    - cl_update_hash
    - cl_finish_hash
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_sha256)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1544,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1544,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1545,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1548,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1548,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1549,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1550,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1553,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1554,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1557,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1558,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1559,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1562,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1563,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1566,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1567,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1568,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1571,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1572,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1575,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1576,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1577,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1580,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1580,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1581,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1584,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1584,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1585,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1586,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1589,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1589,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1590,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1593,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1593,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1594,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1595,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1598,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1598,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1599,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1602,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1602,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1603,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1604,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1608,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1608,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1609,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1610,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1610,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1611,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1616,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1616,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1617,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1618,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1619,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1619,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1620,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1620,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1621,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1625,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1625,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1626,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1627,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1627,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1628,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1633,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1633,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1634,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1635,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1636,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1636,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1637,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1637,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1638,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1642,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1642,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1643,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1644,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1644,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1645,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1650,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1650,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1651,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1652,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1653,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1653,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1654,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1654,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1655,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1659,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1659,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1660,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1661,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1661,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1662,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1662,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1663,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1668,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1668,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1669,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1670,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1671,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1671,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1672,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1672,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1673,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1677,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1677,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1678,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1679,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1679,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1680,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1685,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1685,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1686,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1687,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1688,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1688,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1689,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1689,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1690,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1694,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1694,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1695,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1696,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1696,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1697,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1702,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1702,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1703,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1704,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1705,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1705,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1706,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1706,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1707,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1711,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1711,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1712,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1713,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1713,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1714,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1719,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1719,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1720,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1721,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1722,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1722,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1723,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1723,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1724,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1728,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1728,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1729,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1730,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1730,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1731,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1736,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1736,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1737,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1738,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1739,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1739,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1740,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1740,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1741,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1745,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1745,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1746,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1747,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1747,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1748,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1753,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1753,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1754,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1755,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1756,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1756,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1757,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1757,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1758,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1762,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1762,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1763,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1764,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1764,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1765,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1770,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1770,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1771,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1772,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1773,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1773,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1774,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1774,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1775,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1779,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1779,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1780,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1781,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1781,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1782,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1782,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1783,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/unit_tests/check_clamav.c:1787,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1787,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1788,1
    - Dst: ck_assert
      Src: /src/clamav/unit_tests/check_clamav.c:1789,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1790,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1790,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 215
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1792
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - cli_sanitize_filepath
    - ck_assert
    - strcmp
    - strlen
    - ck_assert_msg
    - free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_sanitize_path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/unit_tests/check_clamav.c:1801,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1802,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1803,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1804,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1804,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1793
    functionDepth: 1
    functionLinenumber: 1793
    functionLinenumberEnd: 1810
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ck_assert_msg
    - free
    - cli_codepage_to_utf8
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cli_codepage_to_utf8_jis)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/unit_tests/check_clamav.c:1819,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1820,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1821,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1822,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1822,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1811
    functionDepth: 1
    functionLinenumber: 1811
    functionLinenumberEnd: 1828
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ck_assert_msg
    - free
    - cli_codepage_to_utf8
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cli_codepage_to_utf8_utf16be_null_term)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/unit_tests/check_clamav.c:1837,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1838,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1839,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1840,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1840,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1846
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ck_assert_msg
    - free
    - cli_codepage_to_utf8
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cli_codepage_to_utf8_utf16be_no_null_term)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/unit_tests/check_clamav.c:1855,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1856,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1857,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1858,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamav.c:1858,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1847
    functionDepth: 1
    functionLinenumber: 1847
    functionLinenumberEnd: 1864
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ck_assert_msg
    - free
    - cli_codepage_to_utf8
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_cli_codepage_to_utf8_utf16le)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_clamav.c:1869,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_clamav.c:1870,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_clamav.c:1871,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_clamav.c:1872,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_clamav.c:1874,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_clamav.c:1875,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1876,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1877,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1878,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_clamav.c:1880,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamav.c:1881,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1882,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_clamav.c:1884,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1885,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1886,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1887,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1888,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamav.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1865
    functionDepth: 0
    functionLinenumber: 1865
    functionLinenumberEnd: 1892
    functionName: test_cli_suite
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - tcase_add_test
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_loop_test
    - tcase_create
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_cli_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/clamav/unit_tests/check_clamav.c:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1894
    functionDepth: 0
    functionLinenumber: 1894
    functionLinenumberEnd: 1897
    functionName: errmsg_expected
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void errmsg_expected(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_clamav.c:1904,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1904,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamav.c:1904,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1905,1
    - Dst: sprintf
      Src: /src/clamav/unit_tests/check_clamav.c:1906,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_clamav.c:1908,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1909,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1912
      start: 1899
    functionDepth: 1
    functionLinenumber: 1899
    functionLinenumberEnd: 1912
    functionName: open_testfile
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - strlen
    - open
    - ck_assert_msg
    - malloc
    - free
    - sprintf
    linkageType: ''
    returnType: int
    signature: int open_testfile(const char *name, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1920,1
    - Dst: read
      Src: /src/clamav/unit_tests/check_clamav.c:1921,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1922,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1933,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1934,1
    - Dst: lseek
      Src: /src/clamav/unit_tests/check_clamav.c:1935,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1936,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:1937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - fd
    - ref
    - len
    argTypes:
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1938
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1938
    functionName: diff_file_mem
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - close
    - lseek
    - ck_assert_msg
    - read
    - free
    linkageType: ''
    returnType: void
    signature: void diff_file_mem(int fd, const char *ref, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/clamav/unit_tests/check_clamav.c:1944,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1945,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_clamav.c:1947,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1948,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1950,1
    - Dst: lseek
      Src: /src/clamav/unit_tests/check_clamav.c:1950,1
    - Dst: read
      Src: /src/clamav/unit_tests/check_clamav.c:1951,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1952,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamav.c:1953,1
    - Dst: diff_file_mem
      Src: /src/clamav/unit_tests/check_clamav.c:1954,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamav.c:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - ref_fd
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1956
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1956
    functionName: diff_files
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - lseek
    - close
    - diff_file_mem
    - ck_assert_msg
    - read
    - malloc
    - free
    linkageType: ''
    returnType: void
    signature: void diff_files(int fd, int ref_fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_clamav.c:1970,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1971,1
    - Dst: cli_mpool_dconf_init
      Src: /src/clamav/unit_tests/check_clamav.c:1973,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamav.c:1974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 1975
    functionName: dconf_setup
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - mpool_create
    - ck_assert_msg
    - cli_mpool_dconf_init
    linkageType: ''
    returnType: void
    signature: void dconf_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/unit_tests/check_clamav.c:1979,1
    - Dst: mpool_destroy
      Src: /src/clamav/unit_tests/check_clamav.c:1982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1977
    functionDepth: 1
    functionLinenumber: 1977
    functionLinenumberEnd: 1984
    functionName: dconf_teardown
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - MPOOL_FREE
    - mpool_destroy
    linkageType: ''
    returnType: void
    signature: void dconf_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/unit_tests/check_clamav.c:1995,1
    - Dst: exit
      Src: /src/clamav/unit_tests/check_clamav.c:2005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 2007
    functionName: check_version_compatible
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void check_version_compatible()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_clamav.c:2016,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_clamav.c:2017,1
    - Dst: cl_initialize_crypto
      Src: /src/clamav/unit_tests/check_clamav.c:2019,1
    - Dst: get_fpu_endian
      Src: /src/clamav/unit_tests/check_clamav.c:2021,1
    - Dst: check_version_compatible
      Src: /src/clamav/unit_tests/check_clamav.c:2024,1
    - Dst: test_cl_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2026,1
    - Dst: srunner_create
      Src: /src/clamav/unit_tests/check_clamav.c:2027,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2029,1
    - Dst: test_cli_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2029,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2030,1
    - Dst: test_jsnorm_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2030,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2031,1
    - Dst: test_str_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2031,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2032,1
    - Dst: test_regex_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2032,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2033,1
    - Dst: test_disasm_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2033,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2034,1
    - Dst: test_uniq_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2034,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2035,1
    - Dst: test_matchers_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2035,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2036,1
    - Dst: test_htmlnorm_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2036,1
    - Dst: srunner_add_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2037,1
    - Dst: test_bytecode_suite
      Src: /src/clamav/unit_tests/check_clamav.c:2037,1
    - Dst: freopen
      Src: /src/clamav/unit_tests/check_clamav.c:2040,1
    - Dst: fputs
      Src: /src/clamav/unit_tests/check_clamav.c:2043,1
    - Dst: cl_debug
      Src: /src/clamav/unit_tests/check_clamav.c:2045,1
    - Dst: srunner_run_all
      Src: /src/clamav/unit_tests/check_clamav.c:2047,1
    - Dst: srunner_ntests_failed
      Src: /src/clamav/unit_tests/check_clamav.c:2048,1
    - Dst: printf
      Src: /src/clamav/unit_tests/check_clamav.c:2050,1
    - Dst: srunner_free
      Src: /src/clamav/unit_tests/check_clamav.c:2051,1
    - Dst: xmlCleanupParser
      Src: /src/clamav/unit_tests/check_clamav.c:2053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 2056
      start: 2010
    functionDepth: 2
    functionLinenumber: 2010
    functionLinenumberEnd: 2056
    functionName: main
    functionSourceFile: /src/clamav/unit_tests/check_clamav.c
    functionUses: 0
    functionsReached:
    - test_cli_suite
    - test_str_suite
    - test_matchers_suite
    - printf
    - test_jsnorm_suite
    - test_disasm_suite
    - srunner_ntests_failed
    - srunner_run_all
    - get_fpu_endian
    - test_cl_suite
    - srunner_add_suite
    - check_version_compatible
    - xmlCleanupParser
    - fputs
    - srunner_free
    - freopen
    - UNUSEDPARAM
    - test_regex_suite
    - test_htmlnorm_suite
    - test_uniq_suite
    - test_bytecode_suite
    - srunner_create
    - cl_initialize_crypto
    - cl_debug
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_matchers.c:163,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_matchers.c:165,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_matchers.c:166,1
    - Dst: evidence_new
      Src: /src/clamav/unit_tests/check_matchers.c:169,1
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_matchers.c:171,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:172,1
    - Dst: calloc
      Src: /src/clamav/unit_tests/check_matchers.c:177,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:178,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/unit_tests/check_matchers.c:185,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 192
    functionName: setup
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - memset
    - calloc
    - evidence_new
    - ck_assert_msg
    - cl_engine_new
    - MPOOL_CALLOC
    linkageType: ''
    returnType: void
    signature: void setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_matchers.c:196,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_matchers.c:197,1
    - Dst: evidence_free
      Src: /src/clamav/unit_tests/check_matchers.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: teardown
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cl_engine_free
    - free
    - evidence_free
    linkageType: ''
    returnType: void
    signature: void teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:209,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:213,1
    - Dst: cli_ac_init
      Src: /src/clamav/unit_tests/check_matchers.c:215,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:216,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:219,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:220,1
    - Dst: cli_ac_buildtrie
      Src: /src/clamav/unit_tests/check_matchers.c:223,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:224,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/unit_tests/check_matchers.c:226,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:227,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/unit_tests/check_matchers.c:231,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:231,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:232,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:233,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:233,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:233,1
    - Dst: cli_scan_buff
      Src: /src/clamav/unit_tests/check_matchers.c:235,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:235,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:236,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:237,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:237,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:237,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/unit_tests/check_matchers.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 241
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_add_content_match_pattern
    - strlen
    - cli_ac_freedata
    - cli_ac_scanbuff
    - cli_ac_initdata
    - mpool_create
    - ck_assert_msg
    - cli_ac_init
    - cli_scan_buff
    - cli_ac_buildtrie
    - strncmp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_ac_scanbuff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:252,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:256,1
    - Dst: cli_ac_init
      Src: /src/clamav/unit_tests/check_matchers.c:258,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:259,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:262,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:263,1
    - Dst: cli_ac_buildtrie
      Src: /src/clamav/unit_tests/check_matchers.c:266,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:267,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/unit_tests/check_matchers.c:269,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:270,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/unit_tests/check_matchers.c:274,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:274,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:275,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:276,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:276,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:276,1
    - Dst: cli_scan_buff
      Src: /src/clamav/unit_tests/check_matchers.c:278,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:278,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:279,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:284,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_matchers.c:284,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:285,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:285,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:285,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_matchers.c:286,1
    - Dst: evidence_free
      Src: /src/clamav/unit_tests/check_matchers.c:287,1
    - Dst: evidence_new
      Src: /src/clamav/unit_tests/check_matchers.c:288,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/unit_tests/check_matchers.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 293
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_add_content_match_pattern
    - evidence_free
    - strlen
    - cli_ac_freedata
    - cli_ac_scanbuff
    - cli_ac_initdata
    - evidence_num_alerts
    - mpool_create
    - evidence_new
    - ck_assert_msg
    - cli_ac_init
    - cli_scan_buff
    - cli_ac_buildtrie
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_ac_scanbuff_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:304,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:308,1
    - Dst: cli_ac_init
      Src: /src/clamav/unit_tests/check_matchers.c:310,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:311,1
    - Dst: cli_sigopts_handler
      Src: /src/clamav/unit_tests/check_matchers.c:314,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:315,1
    - Dst: cli_ac_buildtrie
      Src: /src/clamav/unit_tests/check_matchers.c:318,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:319,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/unit_tests/check_matchers.c:321,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:322,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/unit_tests/check_matchers.c:326,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:327,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:329,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:329,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:329,1
    - Dst: cli_scan_buff
      Src: /src/clamav/unit_tests/check_matchers.c:331,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:332,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/unit_tests/check_matchers.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 336
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_sigopts_handler
    - strlen
    - cli_ac_freedata
    - cli_ac_scanbuff
    - cli_ac_initdata
    - mpool_create
    - ck_assert_msg
    - cli_ac_init
    - cli_scan_buff
    - cli_ac_buildtrie
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_ac_scanbuff_ex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:347,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:351,1
    - Dst: cli_ac_init
      Src: /src/clamav/unit_tests/check_matchers.c:353,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:354,1
    - Dst: cli_sigopts_handler
      Src: /src/clamav/unit_tests/check_matchers.c:357,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:358,1
    - Dst: cli_ac_buildtrie
      Src: /src/clamav/unit_tests/check_matchers.c:361,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:362,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/unit_tests/check_matchers.c:364,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:365,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/unit_tests/check_matchers.c:371,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:372,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:374,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:374,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:374,1
    - Dst: cli_scan_buff
      Src: /src/clamav/unit_tests/check_matchers.c:376,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:377,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_matchers.c:382,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:386,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_matchers.c:387,1
    - Dst: evidence_free
      Src: /src/clamav/unit_tests/check_matchers.c:388,1
    - Dst: evidence_new
      Src: /src/clamav/unit_tests/check_matchers.c:389,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/unit_tests/check_matchers.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 394
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_sigopts_handler
    - evidence_free
    - strlen
    - cli_ac_freedata
    - cli_ac_scanbuff
    - cli_ac_initdata
    - evidence_num_alerts
    - mpool_create
    - evidence_new
    - ck_assert_msg
    - cli_ac_init
    - cli_scan_buff
    - cli_ac_buildtrie
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_ac_scanbuff_allscan_ex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:404,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:407,1
    - Dst: cli_bm_init
      Src: /src/clamav/unit_tests/check_matchers.c:409,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:410,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:412,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:413,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:414,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:415,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:416,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:417,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/unit_tests/check_matchers.c:420,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:421,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:422,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 423
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_add_content_match_pattern
    - cli_bm_scanbuff
    - mpool_create
    - ck_assert_msg
    - cli_bm_init
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_bm_scanbuff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:433,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:436,1
    - Dst: cli_bm_init
      Src: /src/clamav/unit_tests/check_matchers.c:438,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:439,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:441,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:442,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:443,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:444,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/unit_tests/check_matchers.c:445,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:446,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/unit_tests/check_matchers.c:449,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:450,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:451,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_matchers.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 452
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_add_content_match_pattern
    - cli_bm_scanbuff
    - mpool_create
    - ck_assert_msg
    - cli_bm_init
    - strncmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_bm_scanbuff_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:464,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:467,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:470,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:470,1
    - Dst: calloc
      Src: /src/clamav/unit_tests/check_matchers.c:472,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:473,1
    - Dst: strncat
      Src: /src/clamav/unit_tests/check_matchers.c:475,1
    - Dst: strncat
      Src: /src/clamav/unit_tests/check_matchers.c:476,1
    - Dst: readdb_parse_ldb_subsignature
      Src: /src/clamav/unit_tests/check_matchers.c:478,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:479,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_matchers.c:480,1
    - Dst: cli_pcre_build
      Src: /src/clamav/unit_tests/check_matchers.c:483,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:484,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/unit_tests/check_matchers.c:488,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:489,1
    - Dst: cli_pcre_scanbuf
      Src: /src/clamav/unit_tests/check_matchers.c:493,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:493,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:494,1
    - Dst: cli_scan_buff
      Src: /src/clamav/unit_tests/check_matchers.c:498,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:498,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:499,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/unit_tests/check_matchers.c:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 503
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_pcre_scanbuf
    - calloc
    - strlen
    - cli_ac_freedata
    - readdb_parse_ldb_subsignature
    - cli_ac_initdata
    - strncat
    - mpool_create
    - ck_assert_msg
    - cli_scan_buff
    - free
    - cli_pcre_build
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_pcre_scanbuff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:515,1
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_matchers.c:518,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:522,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:522,1
    - Dst: calloc
      Src: /src/clamav/unit_tests/check_matchers.c:524,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:525,1
    - Dst: strncat
      Src: /src/clamav/unit_tests/check_matchers.c:527,1
    - Dst: strncat
      Src: /src/clamav/unit_tests/check_matchers.c:528,1
    - Dst: readdb_parse_ldb_subsignature
      Src: /src/clamav/unit_tests/check_matchers.c:530,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:531,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_matchers.c:532,1
    - Dst: cli_pcre_build
      Src: /src/clamav/unit_tests/check_matchers.c:535,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:536,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/unit_tests/check_matchers.c:540,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:541,1
    - Dst: cli_pcre_scanbuf
      Src: /src/clamav/unit_tests/check_matchers.c:547,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:547,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:548,1
    - Dst: cli_scan_buff
      Src: /src/clamav/unit_tests/check_matchers.c:552,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_matchers.c:552,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_matchers.c:557,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_matchers.c:561,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_matchers.c:563,1
    - Dst: evidence_free
      Src: /src/clamav/unit_tests/check_matchers.c:564,1
    - Dst: evidence_new
      Src: /src/clamav/unit_tests/check_matchers.c:565,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/unit_tests/check_matchers.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 570
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 0
    functionsReached:
    - cli_pcre_scanbuf
    - calloc
    - evidence_free
    - strlen
    - cli_ac_freedata
    - readdb_parse_ldb_subsignature
    - cli_ac_initdata
    - strncat
    - mpool_create
    - evidence_num_alerts
    - ck_assert_msg
    - evidence_new
    - cli_scan_buff
    - free
    - cli_pcre_build
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_pcre_scanbuff_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_matchers.c:575,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_matchers.c:577,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_matchers.c:578,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_matchers.c:579,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:580,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:581,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:582,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:583,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:584,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:585,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:586,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_matchers.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 589
    functionName: test_matchers_suite
    functionSourceFile: /src/clamav/unit_tests/check_matchers.c
    functionUses: 1
    functionsReached:
    - tcase_add_test
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_create
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_matchers_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:71,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:71,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamd.c:73,1
    - Dst: htons
      Src: /src/clamav/unit_tests/check_clamd.c:75,1
    - Dst: inet_addr
      Src: /src/clamav/unit_tests/check_clamd.c:76,1
    - Dst: connect
      Src: /src/clamav/unit_tests/check_clamd.c:78,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:79,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: conn_tcp
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - connect
    - memset
    - htons
    - strerror
    - inet_addr
    - ck_assert_msg
    linkageType: ''
    returnType: int
    signature: int conn_tcp(int port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamd.c:90,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_clamd.c:92,1
    - Dst: socket
      Src: /src/clamav/unit_tests/check_clamd.c:94,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:97,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:97,1
    - Dst: connect
      Src: /src/clamav/unit_tests/check_clamd.c:99,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:101,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:105,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:105,1
    - Dst: signal
      Src: /src/clamav/unit_tests/check_clamd.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - may
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: conn_setup_mayfail
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - connect
    - close
    - memset
    - strerror
    - strncpy
    - ck_assert_msg
    - signal
    - socket
    linkageType: ''
    returnType: void
    signature: void conn_setup_mayfail(int may)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_tcp
      Src: /src/clamav/unit_tests/check_clamd.c:113,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:116,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - may
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: conn_setup_mayfail
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - conn_tcp
    - strerror
    linkageType: ''
    returnType: void
    signature: void conn_setup_mayfail(int may)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_setup_mayfail
      Src: /src/clamav/unit_tests/check_clamd.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: conn_setup
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - conn_setup_mayfail
    linkageType: ''
    returnType: void
    signature: void conn_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:129,1
    - Dst: closesocket
      Src: /src/clamav/unit_tests/check_clamd.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: conn_teardown
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - closesocket
    - close
    linkageType: ''
    returnType: void
    signature: void conn_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:163,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:164,1
    - Dst: geteuid
      Src: /src/clamav/unit_tests/check_clamd.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: commands_setup
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - geteuid
    - ck_assert_msg
    - close
    linkageType: ''
    returnType: void
    signature: void commands_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: commands_teardown
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void commands_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/clamav/unit_tests/check_clamd.c:237,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:238,1
    - Dst: recv
      Src: /src/clamav/unit_tests/check_clamd.c:240,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:241,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:241,1
    - Dst: memchr
      Src: /src/clamav/unit_tests/check_clamd.c:244,1
    - Dst: MIN
      Src: /src/clamav/unit_tests/check_clamd.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - sd
    - len
    - partial
    argTypes:
    - int
    - size_t*
    - int
    constantsTouched: []
    func_position:
      end: 252
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 252
    functionName: recvpartial
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - strerror
    - realloc
    - memchr
    - recv
    - ck_assert_msg
    - MIN
    linkageType: ''
    returnType: void
    signature: void *recvpartial(int sd, size_t *len, int partial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recvpartial
      Src: /src/clamav/unit_tests/check_clamd.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sd
    - len
    argTypes:
    - int
    - size_t*
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: recvfull
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - recvpartial
    linkageType: ''
    returnType: void
    signature: void *recvfull(int sd, size_t *len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:265,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:266,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:266,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:269,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:269,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:270,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:270,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:270,1
    - Dst: shutdown
      Src: /src/clamav/unit_tests/check_clamd.c:273,1
    - Dst: shutdown
      Src: /src/clamav/unit_tests/check_clamd.c:275,1
    - Dst: recvfull
      Src: /src/clamav/unit_tests/check_clamd.c:277,1
    - Dst: CLI_STRNSTR
      Src: /src/clamav/unit_tests/check_clamd.c:283,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:284,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - cmd
    - len
    - extra
    - expect
    - expect_len
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 286
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 286
    functionName: test_command
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - strerror
    - send
    - strlen
    - shutdown
    - ck_assert_msg
    - recvfull
    - CLI_STRNSTR
    - free
    linkageType: ''
    returnType: void
    signature: void test_command(const char *cmd, size_t len, const char *extra, const
      char *expect, size_t expect_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:296,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:297,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:298,1
    - Dst: test_command
      Src: /src/clamav/unit_tests/check_clamd.c:299,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:299,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:299,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:300,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:303,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:304,1
    - Dst: test_command
      Src: /src/clamav/unit_tests/check_clamd.c:305,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:305,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:305,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 307
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - conn_teardown
    - test_command
    - conn_setup
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_basic_commands)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:320,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:323,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:327,1
    - Dst: test_command
      Src: /src/clamav/unit_tests/check_clamd.c:328,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:328,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:328,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:329,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:333,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:334,1
    - Dst: test_command
      Src: /src/clamav/unit_tests/check_clamd.c:335,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:335,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:335,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:336,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:342,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:343,1
    - Dst: test_command
      Src: /src/clamav/unit_tests/check_clamd.c:344,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:344,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:344,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 347
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - conn_teardown
    - test_command
    - conn_setup
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_compat_commands)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:360,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:361,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:362,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:362,1
    - Dst: recvfull
      Src: /src/clamav/unit_tests/check_clamd.c:364,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:366,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:366,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:367,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:369,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:370,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_clamd.c:371,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:373,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:374,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 376
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - strerror
    - send
    - strlen
    - recvfull
    - ck_assert_msg
    - strncmp
    - conn_teardown
    - free
    - conn_setup
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:384,1
    - Dst: CLAMSTAT
      Src: /src/clamav/unit_tests/check_clamd.c:384,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:384,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_clamd.c:386,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:387,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:387,1
    - Dst: htonl
      Src: /src/clamav/unit_tests/check_clamd.c:389,1
    - Dst: memcpy
      Src: /src/clamav/unit_tests/check_clamd.c:390,1
    - Dst: read
      Src: /src/clamav/unit_tests/check_clamd.c:392,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:393,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:393,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - 'off'
    - buflen
    argTypes:
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 401
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 401
    functionName: prepare_instream
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - close
    - htonl
    - strerror
    - open
    - CLAMSTAT
    - ck_assert_msg
    - read
    - memcpy
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST prepare_instream(char *buf, size_t off, size_t buflen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_instream
      Src: /src/clamav/unit_tests/check_clamd.c:411,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:413,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:414,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:414,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:414,1
    - Dst: recvfull
      Src: /src/clamav/unit_tests/check_clamd.c:416,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:418,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:419,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamd.c:422,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:423,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:424,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 427
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - strerror
    - send
    - strlen
    - memcmp
    - ck_assert_msg
    - recvfull
    - conn_teardown
    - prepare_instream
    - free
    - conn_setup
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_instream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:447,1
    - Dst: memcpy
      Src: /src/clamav/unit_tests/check_clamd.c:448,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamd.c:454,1
    - Dst: CMSG_LEN
      Src: /src/clamav/unit_tests/check_clamd.c:458,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/clamav/unit_tests/check_clamd.c:460,1
    - Dst: CMSG_LEN
      Src: /src/clamav/unit_tests/check_clamd.c:461,1
    - Dst: CMSG_DATA
      Src: /src/clamav/unit_tests/check_clamd.c:464,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:467,1
    - Dst: sendmsg
      Src: /src/clamav/unit_tests/check_clamd.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 5
    argNames:
    - sockd
    - mesg
    - msg_len
    - fd
    - singlemsg
    argTypes:
    - int
    - char*
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 473
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 473
    functionName: sendmsg_fd
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - memset
    - sendmsg
    - CMSG_DATA
    - send
    - CMSG_LEN
    - ck_assert_msg
    - CMSG_FIRSTHDR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sendmsg_fd(int sockd, const char *mesg, size_t msg_len, int fd,
      int singlemsg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:481,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:482,1
    - Dst: sendmsg_fd
      Src: /src/clamav/unit_tests/check_clamd.c:482,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:483,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:486,1
    - Dst: recvfull
      Src: /src/clamav/unit_tests/check_clamd.c:488,1
    - Dst: strchr
      Src: /src/clamav/unit_tests/check_clamd.c:489,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:491,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:494,1
    - Dst: sscanf
      Src: /src/clamav/unit_tests/check_clamd.c:494,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:497,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_clamd.c:500,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:501,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:502,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 7
    argNames:
    - cmd
    - len
    - fd
    - expect
    - expect_len
    - closefd
    - singlemsg
    argTypes:
    - char*
    - size_t
    - int
    - char*
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 504
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 504
    functionName: tst_fildes
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - sscanf
    - close
    - strerror
    - strchr
    - ck_assert_msg
    - recvfull
    - conn_teardown
    - free
    - memcmp
    - sendmsg_fd
    - conn_setup
    linkageType: ''
    returnType: void
    signature: "void tst_fildes(const char *cmd, size_t len, int fd,\n                       const
      char *expect, size_t expect_len, int closefd, int singlemsg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:552,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:553,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_clamd.c:555,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:556,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:556,1
    - Dst: tst_fildes
      Src: /src/clamav/unit_tests/check_clamd.c:558,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 566
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - strerror
    - open
    - tst_fildes
    - ck_assert_msg
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_fildes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:577,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_clamd.c:578,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:579,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:579,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:581,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:581,1
    - Dst: sendmsg_fd
      Src: /src/clamav/unit_tests/check_clamd.c:583,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:588,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:589,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:592,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:594,1
    - Dst: test_command
      Src: /src/clamav/unit_tests/check_clamd.c:595,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 597
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 597
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - close
    - strerror
    - send
    - open
    - ck_assert_msg
    - conn_teardown
    - test_command
    - sendmsg_fd
    - conn_setup
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_fildes_many)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:606,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_clamd.c:607,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:611,1
    - Dst: sendmsg_fd
      Src: /src/clamav/unit_tests/check_clamd.c:611,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:612,1
    - Dst: recvfull
      Src: /src/clamav/unit_tests/check_clamd.c:614,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:616,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamd.c:616,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:619,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:620,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 622
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 622
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - close
    - strcmp
    - strerror
    - open
    - ck_assert_msg
    - recvfull
    - conn_teardown
    - free
    - sendmsg_fd
    - conn_setup
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_fildes_unwanted)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:635,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:637,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:637,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:638,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_clamd.c:640,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:641,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:641,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:642,1
    - Dst: recvpartial
      Src: /src/clamav/unit_tests/check_clamd.c:643,1
    - Dst: strchr
      Src: /src/clamav/unit_tests/check_clamd.c:644,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:645,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:647,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:650,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamd.c:650,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:651,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_clamd.c:651,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:653,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 657
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - recvpartial
    - strcmp
    - strerror
    - send
    - strchr
    - ck_assert_msg
    - conn_teardown
    - free
    - conn_setup
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_idsession_stress)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:676,1
    - Dst: getrlimit
      Src: /src/clamav/unit_tests/check_clamd.c:676,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:677,1
    - Dst: MIN
      Src: /src/clamav/unit_tests/check_clamd.c:679,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_clamd.c:681,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamd.c:682,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:684,1
    - Dst: conn_setup_mayfail
      Src: /src/clamav/unit_tests/check_clamd.c:688,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:693,1
    - Dst: fork
      Src: /src/clamav/unit_tests/check_clamd.c:705,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:706,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:706,1
    - Dst: FD_ZERO
      Src: /src/clamav/unit_tests/check_clamd.c:712,1
    - Dst: FD_SET
      Src: /src/clamav/unit_tests/check_clamd.c:714,1
    - Dst: select
      Src: /src/clamav/unit_tests/check_clamd.c:717,1
    - Dst: FD_ISSET
      Src: /src/clamav/unit_tests/check_clamd.c:721,1
    - Dst: recv
      Src: /src/clamav/unit_tests/check_clamd.c:722,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:723,1
    - Dst: FD_CLR
      Src: /src/clamav/unit_tests/check_clamd.c:724,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:729,1
    - Dst: exit
      Src: /src/clamav/unit_tests/check_clamd.c:730,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_clamd.c:734,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:736,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:739,1
    - Dst: test_command
      Src: /src/clamav/unit_tests/check_clamd.c:740,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:741,1
    - Dst: kill
      Src: /src/clamav/unit_tests/check_clamd.c:744,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 746
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - fork
    - recv
    - kill
    - conn_setup
    - strerror
    - select
    - conn_teardown
    - test_command
    - MIN
    - FD_ISSET
    - close
    - memset
    - FD_SET
    - FD_ZERO
    - ck_assert_msg
    - malloc
    - free
    - FD_CLR
    - exit
    - conn_setup_mayfail
    - getrlimit
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_connections)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:766,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:766,1
    - Dst: strcpy
      Src: /src/clamav/unit_tests/check_clamd.c:768,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:769,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:772,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:772,1
    - Dst: strcpy
      Src: /src/clamav/unit_tests/check_clamd.c:773,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:774,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:782,1
    - Dst: memcpy
      Src: /src/clamav/unit_tests/check_clamd.c:783,1
    - Dst: prepare_instream
      Src: /src/clamav/unit_tests/check_clamd.c:785,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:787,1
    - Dst: memcpy
      Src: /src/clamav/unit_tests/check_clamd.c:788,1
    - Dst: htonl
      Src: /src/clamav/unit_tests/check_clamd.c:790,1
    - Dst: memcpy
      Src: /src/clamav/unit_tests/check_clamd.c:791,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_clamd.c:793,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:802,1
    - Dst: memcpy
      Src: /src/clamav/unit_tests/check_clamd.c:803,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:809,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:809,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:809,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:811,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:811,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:811,1
    - Dst: recvfull
      Src: /src/clamav/unit_tests/check_clamd.c:813,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:822,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:824,1
    - Dst: sscanf
      Src: /src/clamav/unit_tests/check_clamd.c:824,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:825,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:826,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:828,1
    - Dst: strstr
      Src: /src/clamav/unit_tests/check_clamd.c:828,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_clamd.c:832,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_clamd.c:835,1
    - Dst: conn_teardown
      Src: /src/clamav/unit_tests/check_clamd.c:836,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 2
    argNames:
    - split
    - instream
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 837
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 837
    functionName: test_idsession_commands
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - sscanf
    - memset
    - htonl
    - strerror
    - strlen
    - send
    - strstr
    - ck_assert_msg
    - recvfull
    - conn_teardown
    - memcpy
    - strcpy
    - prepare_instream
    - free
    linkageType: ''
    returnType: void
    signature: void test_idsession_commands(int split, int instream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:842,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:843,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:843,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:844,1
    - Dst: test_idsession_commands
      Src: /src/clamav/unit_tests/check_clamd.c:845,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:846,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:847,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:847,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:848,1
    - Dst: test_idsession_commands
      Src: /src/clamav/unit_tests/check_clamd.c:849,1
    - Dst: conn_setup
      Src: /src/clamav/unit_tests/check_clamd.c:850,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_clamd.c:851,1
    - Dst: send
      Src: /src/clamav/unit_tests/check_clamd.c:851,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_clamd.c:852,1
    - Dst: test_idsession_commands
      Src: /src/clamav/unit_tests/check_clamd.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 854
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - test_idsession_commands
    - strerror
    - send
    - ck_assert_msg
    - conn_setup
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_idsession)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_clamd.c:859,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_clamd.c:861,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_clamd.c:862,1
    - Dst: tcase_add_unchecked_fixture
      Src: /src/clamav/unit_tests/check_clamd.c:863,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamd.c:865,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamd.c:866,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_clamd.c:868,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamd.c:871,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamd.c:872,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamd.c:873,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_clamd.c:876,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_clamd.c:877,1
    - Dst: tcase_set_timeout
      Src: /src/clamav/unit_tests/check_clamd.c:878,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamd.c:879,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamd.c:880,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamd.c:881,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_clamd.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 891
    functionName: test_clamd_suite
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - tcase_add_test
    - tcase_add_unchecked_fixture
    - suite_add_tcase
    - tcase_add_loop_test
    - tcase_create
    - tcase_set_timeout
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_clamd_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_clamd.c:897,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_clamd.c:898,1
    - Dst: WSAStartup
      Src: /src/clamav/unit_tests/check_clamd.c:902,1
    - Dst: MAKEWORD
      Src: /src/clamav/unit_tests/check_clamd.c:902,1
    - Dst: fprintf
      Src: /src/clamav/unit_tests/check_clamd.c:903,1
    - Dst: WSAGetLastError
      Src: /src/clamav/unit_tests/check_clamd.c:903,1
    - Dst: test_clamd_suite
      Src: /src/clamav/unit_tests/check_clamd.c:908,1
    - Dst: srunner_create
      Src: /src/clamav/unit_tests/check_clamd.c:909,1
    - Dst: srunner_run_all
      Src: /src/clamav/unit_tests/check_clamd.c:911,1
    - Dst: srunner_ntests_failed
      Src: /src/clamav/unit_tests/check_clamd.c:912,1
    - Dst: srunner_free
      Src: /src/clamav/unit_tests/check_clamd.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 915
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 915
    functionName: main
    functionSourceFile: /src/clamav/unit_tests/check_clamd.c
    functionUses: 0
    functionsReached:
    - srunner_free
    - UNUSEDPARAM
    - test_clamd_suite
    - fprintf
    - srunner_ntests_failed
    - MAKEWORD
    - srunner_create
    - WSAStartup
    - srunner_run_all
    - WSAGetLastError
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_regex.c:54,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_regex.c:55,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_regex.c:56,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_regex.c:57,1
    - Dst: ck_abort_msg
      Src: /src/clamav/unit_tests/check_regex.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - cbdata
    - suffix
    - len
    - regex
    argTypes:
    - void*
    - char*
    - size_t
    - struct regex_list*
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: cb_fail
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - ck_abort_msg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cb_fail(void *cbdata, const char *suffix, size_t len, const
      struct regex_list *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_regex.c:67,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_regex.c:68,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:71,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_regex.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cbdata
    - suffix
    - len
    - regex
    argTypes:
    - void*
    - char*
    - size_t
    - struct regex_list*
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: cb_expect_single
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - ck_assert_msg
    - strcmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cb_expect_single(void *cbdata, const char *suffix, size_t
      len, const struct regex_list *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: errmsg_expected
      Src: /src/clamav/unit_tests/check_regex.c:83,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:84,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:85,1
    - Dst: cli_regex2suffix
      Src: /src/clamav/unit_tests/check_regex.c:86,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_regex.c:87,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:88,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - errmsg_expected
    - ck_assert_msg
    - malloc
    - cli_regex2suffix
    - free
    linkageType: ''
    returnType: void
    signature: void START_TEST(empty)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:99,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:100,1
    - Dst: cli_regex2suffix
      Src: /src/clamav/unit_tests/check_regex.c:101,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:102,1
    - Dst: cli_regfree
      Src: /src/clamav/unit_tests/check_regex.c:103,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_regex.c:104,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 106
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_regfree
    - malloc
    - cli_regex2suffix
    - free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(one)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_regex.c:122,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:124,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:126,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:127,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:128,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_regex.c:128,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:130,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_regex.c:130,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_regex.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - cbdata
    - suffix
    - len
    - r
    argTypes:
    - void*
    - char*
    - size_t
    - struct regex_list*
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: cb_expect_multi
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - ck_assert_msg
    - strlen
    - strcmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cb_expect_multi(void *cbdata, const char *suffix, size_t
      len, const struct regex_list *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:143,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:144,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:145,1
    - Dst: cli_regex2suffix
      Src: /src/clamav/unit_tests/check_regex.c:146,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:147,1
    - Dst: cli_regfree
      Src: /src/clamav/unit_tests/check_regex.c:148,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_regex.c:149,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_regfree
    - malloc
    - cli_regex2suffix
    - free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_suffix)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: setup
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: teardown
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpool_create
      Src: /src/clamav/unit_tests/check_regex.c:172,1
    - Dst: init_regex_list
      Src: /src/clamav/unit_tests/check_regex.c:174,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: rsetup
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - mpool_create
    - ck_assert_msg
    - init_regex_list
    linkageType: ''
    returnType: void
    signature: void rsetup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regex_list_done
      Src: /src/clamav/unit_tests/check_regex.c:180,1
    - Dst: mpool_destroy
      Src: /src/clamav/unit_tests/check_regex.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: rteardown
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - regex_list_done
    - mpool_destroy
    linkageType: ''
    returnType: void
    signature: void rteardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:268,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:274,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:276,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:277,1
    - Dst: regex_list_add_pattern
      Src: /src/clamav/unit_tests/check_regex.c:279,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:281,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_regex.c:282,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:285,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_regex.c:286,1
    - Dst: cli_build_regex_list
      Src: /src/clamav/unit_tests/check_regex.c:290,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:291,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:293,1
    - Dst: is_regex_ok
      Src: /src/clamav/unit_tests/check_regex.c:293,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:295,1
    - Dst: regex_list_match
      Src: /src/clamav/unit_tests/check_regex.c:296,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:297,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:299,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_regex.c:299,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_regex.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 301
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_build_regex_list
    - ck_assert_msg
    - regex_list_match
    - regex_list_add_pattern
    - is_regex_ok
    - cli_safer_strdup
    - free
    linkageType: ''
    returnType: void
    signature: void START_TEST(regex_list_match_test)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_regex.c:313,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:314,1
    - Dst: phishing_init
      Src: /src/clamav/unit_tests/check_regex.c:316,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:317,1
    - Dst: init_domain_list
      Src: /src/clamav/unit_tests/check_regex.c:319,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:320,1
    - Dst: fdopen
      Src: /src/clamav/unit_tests/check_regex.c:322,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_regex.c:322,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:323,1
    - Dst: load_regex_matcher
      Src: /src/clamav/unit_tests/check_regex.c:325,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:326,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_regex.c:327,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:329,1
    - Dst: fdopen
      Src: /src/clamav/unit_tests/check_regex.c:332,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_regex.c:332,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:333,1
    - Dst: load_regex_matcher
      Src: /src/clamav/unit_tests/check_regex.c:336,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:337,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_regex.c:338,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:340,1
    - Dst: init_allow_list
      Src: /src/clamav/unit_tests/check_regex.c:344,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:345,1
    - Dst: fdopen
      Src: /src/clamav/unit_tests/check_regex.c:347,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_regex.c:347,1
    - Dst: load_regex_matcher
      Src: /src/clamav/unit_tests/check_regex.c:349,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:350,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_regex.c:351,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:353,1
    - Dst: cli_build_regex_list
      Src: /src/clamav/unit_tests/check_regex.c:355,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:356,1
    - Dst: cli_build_regex_list
      Src: /src/clamav/unit_tests/check_regex.c:358,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:359,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:361,1
    - Dst: is_regex_ok
      Src: /src/clamav/unit_tests/check_regex.c:361,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:362,1
    - Dst: is_regex_ok
      Src: /src/clamav/unit_tests/check_regex.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - load2
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 363
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 363
    functionName: psetup_impl
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - open_testfile
    - cli_build_regex_list
    - load_regex_matcher
    - phishing_init
    - ck_assert_msg
    - fdopen
    - cl_engine_new
    - init_domain_list
    - init_allow_list
    - fclose
    - is_regex_ok
    linkageType: ''
    returnType: void
    signature: void psetup_impl(int load2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: psetup_impl
      Src: /src/clamav/unit_tests/check_regex.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: psetup
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - psetup_impl
    linkageType: ''
    returnType: void
    signature: void psetup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: psetup_impl
      Src: /src/clamav/unit_tests/check_regex.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: psetup2
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - psetup_impl
    linkageType: ''
    returnType: void
    signature: void psetup2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_regex.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: pteardown
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - cl_engine_free
    linkageType: ''
    returnType: void
    signature: void pteardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_regex.c:392,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_regex.c:393,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:396,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:397,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:400,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:401,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:403,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:404,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:405,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:406,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:407,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:408,1
    - Dst: evidence_new
      Src: /src/clamav/unit_tests/check_regex.c:411,1
    - Dst: phishingScan
      Src: /src/clamav/unit_tests/check_regex.c:413,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/unit_tests/check_regex.c:415,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:416,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:419,1
    - Dst: evidence_num_indicators_type
      Src: /src/clamav/unit_tests/check_regex.c:419,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:424,1
    - Dst: evidence_num_indicators_type
      Src: /src/clamav/unit_tests/check_regex.c:424,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:429,1
    - Dst: evidence_num_indicators_type
      Src: /src/clamav/unit_tests/check_regex.c:429,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:435,1
    - Dst: evidence_num_indicators_type
      Src: /src/clamav/unit_tests/check_regex.c:435,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:441,1
    - Dst: evidence_num_indicators_type
      Src: /src/clamav/unit_tests/check_regex.c:441,1
    - Dst: cli_get_last_virus_str
      Src: /src/clamav/unit_tests/check_regex.c:445,1
    - Dst: strstr
      Src: /src/clamav/unit_tests/check_regex.c:449,1
    - Dst: strstr
      Src: /src/clamav/unit_tests/check_regex.c:452,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:455,1
    - Dst: strstr
      Src: /src/clamav/unit_tests/check_regex.c:456,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:457,1
    - Dst: evidence_free
      Src: /src/clamav/unit_tests/check_regex.c:466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 1
    argNames:
    - rtest
    argTypes:
    - struct rtest*
    constantsTouched: []
    func_position:
      end: 467
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 467
    functionName: do_phishing_test
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - memset
    - evidence_free
    - strstr
    - evidence_new
    - ck_assert_msg
    - phishingScan
    - html_tag_arg_free
    - evidence_num_indicators_type
    - cli_get_last_virus_str
    - malloc
    - cli_safer_strdup
    linkageType: ''
    returnType: void
    signature: void do_phishing_test(const struct rtest *rtest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_regex.c:479,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_regex.c:480,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:483,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:484,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:487,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:488,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:490,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:491,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_regex.c:492,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:493,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:494,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/unit_tests/check_regex.c:495,1
    - Dst: evidence_new
      Src: /src/clamav/unit_tests/check_regex.c:498,1
    - Dst: phishingScan
      Src: /src/clamav/unit_tests/check_regex.c:500,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:501,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_regex.c:502,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_regex.c:508,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:513,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_regex.c:514,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_regex.c:515,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:518,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_regex.c:519,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_regex.c:520,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:526,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_regex.c:526,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:531,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_regex.c:531,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:536,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_regex.c:536,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:542,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_regex.c:542,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:548,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/unit_tests/check_regex.c:548,1
    - Dst: cli_get_last_virus_str
      Src: /src/clamav/unit_tests/check_regex.c:552,1
    - Dst: strstr
      Src: /src/clamav/unit_tests/check_regex.c:556,1
    - Dst: strstr
      Src: /src/clamav/unit_tests/check_regex.c:559,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:562,1
    - Dst: strstr
      Src: /src/clamav/unit_tests/check_regex.c:563,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:564,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/unit_tests/check_regex.c:573,1
    - Dst: evidence_free
      Src: /src/clamav/unit_tests/check_regex.c:575,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 1
    argNames:
    - rtest
    argTypes:
    - struct rtest*
    constantsTouched: []
    func_position:
      end: 576
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 576
    functionName: do_phishing_test_allscan
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - memset
    - evidence_free
    - strstr
    - evidence_new
    - evidence_num_alerts
    - ck_assert_msg
    - phishingScan
    - html_tag_arg_free
    - cli_get_last_virus_str
    - malloc
    - cli_safer_strdup
    linkageType: ''
    returnType: void
    signature: void do_phishing_test_allscan(const struct rtest *rtest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_phishing_test
      Src: /src/clamav/unit_tests/check_regex.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - do_phishing_test
    linkageType: ''
    returnType: void
    signature: void START_TEST(phishingScan_test)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: do_phishing_test_allscan
      Src: /src/clamav/unit_tests/check_regex.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - do_phishing_test_allscan
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(phishingScan_test_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 594
    functionName: struct
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST struct
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_url_canon
      Src: /src/clamav/unit_tests/check_regex.c:617,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_regex.c:617,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:618,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:619,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_regex.c:619,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:620,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_regex.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 621
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - strlen
    - ck_assert_msg
    - strcmp
    - cli_url_canon
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_url_canon)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: regex_test
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST regex_test
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:640,1
    - Dst: cli_regcomp
      Src: /src/clamav/unit_tests/check_regex.c:640,1
    - Dst: cli_regexec
      Src: /src/clamav/unit_tests/check_regex.c:641,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:642,1
    - Dst: cli_regfree
      Src: /src/clamav/unit_tests/check_regex.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_regcomp
    - cli_regfree
    - cli_regexec
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_regexes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdopen
      Src: /src/clamav/unit_tests/check_regex.c:650,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_regex.c:650,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:651,1
    - Dst: fgets
      Src: /src/clamav/unit_tests/check_regex.c:652,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:655,1
    - Dst: do_phishing_test
      Src: /src/clamav/unit_tests/check_regex.c:659,1
    - Dst: do_phishing_test
      Src: /src/clamav/unit_tests/check_regex.c:662,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_regex.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 665
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - open_testfile
    - fdopen
    - ck_assert_msg
    - fclose
    - fgets
    - do_phishing_test
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(phishing_fake_test)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdopen
      Src: /src/clamav/unit_tests/check_regex.c:671,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_regex.c:671,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:672,1
    - Dst: fgets
      Src: /src/clamav/unit_tests/check_regex.c:673,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_regex.c:676,1
    - Dst: do_phishing_test_allscan
      Src: /src/clamav/unit_tests/check_regex.c:680,1
    - Dst: do_phishing_test_allscan
      Src: /src/clamav/unit_tests/check_regex.c:683,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_regex.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 686
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 0
    functionsReached:
    - do_phishing_test_allscan
    - open_testfile
    - fdopen
    - ck_assert_msg
    - fclose
    - fgets
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(phishing_fake_test_allscan)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_regex.c:691,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_regex.c:694,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_regex.c:695,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_regex.c:696,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_regex.c:697,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_regex.c:698,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:700,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_regex.c:702,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_regex.c:703,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_regex.c:704,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:706,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_regex.c:708,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_regex.c:709,1
    - Dst: tcase_add_unchecked_fixture
      Src: /src/clamav/unit_tests/check_regex.c:710,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:712,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:713,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_regex.c:715,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_regex.c:716,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_regex.c:718,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_regex.c:719,1
    - Dst: tcase_add_unchecked_fixture
      Src: /src/clamav/unit_tests/check_regex.c:720,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:722,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:723,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_regex.c:725,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_regex.c:726,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:728,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_regex.c:730,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_regex.c:731,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_regex.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 736
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 736
    functionName: test_regex_suite
    functionSourceFile: /src/clamav/unit_tests/check_regex.c
    functionUses: 1
    functionsReached:
    - tcase_add_test
    - tcase_add_unchecked_fixture
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_loop_test
    - tcase_create
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_regex_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_fpu_endian.c:36,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/unit_tests/check_fpu_endian.c:37,1
    - Dst: get_fpu_endian
      Src: /src/clamav/unit_tests/check_fpu_endian.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: main
    functionSourceFile: /src/clamav/unit_tests/check_fpu_endian.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - get_fpu_endian
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:48,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_str.c:48,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:49,1
    - Dst: cli_unescape
      Src: /src/clamav/unit_tests/check_str.c:51,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:52,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:52,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:53,1
    - Dst: cli_unescape
      Src: /src/clamav/unit_tests/check_str.c:55,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:56,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:56,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    - cli_unescape
    - ck_assert_msg
    - free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_unescape_simple)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:64,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:64,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:65,1
    - Dst: cli_unescape
      Src: /src/clamav/unit_tests/check_str.c:67,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:68,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:68,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:69,1
    - Dst: cli_unescape
      Src: /src/clamav/unit_tests/check_str.c:71,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:72,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:72,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:73,1
    - Dst: cli_unescape
      Src: /src/clamav/unit_tests/check_str.c:75,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:76,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:76,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_unescape
    - free
    - strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_unescape_hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:85,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:85,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:86,1
    - Dst: cli_unescape
      Src: /src/clamav/unit_tests/check_str.c:88,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:89,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:89,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:91,1
    - Dst: cli_unescape
      Src: /src/clamav/unit_tests/check_str.c:93,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:94,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:94,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_unescape
    - free
    - strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_unescape_unicode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_str.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: buf_setup
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void buf_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:111,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_str.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: buf_teardown
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void buf_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:117,1
    - Dst: textbuffer_append_len
      Src: /src/clamav/unit_tests/check_str.c:117,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:118,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_str.c:118,1
    - Dst: errmsg_expected
      Src: /src/clamav/unit_tests/check_str.c:119,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:120,1
    - Dst: textbuffer_append_len
      Src: /src/clamav/unit_tests/check_str.c:120,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:121,1
    - Dst: strncmp
      Src: /src/clamav/unit_tests/check_str.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - textbuffer_append_len
    - errmsg_expected
    - strncmp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_append_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:127,1
    - Dst: textbuffer_append
      Src: /src/clamav/unit_tests/check_str.c:127,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:128,1
    - Dst: textbuffer_putc
      Src: /src/clamav/unit_tests/check_str.c:128,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:129,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - textbuffer_putc
    - ck_assert_msg
    - textbuffer_append
    - strcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_append)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:135,1
    - Dst: textbuffer_putc
      Src: /src/clamav/unit_tests/check_str.c:135,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - textbuffer_putc
    - ck_assert_msg
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_putc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_textbuffer_append_normalize
      Src: /src/clamav/unit_tests/check_str.c:146,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_str.c:146,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:147,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:149,1
    - Dst: textbuffer_putc
      Src: /src/clamav/unit_tests/check_str.c:149,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:150,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    - cli_textbuffer_append_normalize
    - ck_assert_msg
    - textbuffer_putc
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_normalize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hex2str
      Src: /src/clamav/unit_tests/check_str.c:161,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:162,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:163,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_str.c:163,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:165,1
    - Dst: cli_hex2str
      Src: /src/clamav/unit_tests/check_str.c:167,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - cli_hex2str
    - ck_assert_msg
    - free
    - memcmp
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(hex2str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: base64lines
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST base64lines
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageCreate
      Src: /src/clamav/unit_tests/check_str.c:194,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:195,1
    - Dst: decodeLine
      Src: /src/clamav/unit_tests/check_str.c:197,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:198,1
    - Dst: base64Flush
      Src: /src/clamav/unit_tests/check_str.c:200,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:206,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:208,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_str.c:208,1
    - Dst: messageDestroy
      Src: /src/clamav/unit_tests/check_str.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 212
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - base64Flush
    - ck_assert_msg
    - messageCreate
    - memcmp
    - decodeLine
    - messageDestroy
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_base64)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: struct
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST struct
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: u16_len
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned u16_len(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:250,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_str.c:251,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_str.c:251,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_str.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_u16_u8)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_str.c:258,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_str.c:261,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_str.c:262,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:263,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:264,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:265,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_str.c:267,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_str.c:268,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_str.c:269,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:270,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:271,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:272,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:273,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_str.c:275,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_str.c:276,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_str.c:277,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_str.c:279,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_str.c:281,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_str.c:282,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_str.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: test_str_suite
    functionSourceFile: /src/clamav/unit_tests/check_str.c
    functionUses: 1
    functionsReached:
    - tcase_add_test
    - tcase_add_checked_fixture
    - suite_add_tcase
    - tcase_add_loop_test
    - tcase_create
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_str_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_init
      Src: /src/clamav/unit_tests/check_uniq.c:40,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_uniq.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_uniq.c
    functionUses: 0
    functionsReached:
    - uniq_init
    - ck_assert_msg
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_uniq_initfail)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_init
      Src: /src/clamav/unit_tests/check_uniq.c:62,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_uniq.c:63,1
    - Dst: uniq_add
      Src: /src/clamav/unit_tests/check_uniq.c:66,1
    - Dst: ck_abort_msg
      Src: /src/clamav/unit_tests/check_uniq.c:67,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_uniq.c:69,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_uniq.c:69,1
    - Dst: uniq_get
      Src: /src/clamav/unit_tests/check_uniq.c:73,1
    - Dst: ck_abort_msg
      Src: /src/clamav/unit_tests/check_uniq.c:74,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_uniq.c:76,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_uniq.c:76,1
    - Dst: uniq_free
      Src: /src/clamav/unit_tests/check_uniq.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 80
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_uniq.c
    functionUses: 0
    functionsReached:
    - strcmp
    - uniq_add
    - uniq_get
    - uniq_init
    - ck_assert_msg
    - ck_abort_msg
    - uniq_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_uniq_known)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_init
      Src: /src/clamav/unit_tests/check_uniq.c:89,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_uniq.c:90,1
    - Dst: uniq_add
      Src: /src/clamav/unit_tests/check_uniq.c:94,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_uniq.c:94,1
    - Dst: ck_abort_msg
      Src: /src/clamav/unit_tests/check_uniq.c:95,1
    - Dst: uniq_get
      Src: /src/clamav/unit_tests/check_uniq.c:100,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_uniq.c:100,1
    - Dst: ck_abort_msg
      Src: /src/clamav/unit_tests/check_uniq.c:101,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_uniq.c:103,1
    - Dst: uniq_free
      Src: /src/clamav/unit_tests/check_uniq.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 107
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_uniq.c
    functionUses: 0
    functionsReached:
    - strlen
    - uniq_add
    - uniq_get
    - uniq_init
    - ck_assert_msg
    - ck_abort_msg
    - uniq_free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_uniq_colls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_uniq.c:112,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_uniq.c:114,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_uniq.c:115,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_uniq.c:116,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_uniq.c:117,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_uniq.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: test_uniq_suite
    functionSourceFile: /src/clamav/unit_tests/check_uniq.c
    functionUses: 1
    functionsReached:
    - suite_add_tcase
    - tcase_create
    - tcase_add_test
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_uniq_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_htmlnorm.c:48,1
    - Dst: dconf_setup
      Src: /src/clamav/unit_tests/check_htmlnorm.c:49,1
    - Dst: cli_gentemp
      Src: /src/clamav/unit_tests/check_htmlnorm.c:50,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: htmlnorm_setup
    functionSourceFile: /src/clamav/unit_tests/check_htmlnorm.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - cli_gentemp
    - cl_init
    - dconf_setup
    linkageType: ''
    returnType: void
    signature: void htmlnorm_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dconf_teardown
      Src: /src/clamav/unit_tests/check_htmlnorm.c:56,1
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_htmlnorm.c:58,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_htmlnorm.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: htmlnorm_teardown
    functionSourceFile: /src/clamav/unit_tests/check_htmlnorm.c
    functionUses: 0
    functionsReached:
    - dconf_teardown
    - cli_rmdirs
    - free
    linkageType: ''
    returnType: void
    signature: void htmlnorm_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_htmlnorm.c:101,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_htmlnorm.c:102,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:103,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_htmlnorm.c:104,1
    - Dst: diff_files
      Src: /src/clamav/unit_tests/check_htmlnorm.c:106,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_htmlnorm.c:111,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_htmlnorm.c:112,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:113,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_htmlnorm.c:114,1
    - Dst: diff_files
      Src: /src/clamav/unit_tests/check_htmlnorm.c:116,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_htmlnorm.c:121,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_htmlnorm.c:122,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:123,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_htmlnorm.c:124,1
    - Dst: diff_files
      Src: /src/clamav/unit_tests/check_htmlnorm.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - dire
    - test
    argTypes:
    - char*
    - struct test*
    constantsTouched: []
    func_position:
      end: 130
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 130
    functionName: check_dir
    functionSourceFile: /src/clamav/unit_tests/check_htmlnorm.c
    functionUses: 0
    functionsReached:
    - open_testfile
    - snprintf
    - open
    - ck_assert_msg
    - diff_files
    linkageType: ''
    returnType: void
    signature: void check_dir(const char *dire, const struct test *test)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_htmlnorm.c:138,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_htmlnorm.c:140,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:141,1
    - Dst: fmap
      Src: /src/clamav/unit_tests/check_htmlnorm.c:143,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:144,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:146,1
    - Dst: mkdir
      Src: /src/clamav/unit_tests/check_htmlnorm.c:146,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:147,1
    - Dst: html_normalise_map
      Src: /src/clamav/unit_tests/check_htmlnorm.c:147,1
    - Dst: check_dir
      Src: /src/clamav/unit_tests/check_htmlnorm.c:148,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:149,1
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_htmlnorm.c:149,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:151,1
    - Dst: mkdir
      Src: /src/clamav/unit_tests/check_htmlnorm.c:151,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:152,1
    - Dst: html_normalise_map
      Src: /src/clamav/unit_tests/check_htmlnorm.c:152,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:153,1
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_htmlnorm.c:153,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:155,1
    - Dst: mkdir
      Src: /src/clamav/unit_tests/check_htmlnorm.c:155,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:156,1
    - Dst: html_normalise_map
      Src: /src/clamav/unit_tests/check_htmlnorm.c:156,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:157,1
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_htmlnorm.c:157,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/unit_tests/check_htmlnorm.c:158,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_htmlnorm.c:160,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:162,1
    - Dst: mkdir
      Src: /src/clamav/unit_tests/check_htmlnorm.c:162,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:163,1
    - Dst: html_normalise_map
      Src: /src/clamav/unit_tests/check_htmlnorm.c:163,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:164,1
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_htmlnorm.c:164,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/unit_tests/check_htmlnorm.c:165,1
    - Dst: funmap
      Src: /src/clamav/unit_tests/check_htmlnorm.c:167,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_htmlnorm.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 170
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_htmlnorm.c
    functionUses: 0
    functionsReached:
    - fmap
    - open_testfile
    - close
    - memset
    - funmap
    - mkdir
    - check_dir
    - ck_assert_msg
    - html_normalise_map
    - html_tag_arg_free
    - cli_rmdirs
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_htmlnorm_api)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:178,1
    - Dst: mkdir
      Src: /src/clamav/unit_tests/check_htmlnorm.c:178,1
    - Dst: fmap
      Src: /src/clamav/unit_tests/check_htmlnorm.c:179,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:180,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:181,1
    - Dst: html_screnc_decode
      Src: /src/clamav/unit_tests/check_htmlnorm.c:181,1
    - Dst: funmap
      Src: /src/clamav/unit_tests/check_htmlnorm.c:182,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_htmlnorm.c:183,1
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_htmlnorm.c:183,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_htmlnorm.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 185
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_htmlnorm.c
    functionUses: 0
    functionsReached:
    - fmap
    - close
    - funmap
    - mkdir
    - ck_assert_msg
    - html_screnc_decode
    - cli_rmdirs
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_screnc_nullterminate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_htmlnorm.c:190,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_htmlnorm.c:193,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_htmlnorm.c:194,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_htmlnorm.c:196,1
    - Dst: tcase_add_unchecked_fixture
      Src: /src/clamav/unit_tests/check_htmlnorm.c:198,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_htmlnorm.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: test_htmlnorm_suite
    functionSourceFile: /src/clamav/unit_tests/check_htmlnorm.c
    functionUses: 1
    functionsReached:
    - tcase_add_test
    - tcase_add_unchecked_fixture
    - suite_add_tcase
    - tcase_add_loop_test
    - tcase_create
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_htmlnorm_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/clamav/unit_tests/check_clamav_skip.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 10
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 10
    functionName: main
    functionSourceFile: /src/clamav/unit_tests/check_clamav_skip.c
    functionUses: 0
    functionsReached:
    - puts
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentempfd_with_prefix
      Src: /src/clamav/unit_tests/check_disasm.c:50,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_disasm.c:221,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_disasm.c:222,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_disasm.c:223,1
    - Dst: FSTAT
      Src: /src/clamav/unit_tests/check_disasm.c:223,1
    - Dst: disasmbuf
      Src: /src/clamav/unit_tests/check_disasm.c:224,1
    - Dst: lseek
      Src: /src/clamav/unit_tests/check_disasm.c:225,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_disasm.c:226,1
    - Dst: lseek
      Src: /src/clamav/unit_tests/check_disasm.c:227,1
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_disasm.c:228,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_disasm.c:229,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_disasm.c:230,1
    - Dst: read
      Src: /src/clamav/unit_tests/check_disasm.c:230,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_disasm.c:231,1
    - Dst: read
      Src: /src/clamav/unit_tests/check_disasm.c:231,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_disasm.c:232,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_disasm.c:233,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_disasm.c:234,1
    - Dst: memcmp
      Src: /src/clamav/unit_tests/check_disasm.c:234,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_disasm.c:235,1
    - Dst: unlink
      Src: /src/clamav/unit_tests/check_disasm.c:236,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_disasm.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 238
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_disasm.c
    functionUses: 0
    functionsReached:
    - open_testfile
    - lseek
    - close
    - disasmbuf
    - unlink
    - FSTAT
    - memcmp
    - ck_assert_msg
    - read
    - malloc
    - cli_gentempfd_with_prefix
    - free
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_disasm_basic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_disasm.c:243,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_disasm.c:245,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_disasm.c:246,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_disasm.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: test_disasm_suite
    functionSourceFile: /src/clamav/unit_tests/check_disasm.c
    functionUses: 1
    functionsReached:
    - suite_add_tcase
    - tcase_create
    - tcase_add_test
    - suite_create
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST *test_disasm_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_word_set
      Src: /src/clamav/unit_tests/check_jsnorm.c:68,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_jsnorm.c:68,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:70,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_jsnorm.c:70,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - strlen
    - ck_assert_msg
    - in_word_set
    - strcmp
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_keywords)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_op_set
      Src: /src/clamav/unit_tests/check_jsnorm.c:79,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_jsnorm.c:79,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:81,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_jsnorm.c:81,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - strlen
    - ck_assert_msg
    - strcmp
    - in_op_set
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_operators)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_jsnorm.c:91,1
    - Dst: TOKEN_SET
      Src: /src/clamav/unit_tests/check_jsnorm.c:93,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:94,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:94,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:95,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:95,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:96,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:96,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:97,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - memset
    - TOKEN_GET
    - TOKEN_SET
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_token_string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_jsnorm.c:105,1
    - Dst: TOKEN_SET
      Src: /src/clamav/unit_tests/check_jsnorm.c:107,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:108,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:108,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:109,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:109,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:110,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:110,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:111,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - memset
    - TOKEN_GET
    - TOKEN_SET
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_token_cstring)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_jsnorm.c:119,1
    - Dst: TOKEN_SET
      Src: /src/clamav/unit_tests/check_jsnorm.c:121,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:122,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:122,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:123,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:123,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:124,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:124,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:125,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - memset
    - TOKEN_GET
    - TOKEN_SET
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_token_scope)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_jsnorm.c:133,1
    - Dst: TOKEN_SET
      Src: /src/clamav/unit_tests/check_jsnorm.c:135,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:136,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:136,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:137,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:137,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:138,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:138,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:139,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:139,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:140,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - memset
    - TOKEN_GET
    - TOKEN_SET
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_token_ival)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_jsnorm.c:148,1
    - Dst: TOKEN_SET
      Src: /src/clamav/unit_tests/check_jsnorm.c:150,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:151,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:151,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:152,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:152,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:153,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:153,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:154,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:154,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:155,1
    - Dst: TOKEN_GET
      Src: /src/clamav/unit_tests/check_jsnorm.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 156
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - memset
    - TOKEN_GET
    - TOKEN_SET
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_token_dval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_js_init
      Src: /src/clamav/unit_tests/check_jsnorm.c:161,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:162,1
    - Dst: cli_js_destroy
      Src: /src/clamav/unit_tests/check_jsnorm.c:163,1
    - Dst: cli_js_destroy
      Src: /src/clamav/unit_tests/check_jsnorm.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - cli_js_destroy
    - ck_assert_msg
    - cli_js_init
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_init_destroy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_js_init
      Src: /src/clamav/unit_tests/check_jsnorm.c:171,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:172,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/unit_tests/check_jsnorm.c:173,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_jsnorm.c:173,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/unit_tests/check_jsnorm.c:174,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_jsnorm.c:174,1
    - Dst: cli_js_parse_done
      Src: /src/clamav/unit_tests/check_jsnorm.c:175,1
    - Dst: cli_js_destroy
      Src: /src/clamav/unit_tests/check_jsnorm.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - cli_js_init
    - strlen
    - cli_js_parse_done
    - ck_assert_msg
    - cli_js_process_buffer
    - cli_js_destroy
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_init_parse_destroy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_jsnorm.c:185,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_jsnorm.c:189,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:190,1
    - Dst: html_normalise_mem
      Src: /src/clamav/unit_tests/check_jsnorm.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - strlen
    - ck_assert_msg
    - strncpy
    - html_normalise_mem
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(js_begin_end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:200,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:201,1
    - Dst: html_normalise_mem
      Src: /src/clamav/unit_tests/check_jsnorm.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - ck_assert_msg
    - html_normalise_mem
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(multiple_scripts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_jsnorm.c:211,1
    - Dst: cli_js_init
      Src: /src/clamav/unit_tests/check_jsnorm.c:212,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:213,1
    - Dst: cli_gentemp
      Src: /src/clamav/unit_tests/check_jsnorm.c:214,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:215,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:216,1
    - Dst: mkdir
      Src: /src/clamav/unit_tests/check_jsnorm.c:216,1
    - Dst: strerror
      Src: /src/clamav/unit_tests/check_jsnorm.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: jstest_setup
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - cl_init
    - mkdir
    - cli_js_init
    - strerror
    - cli_gentemp
    - ck_assert_msg
    linkageType: ''
    returnType: void
    signature: void jstest_setup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_rmdirs
      Src: /src/clamav/unit_tests/check_jsnorm.c:222,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_jsnorm.c:223,1
    - Dst: cli_js_destroy
      Src: /src/clamav/unit_tests/check_jsnorm.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: jstest_teardown
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - free
    - cli_js_destroy
    - cli_rmdirs
    linkageType: ''
    returnType: void
    signature: void jstest_teardown(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_js_process_buffer
      Src: /src/clamav/unit_tests/check_jsnorm.c:237,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/unit_tests/check_jsnorm.c:238,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/unit_tests/check_jsnorm.c:240,1
    - Dst: cli_js_parse_done
      Src: /src/clamav/unit_tests/check_jsnorm.c:243,1
    - Dst: cli_js_output
      Src: /src/clamav/unit_tests/check_jsnorm.c:244,1
    - Dst: snprintf
      Src: /src/clamav/unit_tests/check_jsnorm.c:245,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_jsnorm.c:247,1
    - Dst: jstest_teardown
      Src: /src/clamav/unit_tests/check_jsnorm.c:249,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:250,1
    - Dst: diff_file_mem
      Src: /src/clamav/unit_tests/check_jsnorm.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - in
    - expected
    - split
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 254
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 254
    functionName: tokenizer_test
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - cli_js_output
    - snprintf
    - diff_file_mem
    - open
    - cli_js_parse_done
    - ck_assert_msg
    - cli_js_process_buffer
    - jstest_teardown
    linkageType: ''
    returnType: void
    signature: void tokenizer_test(const char *in, const char *expected, int split)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokenizer_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - tokenizer_test
    linkageType: ''
    returnType: void
    signature: void START_TEST(tokenizer_basic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokenizer_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 390
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - tokenizer_test
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(tokenizer_split)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:405,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:406,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_jsnorm.c:408,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_jsnorm.c:409,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_jsnorm.c:409,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_jsnorm.c:410,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_jsnorm.c:413,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_jsnorm.c:414,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_jsnorm.c:415,1
    - Dst: tokenizer_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:418,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_jsnorm.c:419,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_jsnorm.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 421
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - strncpy
    - ck_assert_msg
    - tokenizer_test
    - free
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(js_buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:429,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_jsnorm.c:430,1
    - Dst: strncpy
      Src: /src/clamav/unit_tests/check_jsnorm.c:436,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_jsnorm.c:437,1
    - Dst: html_normalise_mem
      Src: /src/clamav/unit_tests/check_jsnorm.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - strlen
    - ck_assert_msg
    - strncpy
    - html_normalise_mem
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(screnc_infloop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/clamav/unit_tests/check_jsnorm.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 450
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 450
    functionName: prepare_s
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - isalpha
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST prepare_s(char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_s
      Src: /src/clamav/unit_tests/check_jsnorm.c:454,1
    - Dst: prepare_s
      Src: /src/clamav/unit_tests/check_jsnorm.c:455,1
    - Dst: prepare_s
      Src: /src/clamav/unit_tests/check_jsnorm.c:456,1
    - Dst: prepare_s
      Src: /src/clamav/unit_tests/check_jsnorm.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: prepare
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 0
    functionsReached:
    - prepare_s
    linkageType: ''
    returnType: void
    signature: void prepare(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_jsnorm.c:462,1
    - Dst: prepare
      Src: /src/clamav/unit_tests/check_jsnorm.c:466,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_jsnorm.c:467,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_jsnorm.c:468,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:470,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:471,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_jsnorm.c:473,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_jsnorm.c:474,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:475,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:476,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:477,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:478,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:479,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_jsnorm.c:481,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_jsnorm.c:482,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:483,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:484,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_jsnorm.c:486,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_jsnorm.c:487,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_jsnorm.c:488,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:490,1
    - Dst: tcase_add_loop_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:491,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:493,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_jsnorm.c:495,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_jsnorm.c:496,1
    - Dst: tcase_add_checked_fixture
      Src: /src/clamav/unit_tests/check_jsnorm.c:497,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:498,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:499,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_jsnorm.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 503
    functionName: test_jsnorm_suite
    functionSourceFile: /src/clamav/unit_tests/check_jsnorm.c
    functionUses: 1
    functionsReached:
    - tcase_add_test
    - suite_add_tcase
    - tcase_add_checked_fixture
    - tcase_add_loop_test
    - tcase_create
    - prepare
    - suite_create
    linkageType: ''
    returnType: Suite
    signature: Suite *test_jsnorm_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/unit_tests/check_bytecode.c:71,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_bytecode.c:72,1
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_bytecode.c:76,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:77,1
    - Dst: cl_engine_compile
      Src: /src/clamav/unit_tests/check_bytecode.c:78,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:79,1
    - Dst: evidence_new
      Src: /src/clamav/unit_tests/check_bytecode.c:81,1
    - Dst: calloc
      Src: /src/clamav/unit_tests/check_bytecode.c:86,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:87,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:94,1
    - Dst: fdopen
      Src: /src/clamav/unit_tests/check_bytecode.c:95,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:96,1
    - Dst: cl_debug
      Src: /src/clamav/unit_tests/check_bytecode.c:98,1
    - Dst: cli_bytecode_init
      Src: /src/clamav/unit_tests/check_bytecode.c:101,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:102,1
    - Dst: cli_bytecode_load
      Src: /src/clamav/unit_tests/check_bytecode.c:110,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:111,1
    - Dst: fclose
      Src: /src/clamav/unit_tests/check_bytecode.c:112,1
    - Dst: have_clamjit
      Src: /src/clamav/unit_tests/check_bytecode.c:114,1
    - Dst: cli_bytecode_prepare2
      Src: /src/clamav/unit_tests/check_bytecode.c:117,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:118,1
    - Dst: have_clamjit
      Src: /src/clamav/unit_tests/check_bytecode.c:120,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:121,1
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/unit_tests/check_bytecode.c:124,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:126,1
    - Dst: open
      Src: /src/clamav/unit_tests/check_bytecode.c:131,1
    - Dst: open_testfile
      Src: /src/clamav/unit_tests/check_bytecode.c:133,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:134,1
    - Dst: fmap
      Src: /src/clamav/unit_tests/check_bytecode.c:135,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:136,1
    - Dst: cli_bytecode_context_setfile
      Src: /src/clamav/unit_tests/check_bytecode.c:140,1
    - Dst: cli_bytecode_context_setfuncid
      Src: /src/clamav/unit_tests/check_bytecode.c:143,1
    - Dst: cli_bytecode_run
      Src: /src/clamav/unit_tests/check_bytecode.c:144,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:145,1
    - Dst: cli_bytecode_context_getresult_int
      Src: /src/clamav/unit_tests/check_bytecode.c:149,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:150,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:154,1
    - Dst: strcmp
      Src: /src/clamav/unit_tests/check_bytecode.c:155,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/unit_tests/check_bytecode.c:158,1
    - Dst: funmap
      Src: /src/clamav/unit_tests/check_bytecode.c:160,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/unit_tests/check_bytecode.c:161,1
    - Dst: cli_bytecode_done
      Src: /src/clamav/unit_tests/check_bytecode.c:162,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_bytecode.c:163,1
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_bytecode.c:164,1
    - Dst: evidence_free
      Src: /src/clamav/unit_tests/check_bytecode.c:165,1
    - Dst: close
      Src: /src/clamav/unit_tests/check_bytecode.c:167,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 9
    argNames:
    - file
    - expected
    - fail
    - nojit
    - infile
    - pedata
    - sections
    - expectedvirname
    - testmode
    argTypes:
    - char*
    - uint64_t
    - int
    - int
    - char*
    - struct cli_pe_hook_data*
    - struct cli_exe_section*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 168
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 168
    functionName: runtest
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - fmap
    - cl_engine_free
    - fdopen
    - cl_engine_new
    - cli_bytecode_context_getresult_int
    - cli_bytecode_context_setfuncid
    - cli_bytecode_context_destroy
    - funmap
    - strcmp
    - cl_engine_compile
    - cli_bytecode_load
    - evidence_new
    - cli_bytecode_done
    - open_testfile
    - close
    - memset
    - calloc
    - cli_bytecode_init
    - open
    - ck_assert_msg
    - cli_bytecode_destroy
    - cli_bytecode_context_alloc
    - cli_bytecode_prepare2
    - fclose
    - free
    - cli_bytecode_run
    - evidence_free
    - have_clamjit
    - cli_bytecode_context_setfile
    - cl_debug
    linkageType: ''
    returnType: void
    signature: "void runtest(const char *file, uint64_t expected, int fail, int nojit,\n
      \                   const char *infile, struct cli_pe_hook_data *pedata,\n                    struct
      cli_exe_section *sections, const char *expectedvirname,\n                    int
      testmode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:172,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:173,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_retmagic_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:180,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_retmagic_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:187,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_arith_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:194,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_arith_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:201,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:214,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls2_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:221,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls2_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:228,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_div0_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:236,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_div0_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:243,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_lsig_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_lsig_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:256,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_inf_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:263,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_inf_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:272,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_bytecode.c:273,1
    - Dst: cli_writeint32
      Src: /src/clamav/unit_tests/check_bytecode.c:275,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 289
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - memset
    - cl_init
    - cli_writeint32
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_matchwithread_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:296,1
    - Dst: memset
      Src: /src/clamav/unit_tests/check_bytecode.c:297,1
    - Dst: cli_writeint32
      Src: /src/clamav/unit_tests/check_bytecode.c:299,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 313
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - memset
    - cl_init
    - cli_writeint32
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_matchwithread_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:318,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_pdf_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:325,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_pdf_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:332,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_bswap_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:339,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_bswap_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:346,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_inflate_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:353,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_inflate_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:360,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_api_extract_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:368,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_api_files_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:376,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls2_7_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:383,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls_7_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:390,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_arith_7_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:397,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_debug_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:404,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_inf_7_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:411,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_lsig_7_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:418,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_retmagic_7_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:425,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 427
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_testadt_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:432,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_api_extract_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:440,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_api_files_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:448,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 450
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls2_7_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:455,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 457
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_apicalls_7_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:462,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 464
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_arith_7_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:469,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 471
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_debug_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:476,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_inf_7_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:483,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 485
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_lsig_7_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:490,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_retmagic_7_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:497,1
    - Dst: runtest
      Src: /src/clamav/unit_tests/check_bytecode.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runtest
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_testadt_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/unit_tests/check_bytecode.c:508,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_bytecode.c:508,1
    - Dst: strlen
      Src: /src/clamav/unit_tests/check_bytecode.c:508,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:509,1
    - Dst: sprintf
      Src: /src/clamav/unit_tests/check_bytecode.c:510,1
    - Dst: cl_load
      Src: /src/clamav/unit_tests/check_bytecode.c:512,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:513,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_bytecode.c:514,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:515,1
    - Dst: free
      Src: /src/clamav/unit_tests/check_bytecode.c:517,1
    - Dst: cl_engine_compile
      Src: /src/clamav/unit_tests/check_bytecode.c:519,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:520,1
    - Dst: cl_strerror
      Src: /src/clamav/unit_tests/check_bytecode.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - dbname
    - engine
    - signoexp
    argTypes:
    - char*
    - struct cl_engine*
    - unsigned
    constantsTouched: []
    func_position:
      end: 522
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 522
    functionName: runload
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - strlen
    - cl_engine_compile
    - cl_load
    - ck_assert_msg
    - malloc
    - free
    - sprintf
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST runload(const char *dbname, struct cl_engine *engine, unsigned
      signoexp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:527,1
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_bytecode.c:528,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:529,1
    - Dst: runload
      Src: /src/clamav/unit_tests/check_bytecode.c:531,1
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_bytecode.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runload
    - cl_engine_free
    - ck_assert_msg
    - cl_engine_new
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_load_bytecode_jit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:540,1
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_bytecode.c:541,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:543,1
    - Dst: runload
      Src: /src/clamav/unit_tests/check_bytecode.c:545,1
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_bytecode.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 548
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - cl_init
    - runload
    - cl_engine_free
    - ck_assert_msg
    - cl_engine_new
    linkageType: ''
    returnType: END_TEST
    signature: END_TEST START_TEST(test_load_bytecode_int)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_new
      Src: /src/clamav/unit_tests/check_bytecode.c:560,1
    - Dst: ck_assert_msg
      Src: /src/clamav/unit_tests/check_bytecode.c:561,1
    - Dst: pthread_barrier_wait
      Src: /src/clamav/unit_tests/check_bytecode.c:564,1
    - Dst: runload
      Src: /src/clamav/unit_tests/check_bytecode.c:565,1
    - Dst: cl_engine_free
      Src: /src/clamav/unit_tests/check_bytecode.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 568
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 568
    functionName: thread
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - runload
    - cl_engine_free
    - pthread_barrier_wait
    - ck_assert_msg
    - cl_engine_new
    linkageType: ''
    returnType: void
    signature: void *thread(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_init
      Src: /src/clamav/unit_tests/check_bytecode.c:576,1
    - Dst: pthread_barrier_init
      Src: /src/clamav/unit_tests/check_bytecode.c:577,1
    - Dst: pthread_create
      Src: /src/clamav/unit_tests/check_bytecode.c:579,1
    - Dst: pthread_join
      Src: /src/clamav/unit_tests/check_bytecode.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 588
    functionName: START_TEST
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - pthread_barrier_init
    - cl_init
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void START_TEST(test_parallel_load)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: suite_create
      Src: /src/clamav/unit_tests/check_bytecode.c:594,1
    - Dst: tcase_create
      Src: /src/clamav/unit_tests/check_bytecode.c:595,1
    - Dst: suite_add_tcase
      Src: /src/clamav/unit_tests/check_bytecode.c:596,1
    - Dst: tcase_set_timeout
      Src: /src/clamav/unit_tests/check_bytecode.c:597,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:598,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:599,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:600,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:601,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:602,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:603,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:604,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:605,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:606,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:607,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:608,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:610,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:611,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:612,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:613,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:614,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:615,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:616,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:617,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:618,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:619,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:620,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:622,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:623,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:624,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:625,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:626,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:627,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:628,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:629,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:630,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:631,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:632,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:634,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:635,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:636,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:637,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:638,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:639,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:640,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:641,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:642,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:643,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:644,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:646,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:647,1
    - Dst: tcase_add_test
      Src: /src/clamav/unit_tests/check_bytecode.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 653
    functionName: test_bytecode_suite
    functionSourceFile: /src/clamav/unit_tests/check_bytecode.c
    functionUses: 1
    functionsReached:
    - tcase_add_test
    - suite_add_tcase
    - tcase_create
    - tcase_set_timeout
    - suite_create
    linkageType: ''
    returnType: Suite
    signature: Suite *test_bytecode_suite(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DROP_AND_EXECUTE
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:12,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:14,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:15,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:26,1
    - Dst: CreateToolhelp32Snapshot
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:27,1
    - Dst: GetCurrentProcessId
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:27,1
    - Dst: Module32First
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:32,1
    - Dst: CloseHandle
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:33,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:37,1
    - Dst: Module32Next
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:38,1
    - Dst: CloseHandle
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:39,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:43,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:50,1
    - Dst: RegEnumKeyA
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:53,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:57,1
    - Dst: RegEnumKeyA
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:58,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:62,1
    - Dst: time
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:62,1
    - Dst: printf
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 73
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 73
    functionName: main
    functionSourceFile: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c
    functionUses: 0
    functionsReached:
    - CreateToolhelp32Snapshot
    - DROP_AND_EXECUTE
    - Module32First
    - Module32Next
    - printf
    - GetCurrentProcessId
    - time
    - CloseHandle
    - RegEnumKeyA
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateProcess
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:78,1
    - Dst: WaitForSingleObject
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:82,1
    - Dst: CloseHandle
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:83,1
    - Dst: CloseHandle
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:84,1
    - Dst: fork
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:87,1
    - Dst: execv
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:90,1
    - Dst: exit
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:91,1
    - Dst: waitpid
      Src: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 96
    functionName: exec_in_new_process
    functionSourceFile: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h
    functionUses: 0
    functionsReached:
    - waitpid
    - WaitForSingleObject
    - exit
    - fork
    - CloseHandle
    - CreateProcess
    - execv
    linkageType: ''
    returnType: void
    signature: void exec_in_new_process(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:33,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:33,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:35,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_test.c:35,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: chmd_open_test_01
    functionSourceFile: /src/clamav/libclammspack/test/chmd_test.c
    functionUses: 0
    functionsReached:
    - mspack_destroy_chm_decompressor
    - struct mschm_decompressor*::open
    - TEST
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: void
    signature: void chmd_open_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:51,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:51,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:53,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_test.c:53,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:55,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:58,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_test.c:60,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: chmd_open_test_02
    functionSourceFile: /src/clamav/libclammspack/test/chmd_test.c
    functionUses: 0
    functionsReached:
    - mspack_destroy_chm_decompressor
    - struct mschm_decompressor*::open
    - TEST
    - struct mschm_decompressor*::close
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: void
    signature: void chmd_open_test_02()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:84,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:84,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:86,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_test.c:86,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:88,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:89,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_test.c:91,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: chmd_open_test_03
    functionSourceFile: /src/clamav/libclammspack/test/chmd_test.c
    functionUses: 0
    functionsReached:
    - mspack_destroy_chm_decompressor
    - struct mschm_decompressor*::open
    - TEST
    - struct mschm_decompressor*::close
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: void
    signature: void chmd_open_test_03()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:111,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:111,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:113,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_test.c:113,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:114,1
    - Dst: struct mschm_decompressor*::fast_open
      Src: /src/clamav/libclammspack/test/chmd_test.c:114,1
    - Dst: struct mschm_decompressor*::fast_find
      Src: /src/clamav/libclammspack/test/chmd_test.c:116,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:117,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:118,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_test.c:121,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_test.c:122,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 125
    functionName: chmd_search_test_01
    functionSourceFile: /src/clamav/libclammspack/test/chmd_test.c
    functionUses: 0
    functionsReached:
    - struct mschm_decompressor*::fast_open
    - struct mschm_decompressor*::open
    - TEST
    - mspack_destroy_chm_decompressor
    - struct mschm_decompressor*::fast_find
    - struct mschm_decompressor*::close
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: void
    signature: void chmd_search_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: read_xor
    functionSourceFile: /src/clamav/libclammspack/test/chmd_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int read_xor(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:149,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:149,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:150,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_test.c:150,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/chmd_test.c:150,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chmd_test.c:152,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_test.c:154,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_test.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: chmd_extract_test_01
    functionSourceFile: /src/clamav/libclammspack/test/chmd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - struct mschm_decompressor*::open
    - TEST
    - mspack_destroy_chm_decompressor
    - struct mschm_decompressor*::extract
    - struct mschm_decompressor*::close
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: void
    signature: void chmd_extract_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:162,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/chmd_test.c:163,1
    - Dst: chmd_open_test_01
      Src: /src/clamav/libclammspack/test/chmd_test.c:165,1
    - Dst: chmd_open_test_02
      Src: /src/clamav/libclammspack/test/chmd_test.c:166,1
    - Dst: chmd_open_test_03
      Src: /src/clamav/libclammspack/test/chmd_test.c:167,1
    - Dst: chmd_search_test_01
      Src: /src/clamav/libclammspack/test/chmd_test.c:168,1
    - Dst: chmd_extract_test_01
      Src: /src/clamav/libclammspack/test/chmd_test.c:169,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_test.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 173
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/chmd_test.c
    functionUses: 0
    functionsReached:
    - chmd_open_test_03
    - TEST
    - printf
    - chmd_open_test_02
    - chmd_extract_test_01
    - MSPACK_SYS_SELFTEST
    - chmd_open_test_01
    - chmd_search_test_01
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/kwajd_test.c:27,1
    - Dst: mspack_create_kwaj_decompressor
      Src: /src/clamav/libclammspack/test/kwajd_test.c:27,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/kwajd_test.c:29,1
    - Dst: struct mskwaj_decompressor*::open
      Src: /src/clamav/libclammspack/test/kwajd_test.c:29,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:29,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/kwajd_test.c:30,1
    - Dst: struct mskwaj_decompressor*::close
      Src: /src/clamav/libclammspack/test/kwajd_test.c:31,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:42,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:42,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:43,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:43,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:44,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:44,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:46,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:46,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:47,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:47,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:48,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:48,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:49,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:49,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:51,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:51,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:52,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:52,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:53,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:53,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:54,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:54,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:56,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:56,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:57,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:57,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:58,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:58,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:59,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:59,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:61,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:61,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:62,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:62,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:63,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:63,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:64,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:64,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:66,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:66,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:67,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:67,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:68,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:68,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:69,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:69,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:71,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:71,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:72,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:72,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:73,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:73,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:74,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:74,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:76,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:76,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:77,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:77,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:78,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:78,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:79,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:79,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:81,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:81,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:82,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:82,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:83,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:83,1
    - Dst: GOOD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:84,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:84,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:86,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:86,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:87,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:87,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:88,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:88,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:89,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:89,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:90,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:90,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:91,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:91,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:92,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:92,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:93,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:93,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:94,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:94,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:96,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:96,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:97,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:97,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:98,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:98,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:99,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:99,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:100,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:100,1
    - Dst: BAD
      Src: /src/clamav/libclammspack/test/kwajd_test.c:102,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/kwajd_test.c:102,1
    - Dst: mspack_destroy_kwaj_decompressor
      Src: /src/clamav/libclammspack/test/kwajd_test.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 108
    functionName: kwajd_open_test_01
    functionSourceFile: /src/clamav/libclammspack/test/kwajd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - mspack_destroy_kwaj_decompressor
    - struct mskwaj_decompressor*::open
    - struct mskwaj_decompressor*::close
    - GOOD
    - mspack_create_kwaj_decompressor
    - BAD
    linkageType: ''
    returnType: void
    signature: void kwajd_open_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/kwajd_test.c:113,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/kwajd_test.c:114,1
    - Dst: kwajd_open_test_01
      Src: /src/clamav/libclammspack/test/kwajd_test.c:116,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/kwajd_test.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/kwajd_test.c
    functionUses: 0
    functionsReached:
    - kwajd_open_test_01
    - MSPACK_SYS_SELFTEST
    - TEST
    - printf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mschm_decompressor*::fast_find
      Src: /src/clamav/libclammspack/test/chmd_find.c:18,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_find.c:19,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_find.c:20,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_find.c:24,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:27,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:31,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:32,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:33,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:34,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_find.c:37,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_find.c:43,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_find.c:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - chmd
    - chm
    - archive
    - filename
    - compare
    argTypes:
    - struct mschm_decompressor*
    - struct mschmd_header*
    - char*
    - char*
    - struct mschmd_file*
    constantsTouched: []
    func_position:
      end: 55
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 55
    functionName: find
    functionSourceFile: /src/clamav/libclammspack/test/chmd_find.c
    functionUses: 2
    functionsReached:
    - fprintf
    - struct mschm_decompressor*::fast_find
    - ERROR
    - printf
    linkageType: ''
    returnType: void
    signature: "void find(struct mschm_decompressor *chmd, struct mschmd_header *chm,\n
      \         char *archive, char *filename, struct mschmd_file *compare)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:63,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/chmd_find.c:67,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_find.c:70,1
    - Dst: struct mschm_decompressor*::fast_open
      Src: /src/clamav/libclammspack/test/chmd_find.c:71,1
    - Dst: find
      Src: /src/clamav/libclammspack/test/chmd_find.c:73,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_find.c:76,1
    - Dst: find
      Src: /src/clamav/libclammspack/test/chmd_find.c:79,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:83,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_find.c:83,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_find.c:86,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_find.c:89,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_find.c:89,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_find.c:91,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 94
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 94
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/chmd_find.c
    functionUses: 0
    functionsReached:
    - struct mschm_decompressor*::fast_open
    - find
    - struct mschm_decompressor*::open
    - mspack_destroy_chm_decompressor
    - ERROR
    - printf
    - MSPACK_SYS_SELFTEST
    - struct mschm_decompressor*::close
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: sortfunc
    functionSourceFile: /src/clamav/libclammspack/test/chmd_md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sortfunc(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/clamav/libclammspack/test/chmd_md5.c:27,1
    - Dst: setbuf
      Src: /src/clamav/libclammspack/test/chmd_md5.c:28,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/chmd_md5.c:30,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_md5.c:33,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_md5.c:35,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_md5.c:36,1
    - Dst: calloc
      Src: /src/clamav/libclammspack/test/chmd_md5.c:40,1
    - Dst: qsort
      Src: /src/clamav/libclammspack/test/chmd_md5.c:42,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chmd_md5.c:44,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_md5.c:45,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_md5.c:46,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_md5.c:49,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/chmd_md5.c:52,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_md5.c:55,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_md5.c:58,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_md5.c:58,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_md5.c:61,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_md5.c:64,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 67
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 67
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/chmd_md5.c
    functionUses: 0
    functionsReached:
    - struct mschm_decompressor*::open
    - calloc
    - mspack_destroy_chm_decompressor
    - setbuf
    - ERROR
    - printf
    - struct mschm_decompressor*::extract
    - fprintf
    - qsort
    - MSPACK_SYS_SELFTEST
    - struct mschm_decompressor*::close
    - free
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/chminfo.c:25,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chminfo.c:28,1
    - Dst: malloc
      Src: /src/clamav/libclammspack/test/chminfo.c:30,1
    - Dst: fopen
      Src: /src/clamav/libclammspack/test/chminfo.c:31,1
    - Dst: fread
      Src: /src/clamav/libclammspack/test/chminfo.c:32,1
    - Dst: fclose
      Src: /src/clamav/libclammspack/test/chminfo.c:33,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/chminfo.c:36,1
    - Dst: unlink
      Src: /src/clamav/libclammspack/test/chminfo.c:39,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - chmd
    - chm
    - filename
    - length_ptr
    argTypes:
    - struct mschm_decompressor*
    - struct mschmd_header*
    - char*
    - off_t*
    constantsTouched: []
    func_position:
      end: 41
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 41
    functionName: load_sys_data
    functionSourceFile: /src/clamav/libclammspack/test/chminfo.c
    functionUses: 0
    functionsReached:
    - fread
    - strcmp
    - unlink
    - struct mschm_decompressor*::extract
    - malloc
    - fclose
    - free
    - fopen
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *load_sys_data(struct mschm_decompressor *chmd,\n                             struct
      mschmd_header *chm,\n                             const char *filename,\n                             off_t
      *length_ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclammspack/test/chminfo.c:45,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: guid
    functionSourceFile: /src/clamav/libclammspack/test/chminfo.c
    functionUses: 0
    functionsReached:
    - snprintf
    - EndGetI32
    linkageType: ''
    returnType: char
    signature: char *guid(unsigned char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/test/chminfo.c:69,1
    - Dst: fopen
      Src: /src/clamav/libclammspack/test/chminfo.c:71,1
    - Dst: fseeko
      Src: /src/clamav/libclammspack/test/chminfo.c:73,1
    - Dst: fseek
      Src: /src/clamav/libclammspack/test/chminfo.c:75,1
    - Dst: fread
      Src: /src/clamav/libclammspack/test/chminfo.c:77,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:78,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:79,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:79,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:80,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:80,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:81,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:81,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:82,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:82,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:83,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:83,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:84,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:84,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:85,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:85,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:86,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:86,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:87,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:87,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:88,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:88,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:89,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:89,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:90,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:90,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:91,1
    - Dst: guid
      Src: /src/clamav/libclammspack/test/chminfo.c:91,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:92,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:92,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:93,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:93,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:94,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:94,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:95,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:95,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:100,1
    - Dst: fread
      Src: /src/clamav/libclammspack/test/chminfo.c:101,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:108,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:110,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:114,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:115,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:116,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:116,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:118,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:123,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:132,1
    - Dst: READ_ENCINT
      Src: /src/clamav/libclammspack/test/chminfo.c:133,1
    - Dst: name_len < 0 || name_len >
      Src: /src/clamav/libclammspack/test/chminfo.c:134,1
    - Dst: READ_ENCINT
      Src: /src/clamav/libclammspack/test/chminfo.c:136,1
    - Dst: READ_ENCINT
      Src: /src/clamav/libclammspack/test/chminfo.c:137,1
    - Dst: READ_ENCINT
      Src: /src/clamav/libclammspack/test/chminfo.c:138,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:139,1
    - Dst: fwrite
      Src: /src/clamav/libclammspack/test/chminfo.c:141,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:142,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:145,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:153,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:154,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:156,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:160,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:169,1
    - Dst: READ_ENCINT
      Src: /src/clamav/libclammspack/test/chminfo.c:170,1
    - Dst: name_len < 0 || name_len >
      Src: /src/clamav/libclammspack/test/chminfo.c:171,1
    - Dst: READ_ENCINT
      Src: /src/clamav/libclammspack/test/chminfo.c:173,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:174,1
    - Dst: fwrite
      Src: /src/clamav/libclammspack/test/chminfo.c:175,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:176,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:179,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:182,1
    - Dst: fclose
      Src: /src/clamav/libclammspack/test/chminfo.c:186,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/chminfo.c:188,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 108
    argCount: 2
    argNames:
    - chm
    - filename
    argTypes:
    - struct mschmd_header*
    - char*
    constantsTouched: []
    func_position:
      end: 189
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 189
    functionName: print_dir
    functionSourceFile: /src/clamav/libclammspack/test/chminfo.c
    functionUses: 0
    functionsReached:
    - fseek
    - fread
    - READ_ENCINT
    - name_len < 0 || name_len >
    - guid
    - fwrite
    - fseeko
    - printf
    - free
    - malloc
    - fclose
    - EndGetI32
    - fopen
    linkageType: ''
    returnType: void
    signature: void print_dir(struct mschmd_header *chm, char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/clamav/libclammspack/test/chminfo.c:200,1
    - Dst: setbuf
      Src: /src/clamav/libclammspack/test/chminfo.c:201,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/chminfo.c:203,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chminfo.c:206,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:208,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chminfo.c:209,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:210,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:211,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:212,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:213,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:214,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:215,1
    - Dst: print_dir
      Src: /src/clamav/libclammspack/test/chminfo.c:217,1
    - Dst: load_sys_data
      Src: /src/clamav/libclammspack/test/chminfo.c:219,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:222,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:222,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:223,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:224,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:224,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:225,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:225,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:226,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:226,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:227,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:227,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:228,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:228,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/chminfo.c:229,1
    - Dst: load_sys_data
      Src: /src/clamav/libclammspack/test/chminfo.c:232,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:237,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:237,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:238,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:238,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:239,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:239,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:240,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:240,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:241,1
    - Dst: EndGetI64
      Src: /src/clamav/libclammspack/test/chminfo.c:241,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:242,1
    - Dst: EndGetI64
      Src: /src/clamav/libclammspack/test/chminfo.c:242,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:243,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:243,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/chminfo.c:246,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:254,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:257,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:258,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:259,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:263,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:264,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:268,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/test/chminfo.c:269,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chminfo.c:276,1
    - Dst: EndGetI64
      Src: /src/clamav/libclammspack/test/chminfo.c:277,1
    - Dst: EndGetI64
      Src: /src/clamav/libclammspack/test/chminfo.c:279,1
    - Dst: EndGetI64
      Src: /src/clamav/libclammspack/test/chminfo.c:280,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/chminfo.c:285,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chminfo.c:287,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chminfo.c:290,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 293
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 293
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/chminfo.c
    functionUses: 0
    functionsReached:
    - print_dir
    - struct mschm_decompressor*::open
    - mspack_destroy_chm_decompressor
    - strcmp
    - setbuf
    - load_sys_data
    - printf
    - MSPACK_SYS_SELFTEST
    - EndGetI64
    - free
    - struct mschm_decompressor*::close
    - EndGetI32
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - md5_uint32
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: rol
    functionSourceFile: /src/clamav/libclammspack/test/md5.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: md5_uint32
    signature: md5_uint32 rol(md5_uint32 x, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/test/md5_fh.h:25,1
    - Dst: md5_init_ctx
      Src: /src/clamav/libclammspack/test/md5_fh.h:29,1
    - Dst: fopen
      Src: /src/clamav/libclammspack/test/md5_fh.h:33,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/md5_fh.h:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - filename
    - mode
    argTypes:
    - struct mspack_system*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: m_open
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - md5_init_ctx
    - fopen
    linkageType: ''
    returnType: struct mspack_file
    signature: struct mspack_file *m_open(struct mspack_system *self, const char *filename,
      int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/clamav/libclammspack/test/md5_fh.h:47,1
    - Dst: md5_finish_ctx
      Src: /src/clamav/libclammspack/test/md5_fh.h:50,1
    - Dst: snprintf
      Src: /src/clamav/libclammspack/test/md5_fh.h:51,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/md5_fh.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: m_close
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - fclose
    - md5_finish_ctx
    - snprintf
    - free
    linkageType: ''
    returnType: void
    signature: void m_close(struct mspack_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/clamav/libclammspack/test/md5_fh.h:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: m_read
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: int
    signature: int m_read(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: md5_process_bytes
      Src: /src/clamav/libclammspack/test/md5_fh.h:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: m_write
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - md5_process_bytes
    linkageType: ''
    returnType: int
    signature: int m_write(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fseeko
      Src: /src/clamav/libclammspack/test/md5_fh.h:89,1
    - Dst: fseek
      Src: /src/clamav/libclammspack/test/md5_fh.h:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - file
    - offset
    - mode
    argTypes:
    - struct mspack_file*
    - off_t
    - int
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: m_seek
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - fseek
    - fseeko
    linkageType: ''
    returnType: int
    signature: int m_seek(struct mspack_file *file, off_t offset, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ftello
      Src: /src/clamav/libclammspack/test/md5_fh.h:100,1
    - Dst: ftell
      Src: /src/clamav/libclammspack/test/md5_fh.h:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: m_tell
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - ftell
    - ftello
    linkageType: ''
    returnType: off_t
    signature: off_t m_tell(struct mspack_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/md5_fh.h:109,1
    - Dst: va_start
      Src: /src/clamav/libclammspack/test/md5_fh.h:111,1
    - Dst: vfprintf
      Src: /src/clamav/libclammspack/test/md5_fh.h:112,1
    - Dst: va_end
      Src: /src/clamav/libclammspack/test/md5_fh.h:113,1
    - Dst: fputc
      Src: /src/clamav/libclammspack/test/md5_fh.h:114,1
    - Dst: fflush
      Src: /src/clamav/libclammspack/test/md5_fh.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - file
    - format
    argTypes:
    - struct mspack_file*
    - char*
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: m_msg
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - vfprintf
    - fflush
    - fprintf
    - fputc
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void m_msg(struct mspack_file *file, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/test/md5_fh.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - struct mspack_system*
    - size_t
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: m_alloc
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *m_alloc(struct mspack_system *self, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclammspack/test/md5_fh.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: m_free
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void m_free(void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/md5_fh.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - dest
    - bytes
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: m_copy
    functionSourceFile: /src/clamav/libclammspack/test/md5_fh.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void m_copy(void *src, void *dest, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclammspack/test/error.h:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 22
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 22
    functionName: error_msg
    functionSourceFile: /src/clamav/libclammspack/test/error.h
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *error_msg(int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: sortfunc
    functionSourceFile: /src/clamav/libclammspack/test/chmd_order.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sortfunc(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/chmd_order.c:40,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_order.c:43,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_order.c:45,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/test/chmd_order.c:47,1
    - Dst: struct mschm_decompressor*::fast_open
      Src: /src/clamav/libclammspack/test/chmd_order.c:48,1
    - Dst: calloc
      Src: /src/clamav/libclammspack/test/chmd_order.c:52,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_order.c:56,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chmd_order.c:58,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_order.c:59,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_order.c:60,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/chmd_order.c:63,1
    - Dst: qsort
      Src: /src/clamav/libclammspack/test/chmd_order.c:67,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_order.c:71,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chmd_order.c:72,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_order.c:73,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_order.c:74,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/chmd_order.c:77,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_order.c:82,1
    - Dst: struct mschm_decompressor*::fast_find
      Src: /src/clamav/libclammspack/test/chmd_order.c:84,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_order.c:88,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_order.c:89,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_order.c:93,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chmd_order.c:97,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_order.c:98,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_order.c:99,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/chmd_order.c:102,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_order.c:107,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chmd_order.c:108,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/test/chmd_order.c:109,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_order.c:110,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_order.c:111,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/chmd_order.c:114,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/test/chmd_order.c:119,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/test/chmd_order.c:120,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/test/chmd_order.c:121,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/chmd_order.c:123,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/chmd_order.c:131,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_order.c:133,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/test/chmd_order.c:135,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/chmd_order.c:138,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/chmd_order.c:138,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/test/chmd_order.c:141,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 144
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 144
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/chmd_order.c
    functionUses: 0
    functionsReached:
    - struct mschm_decompressor*::fast_open
    - struct mschm_decompressor*::open
    - calloc
    - mspack_destroy_chm_decompressor
    - ERROR
    - printf
    - memcmp
    - struct mschm_decompressor*::extract
    - fprintf
    - qsort
    - MSPACK_SYS_SELFTEST
    - memcpy
    - struct mschm_decompressor*::fast_find
    - struct mschm_decompressor*::close
    - free
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/clamav/libclammspack/test/cabd_md5.c:37,1
    - Dst: malloc
      Src: /src/clamav/libclammspack/test/cabd_md5.c:41,1
    - Dst: strlen
      Src: /src/clamav/libclammspack/test/cabd_md5.c:41,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/cabd_md5.c:44,1
    - Dst: strcpy
      Src: /src/clamav/libclammspack/test/cabd_md5.c:49,1
    - Dst: stat
      Src: /src/clamav/libclammspack/test/cabd_md5.c:50,1
    - Dst: opendir
      Src: /src/clamav/libclammspack/test/cabd_md5.c:56,1
    - Dst: readdir
      Src: /src/clamav/libclammspack/test/cabd_md5.c:57,1
    - Dst: strcasecmp
      Src: /src/clamav/libclammspack/test/cabd_md5.c:58,1
    - Dst: strcat
      Src: /src/clamav/libclammspack/test/cabd_md5.c:59,1
    - Dst: stat
      Src: /src/clamav/libclammspack/test/cabd_md5.c:60,1
    - Dst: closedir
      Src: /src/clamav/libclammspack/test/cabd_md5.c:64,1
    - Dst: S_ISREG
      Src: /src/clamav/libclammspack/test/cabd_md5.c:68,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/cabd_md5.c:70,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - origcab
    - cabname
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: find_cabinet_file
    functionSourceFile: /src/clamav/libclammspack/test/cabd_md5.c
    functionUses: 0
    functionsReached:
    - closedir
    - strcat
    - strcpy
    - strlen
    - strcasecmp
    - opendir
    - readdir
    - stat
    - strrchr
    - memcpy
    - malloc
    - free
    - S_ISREG
    linkageType: ''
    returnType: char
    signature: char *find_cabinet_file(char *origcab, char *cabname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:85,1
    - Dst: setbuf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:86,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/cabd_md5.c:89,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_md5.c:92,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:93,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:98,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_md5.c:100,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:101,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/cabd_md5.c:101,1
    - Dst: find_cabinet_file
      Src: /src/clamav/libclammspack/test/cabd_md5.c:107,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:108,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_md5.c:112,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:113,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/cabd_md5.c:114,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_md5.c:117,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:118,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/cabd_md5.c:119,1
    - Dst: find_cabinet_file
      Src: /src/clamav/libclammspack/test/cabd_md5.c:126,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:127,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_md5.c:131,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:132,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/cabd_md5.c:133,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_md5.c:136,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:137,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/cabd_md5.c:138,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_md5.c:145,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:146,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/test/cabd_md5.c:149,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/test/cabd_md5.c:150,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/cabd_md5.c:155,1
    - Dst: free
      Src: /src/clamav/libclammspack/test/cabd_md5.c:156,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_md5.c:157,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_md5.c:159,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 161
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 161
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/cabd_md5.c
    functionUses: 0
    functionsReached:
    - struct mscab_decompressor*::close
    - setbuf
    - ERROR
    - printf
    - struct mscab_decompressor*::open
    - fprintf
    - mspack_create_cab_decompressor
    - struct mscab_decompressor*::prepend
    - struct mscab_decompressor*::extract
    - MSPACK_SYS_SELFTEST
    - mspack_destroy_cab_decompressor
    - find_cabinet_file
    - struct mscab_decompressor*::append
    - free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:28,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:28,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:29,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:29,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:30,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/test/cabd_test.c:30,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: cabd_open_test_01
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::last_error
    linkageType: ''
    returnType: void
    signature: void cabd_open_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:43,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:43,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:44,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:44,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:44,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:46,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:47,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:48,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:49,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:49,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:50,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:50,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:51,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:51,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:52,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:52,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:53,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:54,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:56,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:57,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:58,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:59,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:62,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:62,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:63,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:64,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:65,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:65,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:65,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:66,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:66,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:66,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:67,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:67,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:70,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:70,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:71,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:72,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:73,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:73,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:73,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:74,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:74,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:74,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:75,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:75,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:77,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:79,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 81
    functionName: cabd_open_test_02
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - strcmp
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    linkageType: ''
    returnType: void
    signature: void cabd_open_test_02()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:99,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:99,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:102,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:102,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:103,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:103,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:104,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:104,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:105,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 109
    functionName: cabd_open_test_03
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - strcmp
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    linkageType: ''
    returnType: void
    signature: void cabd_open_test_03()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:115,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:115,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:119,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:119,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:119,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:120,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/test/cabd_test.c:120,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:123,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:123,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:123,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:126,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:126,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:126,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:129,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:129,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:129,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:132,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:132,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:132,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: cabd_open_test_04
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::last_error
    linkageType: ''
    returnType: void
    signature: void cabd_open_test_04()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:168,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:168,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:171,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:171,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:172,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/test/cabd_test.c:172,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:176,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:176,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:177,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/test/cabd_test.c:177,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/test/cabd_test.c:178,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:182,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:182,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:182,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:183,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 185
    functionName: cabd_open_test_05
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::last_error
    linkageType: ''
    returnType: void
    signature: void cabd_open_test_05()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:192,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:192,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:193,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:193,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:193,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:195,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: cabd_open_test_06
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    linkageType: ''
    returnType: void
    signature: void cabd_open_test_06()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/clamav/libclammspack/test/cabd_test.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fh
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: readfail_read
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int readfail_read(struct mspack_file *fh, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:215,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:216,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:226,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:226,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:227,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: cabd_open_test_07
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    linkageType: ''
    returnType: void
    signature: void cabd_open_test_07()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:236,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:236,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:237,1
    - Dst: struct mscab_decompressor*::search
      Src: /src/clamav/libclammspack/test/cabd_test.c:237,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:238,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/test/cabd_test.c:238,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 241
    functionName: cabd_search_test_01
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::last_error
    - struct mscab_decompressor*::search
    linkageType: ''
    returnType: void
    signature: void cabd_search_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:248,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:248,1
    - Dst: struct mscab_decompressor*::set_param
      Src: /src/clamav/libclammspack/test/cabd_test.c:249,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:250,1
    - Dst: struct mscab_decompressor*::search
      Src: /src/clamav/libclammspack/test/cabd_test.c:250,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:250,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:252,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:253,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:253,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:254,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:254,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:256,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:257,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:258,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:258,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:259,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:259,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:261,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:263,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: cabd_search_test_02
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - strcmp
    - struct mscab_decompressor*::close
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::set_param
    - struct mscab_decompressor*::search
    linkageType: ''
    returnType: void
    signature: void cabd_search_test_02()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:272,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:272,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:278,1
    - Dst: struct mscab_decompressor*::search
      Src: /src/clamav/libclammspack/test/cabd_test.c:278,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:278,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:279,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:280,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:281,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:281,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:282,1
    - Dst: strcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:282,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:284,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 286
    functionName: cabd_search_test_03
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - strcmp
    - struct mscab_decompressor*::close
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::search
    linkageType: ''
    returnType: void
    signature: void cabd_search_test_03()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:293,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:293,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:294,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:294,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:294,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:295,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:295,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:295,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:297,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:297,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:298,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:298,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:299,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:299,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:300,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_test.c:300,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:301,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_test.c:301,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:302,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_test.c:302,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:305,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:305,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:306,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:306,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:307,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_test.c:307,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:308,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_test.c:308,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:309,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:309,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:311,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 313
    functionName: cabd_merge_test_01
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - struct mscab_decompressor*::prepend
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::append
    linkageType: ''
    returnType: void
    signature: void cabd_merge_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:321,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:321,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:322,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:322,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:322,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:323,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:323,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:323,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:324,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:324,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:324,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:325,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:325,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:325,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:326,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:326,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:326,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:328,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:328,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:329,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_test.c:329,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:330,1
    - Dst: struct mscab_decompressor*::append
      Src: /src/clamav/libclammspack/test/cabd_test.c:330,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:331,1
    - Dst: struct mscab_decompressor*::prepend
      Src: /src/clamav/libclammspack/test/cabd_test.c:331,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:333,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:334,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:335,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:336,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:337,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:338,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:339,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:340,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:342,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:343,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:344,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:345,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:346,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:347,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:349,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 351
    functionName: cabd_merge_test_02
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - struct mscab_decompressor*::prepend
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::append
    linkageType: ''
    returnType: void
    signature: void cabd_merge_test_02()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:372,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:372,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:375,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:375,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:376,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:379,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:381,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 384
    functionName: cabd_extract_test_01
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    linkageType: ''
    returnType: void
    signature: void cabd_extract_test_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:397,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:397,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:398,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:398,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:398,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_test.c:399,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:400,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_test.c:401,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:402,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_test.c:403,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:404,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:405,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 407
    functionName: cabd_extract_test_02
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - struct mscab_decompressor*::extract
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    linkageType: ''
    returnType: void
    signature: void cabd_extract_test_02()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:414,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:415,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:416,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:416,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:417,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:420,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_test.c:420,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:421,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:421,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:423,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_test.c:423,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:424,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:424,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:426,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_test.c:426,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:427,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/test/cabd_test.c:427,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:429,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 431
    functionName: cabd_extract_test_03
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - struct mscab_decompressor*::extract
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - memcmp
    linkageType: ''
    returnType: void
    signature: void cabd_extract_test_03()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:442,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:443,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/test/cabd_test.c:444,1
    - Dst: TESTFILE
      Src: /src/clamav/libclammspack/test/cabd_test.c:444,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:445,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/test/cabd_test.c:450,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:451,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/cabd_test.c:452,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:454,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:460,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:460,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:460,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:460,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:460,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:461,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:461,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:461,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:461,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:461,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:461,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:462,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:462,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:462,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:462,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:462,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:462,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:463,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:463,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:463,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:463,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:463,1
    - Dst: T
      Src: /src/clamav/libclammspack/test/cabd_test.c:463,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/test/cabd_test.c:467,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/test/cabd_test.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 469
    functionName: cabd_extract_test_04
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - TESTFILE
    - TEST
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - struct mscab_decompressor*::extract
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - memcpy
    - T
    linkageType: ''
    returnType: void
    signature: void cabd_extract_test_04()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:474,1
    - Dst: TEST
      Src: /src/clamav/libclammspack/test/cabd_test.c:475,1
    - Dst: cabd_open_test_01
      Src: /src/clamav/libclammspack/test/cabd_test.c:477,1
    - Dst: cabd_open_test_02
      Src: /src/clamav/libclammspack/test/cabd_test.c:478,1
    - Dst: cabd_open_test_03
      Src: /src/clamav/libclammspack/test/cabd_test.c:479,1
    - Dst: cabd_open_test_04
      Src: /src/clamav/libclammspack/test/cabd_test.c:480,1
    - Dst: cabd_open_test_05
      Src: /src/clamav/libclammspack/test/cabd_test.c:481,1
    - Dst: cabd_open_test_06
      Src: /src/clamav/libclammspack/test/cabd_test.c:482,1
    - Dst: cabd_open_test_07
      Src: /src/clamav/libclammspack/test/cabd_test.c:483,1
    - Dst: cabd_search_test_01
      Src: /src/clamav/libclammspack/test/cabd_test.c:485,1
    - Dst: cabd_search_test_02
      Src: /src/clamav/libclammspack/test/cabd_test.c:486,1
    - Dst: cabd_search_test_03
      Src: /src/clamav/libclammspack/test/cabd_test.c:487,1
    - Dst: cabd_merge_test_01
      Src: /src/clamav/libclammspack/test/cabd_test.c:489,1
    - Dst: cabd_merge_test_02
      Src: /src/clamav/libclammspack/test/cabd_test.c:490,1
    - Dst: cabd_extract_test_01
      Src: /src/clamav/libclammspack/test/cabd_test.c:492,1
    - Dst: cabd_extract_test_02
      Src: /src/clamav/libclammspack/test/cabd_test.c:493,1
    - Dst: cabd_extract_test_03
      Src: /src/clamav/libclammspack/test/cabd_test.c:494,1
    - Dst: cabd_extract_test_04
      Src: /src/clamav/libclammspack/test/cabd_test.c:495,1
    - Dst: printf
      Src: /src/clamav/libclammspack/test/cabd_test.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 499
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/test/cabd_test.c
    functionUses: 0
    functionsReached:
    - cabd_extract_test_03
    - cabd_open_test_01
    - printf
    - cabd_open_test_06
    - cabd_open_test_07
    - cabd_open_test_02
    - TEST
    - cabd_open_test_03
    - cabd_search_test_03
    - MSPACK_SYS_SELFTEST
    - cabd_merge_test_02
    - cabd_extract_test_04
    - cabd_extract_test_01
    - cabd_open_test_05
    - cabd_extract_test_02
    - cabd_search_test_01
    - cabd_search_test_02
    - cabd_open_test_04
    - cabd_merge_test_01
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct md5_ctx*
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: md5_init_ctx
    functionSourceFile: /src/clamav/libclammspack/test/md5.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void md5_init_ctx (struct md5_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/clamav/libclammspack/test/md5.c:90,1
    - Dst: SWAP
      Src: /src/clamav/libclammspack/test/md5.c:91,1
    - Dst: SWAP
      Src: /src/clamav/libclammspack/test/md5.c:92,1
    - Dst: SWAP
      Src: /src/clamav/libclammspack/test/md5.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - resbuf
    argTypes:
    - struct md5_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: md5_read_ctx
    functionSourceFile: /src/clamav/libclammspack/test/md5.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: 'void *

      md5_read_ctx (const struct md5_ctx *ctx, void *resbuf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/md5.c:116,1
    - Dst: SWAP
      Src: /src/clamav/libclammspack/test/md5.c:119,1
    - Dst: SWAP
      Src: /src/clamav/libclammspack/test/md5.c:120,1
    - Dst: md5_process_block
      Src: /src/clamav/libclammspack/test/md5.c:124,1
    - Dst: md5_read_ctx
      Src: /src/clamav/libclammspack/test/md5.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - resbuf
    argTypes:
    - struct md5_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: md5_finish_ctx
    functionSourceFile: /src/clamav/libclammspack/test/md5.c
    functionUses: 1
    functionsReached:
    - memcpy
    - md5_process_block
    - SWAP
    - md5_read_ctx
    linkageType: ''
    returnType: void
    signature: 'void *

      md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: md5_init_ctx
      Src: /src/clamav/libclammspack/test/md5.c:140,1
    - Dst: fread
      Src: /src/clamav/libclammspack/test/md5.c:154,1
    - Dst: ferror
      Src: /src/clamav/libclammspack/test/md5.c:166,1
    - Dst: feof
      Src: /src/clamav/libclammspack/test/md5.c:174,1
    - Dst: md5_process_block
      Src: /src/clamav/libclammspack/test/md5.c:181,1
    - Dst: md5_process_bytes
      Src: /src/clamav/libclammspack/test/md5.c:188,1
    - Dst: md5_finish_ctx
      Src: /src/clamav/libclammspack/test/md5.c:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - stream
    - resblock
    argTypes:
    - FILE*
    - void*
    constantsTouched: []
    func_position:
      end: 193
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 193
    functionName: md5_stream
    functionSourceFile: /src/clamav/libclammspack/test/md5.c
    functionUses: 0
    functionsReached:
    - feof
    - fread
    - md5_process_block
    - md5_process_bytes
    - md5_finish_ctx
    - md5_init_ctx
    - ferror
    linkageType: ''
    returnType: int
    signature: int md5_stream (FILE *stream, void *resblock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: md5_init_ctx
      Src: /src/clamav/libclammspack/test/md5.c:205,1
    - Dst: md5_process_bytes
      Src: /src/clamav/libclammspack/test/md5.c:208,1
    - Dst: md5_finish_ctx
      Src: /src/clamav/libclammspack/test/md5.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - buffer
    - len
    - resblock
    argTypes:
    - char*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: md5_buffer
    functionSourceFile: /src/clamav/libclammspack/test/md5.c
    functionUses: 0
    functionsReached:
    - md5_finish_ctx
    - md5_init_ctx
    - md5_process_bytes
    linkageType: ''
    returnType: void
    signature: 'void *

      md5_buffer (const char *buffer, size_t len, void *resblock)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/md5.c:225,1
    - Dst: md5_process_block
      Src: /src/clamav/libclammspack/test/md5.c:230,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/md5.c:234,1
    - Dst: UNALIGNED_P
      Src: /src/clamav/libclammspack/test/md5.c:253,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/md5.c:256,1
    - Dst: md5_process_block
      Src: /src/clamav/libclammspack/test/md5.c:257,1
    - Dst: md5_process_block
      Src: /src/clamav/libclammspack/test/md5.c:264,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/md5.c:275,1
    - Dst: md5_process_block
      Src: /src/clamav/libclammspack/test/md5.c:279,1
    - Dst: memcpy
      Src: /src/clamav/libclammspack/test/md5.c:281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - buffer
    - len
    - ctx
    argTypes:
    - void*
    - size_t
    - struct md5_ctx*
    constantsTouched: []
    func_position:
      end: 285
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 285
    functionName: md5_process_bytes
    functionSourceFile: /src/clamav/libclammspack/test/md5.c
    functionUses: 3
    functionsReached:
    - memcpy
    - md5_process_block
    - UNALIGNED_P
    linkageType: ''
    returnType: void
    signature: void md5_process_bytes ( const void *buffer, size_t len, struct md5_ctx
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:354,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:355,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:356,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:357,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:358,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:359,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:360,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:361,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:362,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:363,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:364,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:365,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:366,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:367,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:368,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:369,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:385,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:386,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:387,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:388,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:389,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:390,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:391,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:392,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:393,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:394,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:395,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:396,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:397,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:398,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:399,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:400,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:403,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:404,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:405,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:406,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:407,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:408,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:409,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:410,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:411,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:412,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:413,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:414,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:415,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:416,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:417,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:418,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:421,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:422,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:423,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:424,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:425,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:426,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:427,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:428,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:429,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:430,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:431,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:432,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:433,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:434,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:435,1
    - Dst: OP
      Src: /src/clamav/libclammspack/test/md5.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 78
    argCount: 3
    argNames:
    - buffer
    - len
    - ctx
    argTypes:
    - void*
    - size_t
    - struct md5_ctx*
    constantsTouched: []
    func_position:
      end: 450
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 450
    functionName: md5_process_block
    functionSourceFile: /src/clamav/libclammspack/test/md5.c
    functionUses: 3
    functionsReached:
    - OP
    linkageType: ''
    returnType: void
    signature: void md5_process_block (const void *buffer, size_t len, struct md5_ctx
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_hlp_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/hlpd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mshlp_decompressor
    signature: "struct mshlp_decompressor *\n  mspack_create_hlp_decompressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mshlp_decompressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_hlp_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/hlpd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_hlp_decompressor(struct mshlp_decompressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_lit_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/litd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mslit_decompressor
    signature: "struct mslit_decompressor *\n  mspack_create_lit_decompressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mslit_decompressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_lit_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/litd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_lit_decompressor(struct mslit_decompressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_valid_system
      Src: /src/clamav/libclammspack/mspack/szddd.c:46,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/szddd.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: mspack_create_szdd_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 0
    functionsReached:
    - mspack_valid_system
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct msszdd_decompressor
    signature: "struct msszdd_decompressor *\n    mspack_create_szdd_decompressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/szddd.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct msszdd_decompressor*
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: mspack_destroy_szdd_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_szdd_decompressor(struct msszdd_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/szddd.c:90,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/szddd.c:91,1
    - Dst: szddd_read_headers
      Src: /src/clamav/libclammspack/mspack/szddd.c:94,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/szddd.c:102,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/szddd.c:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - base
    - filename
    argTypes:
    - struct msszdd_decompressor*
    - char*
    constantsTouched: []
    func_position:
      end: 108
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 108
    functionName: szddd_open
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::open
    - szddd_read_headers
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    - struct mspack_system*::close
    linkageType: ''
    returnType: struct msszddd_header
    signature: "struct msszddd_header *szddd_open(struct msszdd_decompressor *base,\n
      \                                        const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct msszdd_decompressor_p*::system::close
      Src: /src/clamav/libclammspack/mspack/szddd.c:124,1
    - Dst: struct msszdd_decompressor_p*::system::free
      Src: /src/clamav/libclammspack/mspack/szddd.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - base
    - hdr
    argTypes:
    - struct msszdd_decompressor*
    - struct msszddd_header*
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: szddd_close
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 0
    functionsReached:
    - struct msszdd_decompressor_p*::system::free
    - struct msszdd_decompressor_p*::system::close
    linkageType: ''
    returnType: void
    signature: "void szddd_close(struct msszdd_decompressor *base,\n                        struct
      msszddd_header *hdr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/szddd.c:151,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/mspack/szddd.c:153,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/szddd.c:158,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/szddd.c:161,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/mspack/szddd.c:163,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/szddd.c:166,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/szddd.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - sys
    - fh
    - hdr
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct msszddd_header*
    constantsTouched: []
    func_position:
      end: 174
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 174
    functionName: szddd_read_headers
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 1
    functionsReached:
    - memcmp
    - EndGetI32
    - struct mspack_system*::read
    linkageType: ''
    returnType: int
    signature: "int szddd_read_headers(struct mspack_system *sys,\n                              struct
      mspack_file *fh,\n                              struct msszddd_header *hdr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/szddd.c:197,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/szddd.c:202,1
    - Dst: lzss_decompress
      Src: /src/clamav/libclammspack/mspack/szddd.c:207,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/szddd.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - base
    - hdr
    - filename
    argTypes:
    - struct msszdd_decompressor*
    - struct msszddd_header*
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 216
    functionName: szddd_extract
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::open
    - lzss_decompress
    - struct mspack_system*::seek
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int szddd_extract(struct msszdd_decompressor *base,\n                         struct
      msszddd_header *hdr, const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: szddd_open
      Src: /src/clamav/libclammspack/mspack/szddd.c:232,1
    - Dst: szddd_extract
      Src: /src/clamav/libclammspack/mspack/szddd.c:233,1
    - Dst: szddd_close
      Src: /src/clamav/libclammspack/mspack/szddd.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - input
    - output
    argTypes:
    - struct msszdd_decompressor*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 236
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 236
    functionName: szddd_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 0
    functionsReached:
    - szddd_open
    - szddd_extract
    - szddd_close
    linkageType: ''
    returnType: int
    signature: "int szddd_decompress(struct msszdd_decompressor *base,\n                            const
      char *input, const char *output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct msszdd_decompressor*
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: szddd_error
    functionSourceFile: /src/clamav/libclammspack/mspack/szddd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int szddd_error(struct msszdd_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - entity
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: mspack_version
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mspack_version(int entity)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offt_size
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: mspack_sys_selftest_internal
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mspack_sys_selftest_internal(int offt_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: mspack_valid_system
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mspack_valid_system(struct mspack_system *sys)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::tell
      Src: /src/clamav/libclammspack/mspack/system.c:74,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/system.c:77,1
    - Dst: struct mspack_system*::tell
      Src: /src/clamav/libclammspack/mspack/system.c:82,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/system.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - system
    - file
    - length
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - off_t*
    constantsTouched: []
    func_position:
      end: 90
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 90
    functionName: mspack_sys_filelen
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::tell
    - struct mspack_system*::seek
    linkageType: ''
    returnType: int
    signature: "int mspack_sys_filelen(struct mspack_system *system,\n                       struct
      mspack_file *file, off_t *length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/mspack/system.c:130,1
    - Dst: fopen
      Src: /src/clamav/libclammspack/mspack/system.c:132,1
    - Dst: free
      Src: /src/clamav/libclammspack/mspack/system.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - filename
    - mode
    argTypes:
    - struct mspack_system*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: msp_open
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - fopen
    linkageType: ''
    returnType: struct mspack_file
    signature: "struct mspack_file *msp_open(struct mspack_system *self,\n                                    const
      char *filename, int mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/clamav/libclammspack/mspack/system.c:141,1
    - Dst: free
      Src: /src/clamav/libclammspack/mspack/system.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: msp_close
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - fclose
    - free
    linkageType: ''
    returnType: void
    signature: void msp_close(struct mspack_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/clamav/libclammspack/mspack/system.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: msp_read
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: int
    signature: int msp_read(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ferror
      Src: /src/clamav/libclammspack/mspack/system.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: msp_write
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - ferror
    linkageType: ''
    returnType: int
    signature: int msp_write(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fseeko
      Src: /src/clamav/libclammspack/mspack/system.c:174,1
    - Dst: fseek
      Src: /src/clamav/libclammspack/mspack/system.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - file
    - offset
    - mode
    argTypes:
    - struct mspack_file*
    - off_t
    - int
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: msp_seek
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - fseek
    - fseeko
    linkageType: ''
    returnType: int
    signature: int msp_seek(struct mspack_file *file, off_t offset, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ftello
      Src: /src/clamav/libclammspack/mspack/system.c:185,1
    - Dst: ftell
      Src: /src/clamav/libclammspack/mspack/system.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: msp_tell
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - ftell
    - ftello
    linkageType: ''
    returnType: off_t
    signature: off_t msp_tell(struct mspack_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclammspack/mspack/system.c:193,1
    - Dst: va_start
      Src: /src/clamav/libclammspack/mspack/system.c:194,1
    - Dst: vfprintf
      Src: /src/clamav/libclammspack/mspack/system.c:195,1
    - Dst: va_end
      Src: /src/clamav/libclammspack/mspack/system.c:196,1
    - Dst: fputc
      Src: /src/clamav/libclammspack/mspack/system.c:197,1
    - Dst: fflush
      Src: /src/clamav/libclammspack/mspack/system.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - file
    - format
    argTypes:
    - struct mspack_file*
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: msp_msg
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fflush
    - fprintf
    - fputc
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void msp_msg(struct mspack_file *file, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclammspack/mspack/system.c:205,1
    - Dst: malloc
      Src: /src/clamav/libclammspack/mspack/system.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - struct mspack_system*
    - size_t
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: msp_alloc
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - malloc
    - memset
    linkageType: ''
    returnType: void
    signature: void *msp_alloc(struct mspack_system *self, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclammspack/mspack/system.c:221,1
    - Dst: free
      Src: /src/clamav/libclammspack/mspack/system.c:222,1
    - Dst: free
      Src: /src/clamav/libclammspack/mspack/system.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 227
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 227
    functionName: msp_free
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void msp_free(void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclammspack/mspack/system.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - dest
    - bytes
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: msp_copy
    functionSourceFile: /src/clamav/libclammspack/mspack/system.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void msp_copy(void *src, void *dest, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_hlp_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/hlpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mshlp_compressor
    signature: "struct mshlp_compressor *\n  mspack_create_hlp_compressor(struct mspack_system
      *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mshlp_compressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_hlp_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/hlpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_hlp_compressor(struct mshlp_compressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_valid_system
      Src: /src/clamav/libclammspack/mspack/kwajd.c:60,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/kwajd.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: mspack_create_kwaj_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 1
    functionsReached:
    - mspack_valid_system
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct mskwaj_decompressor
    signature: "struct mskwaj_decompressor *\n    mspack_create_kwaj_decompressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct mskwaj_decompressor*
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: mspack_destroy_kwaj_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_kwaj_decompressor(struct mskwaj_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/kwajd.c:105,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/kwajd.c:111,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/kwajd.c:113,1
    - Dst: kwajd_read_headers
      Src: /src/clamav/libclammspack/mspack/kwajd.c:119,1
    - Dst: kwajd_close
      Src: /src/clamav/libclammspack/mspack/kwajd.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - base
    - filename
    argTypes:
    - struct mskwaj_decompressor*
    - char*
    constantsTouched: []
    func_position:
      end: 125
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 125
    functionName: kwajd_open
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::open
    - kwajd_close
    - kwajd_read_headers
    - struct mspack_system*::alloc
    - struct mspack_system*::close
    linkageType: ''
    returnType: struct mskwajd_header
    signature: "struct mskwajd_header *kwajd_open(struct mskwaj_decompressor *base,\n
      \                                        const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mskwaj_decompressor_p*::system::close
      Src: /src/clamav/libclammspack/mspack/kwajd.c:141,1
    - Dst: struct mskwaj_decompressor_p*::system::free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:144,1
    - Dst: struct mskwaj_decompressor_p*::system::free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:145,1
    - Dst: struct mskwaj_decompressor_p*::system::free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - base
    - hdr
    argTypes:
    - struct mskwaj_decompressor*
    - struct mskwajd_header*
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: kwajd_close
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 1
    functionsReached:
    - struct mskwaj_decompressor_p*::system::close
    - struct mskwaj_decompressor_p*::system::free
    linkageType: ''
    returnType: void
    signature: "void kwajd_close(struct mskwaj_decompressor *base,\n                        struct
      mskwajd_header *hdr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:164,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/kwajd.c:169,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/kwajd.c:170,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/kwajd.c:176,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/kwajd.c:177,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/kwajd.c:178,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:188,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/kwajd.c:189,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:194,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:199,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/kwajd.c:200,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/kwajd.c:201,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:214,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/kwajd.c:219,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:228,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/kwajd.c:233,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:242,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/kwajd.c:243,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/kwajd.c:244,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:246,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 73
    argCount: 3
    argNames:
    - sys
    - fh
    - hdr
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mskwajd_header*
    constantsTouched: []
    func_position:
      end: 251
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 251
    functionName: kwajd_read_headers
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::read
    - EndGetI16
    - struct mspack_system*::alloc
    - EndGetI32
    - struct mspack_system*::seek
    linkageType: ''
    returnType: int
    signature: "int kwajd_read_headers(struct mspack_system *sys,\n                              struct
      mspack_file *fh,\n                              struct mskwajd_header *hdr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/kwajd.c:272,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/kwajd.c:277,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:291,1
    - Dst: struct mspack_system*::write
      Src: /src/clamav/libclammspack/mspack/kwajd.c:295,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:301,1
    - Dst: lzss_decompress
      Src: /src/clamav/libclammspack/mspack/kwajd.c:308,1
    - Dst: lzh_init
      Src: /src/clamav/libclammspack/mspack/kwajd.c:312,1
    - Dst: lzh_decompress
      Src: /src/clamav/libclammspack/mspack/kwajd.c:313,1
    - Dst: lzh_free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:314,1
    - Dst: mszipd_init
      Src: /src/clamav/libclammspack/mspack/kwajd.c:317,1
    - Dst: mszipd_decompress_kwaj
      Src: /src/clamav/libclammspack/mspack/kwajd.c:318,1
    - Dst: mszipd_free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:319,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/kwajd.c:326,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - base
    - hdr
    - filename
    argTypes:
    - struct mskwaj_decompressor*
    - struct mskwajd_header*
    - char*
    constantsTouched: []
    func_position:
      end: 329
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 329
    functionName: kwajd_extract
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 0
    functionsReached:
    - mszipd_free
    - struct mspack_system*::seek
    - struct mspack_system*::write
    - lzh_free
    - struct mspack_system*::open
    - lzh_decompress
    - mszipd_init
    - lzh_init
    - struct mspack_system*::free
    - lzss_decompress
    - mszipd_decompress_kwaj
    - struct mspack_system*::read
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int kwajd_extract(struct mskwaj_decompressor *base,\n                         struct
      mskwajd_header *hdr, const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kwajd_open
      Src: /src/clamav/libclammspack/mspack/kwajd.c:345,1
    - Dst: kwajd_extract
      Src: /src/clamav/libclammspack/mspack/kwajd.c:346,1
    - Dst: kwajd_close
      Src: /src/clamav/libclammspack/mspack/kwajd.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - input
    - output
    argTypes:
    - struct mskwaj_decompressor*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 349
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 349
    functionName: kwajd_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 0
    functionsReached:
    - kwajd_close
    - kwajd_open
    - kwajd_extract
    linkageType: ''
    returnType: int
    signature: "int kwajd_decompress(struct mskwaj_decompressor *base,\n                            const
      char *input, const char *output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct mskwaj_decompressor*
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: kwajd_error
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kwajd_error(struct mskwaj_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/kwajd.c:433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - sys
    - in
    - out
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 439
    functionName: lzh_init
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct kwajd_stream
    signature: "struct kwajd_stream *lzh_init(struct mspack_system *sys,\n    struct
      mspack_file *in, struct mspack_file *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclammspack/mspack/kwajd.c:450,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:453,1
    - Dst: BUILD_TREE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:456,1
    - Dst: BUILD_TREE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:457,1
    - Dst: BUILD_TREE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:458,1
    - Dst: BUILD_TREE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:459,1
    - Dst: BUILD_TREE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:460,1
    - Dst: READ_HUFFSYM_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:463,1
    - Dst: READ_HUFFSYM_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:464,1
    - Dst: READ_HUFFSYM_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:469,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:470,1
    - Dst: READ_HUFFSYM_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:480,1
    - Dst: READ_HUFFSYM_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:483,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 1
    argNames:
    - lzh
    argTypes:
    - struct kwajd_stream*
    constantsTouched: []
    func_position:
      end: 492
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 492
    functionName: lzh_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 1
    functionsReached:
    - READ_BITS_SAFE
    - READ_HUFFSYM_SAFE
    - memset
    - BUILD_TREE
    linkageType: ''
    returnType: int
    signature: int lzh_decompress(struct kwajd_stream *lzh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/kwajd.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - lzh
    argTypes:
    - struct kwajd_stream*
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: lzh_free
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void lzh_free(struct kwajd_stream *lzh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:518,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:520,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:521,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:522,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:527,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:529,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:530,1
    - Dst: READ_BITS_SAFE
      Src: /src/clamav/libclammspack/mspack/kwajd.c:537,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - lzh
    - type
    - numsyms
    - lens
    argTypes:
    - struct kwajd_stream*
    - unsigned int
    - unsigned int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 543
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 543
    functionName: lzh_read_lens
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 0
    functionsReached:
    - READ_BITS_SAFE
    linkageType: ''
    returnType: int
    signature: "int lzh_read_lens(struct kwajd_stream *lzh,\n                         unsigned
      int type, unsigned int numsyms,\n                         unsigned char *lens)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct kwajd_stream*::sys::read
      Src: /src/clamav/libclammspack/mspack/kwajd.c:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - lzh
    argTypes:
    - struct kwajd_stream*
    constantsTouched: []
    func_position:
      end: 566
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 566
    functionName: lzh_read_input
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajd.c
    functionUses: 0
    functionsReached:
    - struct kwajd_stream*::sys::read
    linkageType: ''
    returnType: int
    signature: int lzh_read_input(struct kwajd_stream *lzh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:149,1
    - Dst: BUILD_TABLE
      Src: /src/clamav/libclammspack/mspack/lzxd.c:152,1
    - Dst: READ_HUFFSYM
      Src: /src/clamav/libclammspack/mspack/lzxd.c:155,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:158,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:163,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:168,1
    - Dst: READ_HUFFSYM
      Src: /src/clamav/libclammspack/mspack/lzxd.c:169,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - lzx
    - lens
    - first
    - last
    argTypes:
    - struct lzxd_stream*
    - unsigned char*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 183
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 183
    functionName: lzxd_read_lens
    functionSourceFile: /src/clamav/libclammspack/mspack/lzxd.c
    functionUses: 0
    functionsReached:
    - READ_HUFFSYM
    - READ_BITS
    - BUILD_TABLE
    linkageType: ''
    returnType: int
    signature: "int lzxd_read_lens(struct lzxd_stream *lzx, unsigned char *lens,\n
      \                         unsigned int first, unsigned int last)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - lzx
    argTypes:
    - struct lzxd_stream*
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: lzxd_reset_state
    functionSourceFile: /src/clamav/libclammspack/mspack/lzxd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lzxd_reset_state(struct lzxd_stream *lzx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:299,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/lzxd.c:308,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/lzxd.c:313,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/lzxd.c:314,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/lzxd.c:316,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/lzxd.c:317,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/lzxd.c:318,1
    - Dst: lzxd_reset_state
      Src: /src/clamav/libclammspack/mspack/lzxd.c:343,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 8
    argNames:
    - system
    - input
    - output
    - window_bits
    - reset_interval
    - input_buffer_size
    - output_length
    - is_delta
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mspack_file*
    - int
    - int
    - int
    - off_t
    - char
    constantsTouched: []
    func_position:
      end: 346
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 346
    functionName: lzxd_init
    functionSourceFile: /src/clamav/libclammspack/mspack/lzxd.c
    functionUses: 0
    functionsReached:
    - D
    - struct mspack_system*::free
    - lzxd_reset_state
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct lzxd_stream
    signature: "struct lzxd_stream *lzxd_init(struct mspack_system *system,\n                              struct
      mspack_file *input,\n                              struct mspack_file *output,\n
      \                             int window_bits,\n                              int
      reset_interval,\n                              int input_buffer_size,\n                              off_t
      output_length,\n                              char is_delta)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:356,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:360,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:364,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:368,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - lzx
    - system
    - input
    - length
    argTypes:
    - struct lzxd_stream*
    - struct mspack_system*
    - struct mspack_file*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 382
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 382
    functionName: lzxd_set_reference_data
    functionSourceFile: /src/clamav/libclammspack/mspack/lzxd.c
    functionUses: 0
    functionsReached:
    - D
    linkageType: ''
    returnType: int
    signature: "int lzxd_set_reference_data(struct lzxd_stream *lzx,\n                            struct
      mspack_system *system,\n                            struct mspack_file *input,\n
      \                           unsigned int length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - lzx
    - out_bytes
    argTypes:
    - struct lzxd_stream*
    - off_t
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: lzxd_set_output_length
    functionSourceFile: /src/clamav/libclammspack/mspack/lzxd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lzxd_set_output_length(struct lzxd_stream *lzx, off_t out_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct lzxd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/lzxd.c:402,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:426,1
    - Dst: struct lzxd_stream*::sys::message
      Src: /src/clamav/libclammspack/mspack/lzxd.c:428,1
    - Dst: lzxd_reset_state
      Src: /src/clamav/libclammspack/mspack/lzxd.c:434,1
    - Dst: ENSURE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:442,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:443,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:450,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:450,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:450,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:477,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:478,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:478,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:486,1
    - Dst: BUILD_TABLE
      Src: /src/clamav/libclammspack/mspack/lzxd.c:487,1
    - Dst: READ_LENGTHS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:491,1
    - Dst: READ_LENGTHS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:492,1
    - Dst: BUILD_TABLE
      Src: /src/clamav/libclammspack/mspack/lzxd.c:493,1
    - Dst: READ_LENGTHS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:497,1
    - Dst: BUILD_TABLE_MAYBE_EMPTY
      Src: /src/clamav/libclammspack/mspack/lzxd.c:498,1
    - Dst: ENSURE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:506,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/lzxd.c:514,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/lzxd.c:515,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/lzxd.c:516,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:520,1
    - Dst: READ_HUFFSYM
      Src: /src/clamav/libclammspack/mspack/lzxd.c:542,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:556,1
    - Dst: READ_HUFFSYM
      Src: /src/clamav/libclammspack/mspack/lzxd.c:559,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:574,1
    - Dst: READ_HUFFSYM
      Src: /src/clamav/libclammspack/mspack/lzxd.c:577,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:581,1
    - Dst: ENSURE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:591,1
    - Dst: PEEK_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:592,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:593,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:594,1
    - Dst: PEEK_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:596,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:597,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:598,1
    - Dst: PEEK_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:601,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:602,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:603,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:607,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:608,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:614,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:626,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:632,1
    - Dst: struct lzxd_stream*::sys::copy
      Src: /src/clamav/libclammspack/mspack/lzxd.c:665,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:680,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:690,1
    - Dst: ENSURE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:696,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/lzxd.c:697,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:701,1
    - Dst: struct lzxd_stream*::sys::copy
      Src: /src/clamav/libclammspack/mspack/lzxd.c:718,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/lzxd.c:722,1
    - Dst: struct lzxd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/lzxd.c:741,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/lzxd.c:759,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 304
    argCount: 2
    argNames:
    - lzx
    - out_bytes
    argTypes:
    - struct lzxd_stream*
    - off_t
    constantsTouched: []
    func_position:
      end: 771
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 771
    functionName: lzxd_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/lzxd.c
    functionUses: 0
    functionsReached:
    - READ_HUFFSYM
    - lzxd_reset_state
    - struct lzxd_stream*::sys::message
    - REMOVE_BITS
    - PEEK_BITS
    - BUILD_TABLE
    - READ_LENGTHS
    - READ_BITS
    - struct lzxd_stream*::sys::write
    - struct lzxd_stream*::sys::copy
    - BUILD_TABLE_MAYBE_EMPTY
    - D
    - ENSURE_BITS
    - EndGetI32
    linkageType: ''
    returnType: int
    signature: int lzxd_decompress(struct lzxd_stream *lzx, off_t out_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/lzxd.c:777,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/lzxd.c:778,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/lzxd.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lzx
    argTypes:
    - struct lzxd_stream*
    constantsTouched: []
    func_position:
      end: 781
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 781
    functionName: lzxd_free
    functionSourceFile: /src/clamav/libclammspack/mspack/lzxd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void lzxd_free(struct lzxd_stream *lzx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/lzssd.c:55,1
    - Dst: memset
      Src: /src/clamav/libclammspack/mspack/lzssd.c:60,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/lzssd.c:91,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 5
    argNames:
    - system
    - input
    - output
    - input_buffer_size
    - mode
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mspack_file*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 93
    functionName: lzss_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/lzssd.c
    functionUses: 2
    functionsReached:
    - struct mspack_system*::free
    - memset
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: int
    signature: "int lzss_decompress(struct mspack_system *system,\n                    struct
      mspack_file *input,\n                    struct mspack_file *output,\n                    int
      input_buffer_size,\n                    int mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - val
    - bits
    argTypes:
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 10
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 10
    functionName: binary
    functionSourceFile: /src/clamav/libclammspack/mspack/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *binary(unsigned int val, unsigned int bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:17,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:19,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:20,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:21,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:22,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:23,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:24,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:25,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:26,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:27,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:28,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:29,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:30,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:32,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:33,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:34,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:35,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:37,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:41,1
    - Dst: printf
      Src: /src/clamav/libclammspack/mspack/debug.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - cab
    argTypes:
    - struct mscabd_cabinet_p*
    constantsTouched: []
    func_position:
      end: 48
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 48
    functionName: cabinfo
    functionSourceFile: /src/clamav/libclammspack/mspack/debug.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void cabinfo(struct mscabd_cabinet_p *cab)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: memcmp
    functionSourceFile: /src/clamav/libclammspack/mspack/system.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memcmp(const void *s1, const void *s2, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: memset
    functionSourceFile: /src/clamav/libclammspack/mspack/system.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *memset(void *s, int c, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: strlen
    functionSourceFile: /src/clamav/libclammspack/mspack/system.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlen(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - val
    - ss
    - len
    argTypes:
    - unsigned int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: crc32
    functionSourceFile: /src/clamav/libclammspack/mspack/crc32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int crc32(unsigned int val, const void *ss, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - model
    - syms
    - start
    - len
    argTypes:
    - struct qtmd_model*
    - struct qtmd_modelsym*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 181
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 181
    functionName: qtmd_init_model
    functionSourceFile: /src/clamav/libclammspack/mspack/qtmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void qtmd_init_model(struct qtmd_model *model,\n                            struct
      qtmd_modelsym *syms, int start, int len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/qtmd.c:205,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/qtmd.c:210,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/qtmd.c:211,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/qtmd.c:213,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/qtmd.c:214,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/qtmd.c:215,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:242,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:243,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:244,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:245,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:246,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:247,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:248,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:249,1
    - Dst: qtmd_init_model
      Src: /src/clamav/libclammspack/mspack/qtmd.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 5
    argNames:
    - system
    - input
    - output
    - window_bits
    - input_buffer_size
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mspack_file*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 254
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 254
    functionName: qtmd_init
    functionSourceFile: /src/clamav/libclammspack/mspack/qtmd.c
    functionUses: 0
    functionsReached:
    - qtmd_init_model
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct qtmd_stream
    signature: "struct qtmd_stream *qtmd_init(struct mspack_system *system,\n                              struct
      mspack_file *input,\n                              struct mspack_file *output,\n
      \                             int window_bits, int input_buffer_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct qtmd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/qtmd.c:271,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/qtmd.c:292,1
    - Dst: GET_SYMBOL
      Src: /src/clamav/libclammspack/mspack/qtmd.c:307,1
    - Dst: GET_SYMBOL
      Src: /src/clamav/libclammspack/mspack/qtmd.c:314,1
    - Dst: GET_SYMBOL
      Src: /src/clamav/libclammspack/mspack/qtmd.c:322,1
    - Dst: READ_MANY_BITS
      Src: /src/clamav/libclammspack/mspack/qtmd.c:323,1
    - Dst: GET_SYMBOL
      Src: /src/clamav/libclammspack/mspack/qtmd.c:329,1
    - Dst: READ_MANY_BITS
      Src: /src/clamav/libclammspack/mspack/qtmd.c:330,1
    - Dst: GET_SYMBOL
      Src: /src/clamav/libclammspack/mspack/qtmd.c:336,1
    - Dst: READ_MANY_BITS
      Src: /src/clamav/libclammspack/mspack/qtmd.c:337,1
    - Dst: GET_SYMBOL
      Src: /src/clamav/libclammspack/mspack/qtmd.c:340,1
    - Dst: READ_MANY_BITS
      Src: /src/clamav/libclammspack/mspack/qtmd.c:341,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/qtmd.c:347,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/qtmd.c:371,1
    - Dst: struct qtmd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/qtmd.c:375,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/qtmd.c:399,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/qtmd.c:424,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/qtmd.c:431,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/qtmd.c:436,1
    - Dst: struct qtmd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/qtmd.c:449,1
    - Dst: struct qtmd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/qtmd.c:462,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 162
    argCount: 2
    argNames:
    - qtm
    - out_bytes
    argTypes:
    - struct qtmd_stream*
    - off_t
    constantsTouched: []
    func_position:
      end: 478
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 478
    functionName: qtmd_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/qtmd.c
    functionUses: 0
    functionsReached:
    - REMOVE_BITS
    - struct qtmd_stream*::sys::write
    - READ_BITS
    - READ_MANY_BITS
    - D
    - GET_SYMBOL
    linkageType: ''
    returnType: int
    signature: int qtmd_decompress(struct qtmd_stream *qtm, off_t out_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/qtmd.c:484,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/qtmd.c:485,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/qtmd.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qtm
    argTypes:
    - struct qtmd_stream*
    constantsTouched: []
    func_position:
      end: 488
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 488
    functionName: qtmd_free
    functionSourceFile: /src/clamav/libclammspack/mspack/qtmd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void qtmd_free(struct qtmd_stream *qtm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_kwaj_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mskwaj_compressor
    signature: "struct mskwaj_compressor *\n  mspack_create_kwaj_compressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mskwaj_compressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_kwaj_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/kwajc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_kwaj_compressor(struct mskwaj_compressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_chm_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/chmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mschm_compressor
    signature: "struct mschm_compressor *\n  mspack_create_chm_compressor(struct mspack_system
      *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mschm_compressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_chm_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/chmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_chm_compressor(struct mschm_compressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_valid_system
      Src: /src/clamav/libclammspack/mspack/oabd.c:48,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/oabd.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mspack_create_oab_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 0
    functionsReached:
    - mspack_valid_system
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct msoab_decompressor
    signature: "struct msoab_decompressor *\n  mspack_create_oab_decompressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/oabd.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct msoab_decompressor*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: mspack_destroy_oab_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_oab_decompressor(struct msoab_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct oabd_file*::orig_sys::read
      Src: /src/clamav/libclammspack/mspack/oabd.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base_file
    - buf
    - size
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: oabd_sys_read
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 0
    functionsReached:
    - struct oabd_file*::orig_sys::read
    linkageType: ''
    returnType: int
    signature: int oabd_sys_read (struct mspack_file *base_file, void *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/clamav/libclammspack/mspack/oabd.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - base_file
    - buf
    - size
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: oabd_sys_write
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 0
    functionsReached:
    - crc32
    linkageType: ''
    returnType: int
    signature: int oabd_sys_write (struct mspack_file *base_file, void *buf, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/oabd.c:122,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/oabd.c:128,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:133,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:134,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:139,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:140,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/oabd.c:142,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/oabd.c:148,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/oabd.c:167,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:171,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:172,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:173,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:174,1
    - Dst: copy_fh
      Src: /src/clamav/libclammspack/mspack/oabd.c:187,1
    - Dst: lzxd_init
      Src: /src/clamav/libclammspack/mspack/oabd.c:199,1
    - Dst: lzxd_decompress
      Src: /src/clamav/libclammspack/mspack/oabd.c:206,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/oabd.c:210,1
    - Dst: copy_fh
      Src: /src/clamav/libclammspack/mspack/oabd.c:214,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/oabd.c:226,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/oabd.c:227,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/oabd.c:228,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/oabd.c:229,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 106
    argCount: 3
    argNames:
    - _self
    - input
    - output
    argTypes:
    - struct msoab_decompressor*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 232
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 232
    functionName: oabd_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 0
    functionsReached:
    - copy_fh
    - lzxd_decompress
    - struct mspack_system*::open
    - lzxd_init
    - lzxd_free
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    - EndGetI32
    - struct mspack_system*::read
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int oabd_decompress(struct msoab_decompressor *_self, const char *input,\n
      \                          const char *output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/oabd.c:255,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/oabd.c:261,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:266,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:267,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:272,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:273,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/oabd.c:279,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/oabd.c:285,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/oabd.c:291,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/oabd.c:310,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:314,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:315,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:316,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/oabd.c:317,1
    - Dst: lzxd_init
      Src: /src/clamav/libclammspack/mspack/oabd.c:336,1
    - Dst: lzxd_set_reference_data
      Src: /src/clamav/libclammspack/mspack/oabd.c:342,1
    - Dst: lzxd_decompress
      Src: /src/clamav/libclammspack/mspack/oabd.c:346,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/oabd.c:350,1
    - Dst: copy_fh
      Src: /src/clamav/libclammspack/mspack/oabd.c:354,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/oabd.c:366,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/oabd.c:367,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/oabd.c:368,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/oabd.c:369,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/oabd.c:370,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 110
    argCount: 4
    argNames:
    - _self
    - input
    - base
    - output
    argTypes:
    - struct msoab_decompressor*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 373
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 373
    functionName: oabd_decompress_incremental
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 0
    functionsReached:
    - copy_fh
    - lzxd_decompress
    - struct mspack_system*::open
    - lzxd_init
    - lzxd_set_reference_data
    - lzxd_free
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    - EndGetI32
    - struct mspack_system*::read
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int oabd_decompress_incremental(struct msoab_decompressor *_self,\n
      \                                      const char *input, const char *base,\n
      \                                      const char *output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/oabd.c:384,1
    - Dst: struct mspack_system*::write
      Src: /src/clamav/libclammspack/mspack/oabd.c:387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - sys
    - infh
    - outfh
    - bytes_to_copy
    - buf
    - buf_size
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mspack_file*
    - size_t
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 393
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 393
    functionName: copy_fh
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 2
    functionsReached:
    - struct mspack_system*::write
    - struct mspack_system*::read
    linkageType: ''
    returnType: int
    signature: "int copy_fh(struct mspack_system *sys, struct mspack_file *infh,\n
      \                  struct mspack_file *outfh, size_t bytes_to_copy,\n                   unsigned
      char *buf, int buf_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - base
    - param
    - value
    argTypes:
    - struct msoab_decompressor*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: oabd_param
    functionSourceFile: /src/clamav/libclammspack/mspack/oabd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int oabd_param(struct msoab_decompressor *base, int param, int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_szdd_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/szddc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct msszdd_compressor
    signature: "struct msszdd_compressor *\n  mspack_create_szdd_compressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct msszdd_compressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_szdd_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/szddc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_szdd_compressor(struct msszdd_compressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_valid_system
      Src: /src/clamav/libclammspack/mspack/cabd.c:145,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 166
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 166
    functionName: mspack_create_cab_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 17
    functionsReached:
    - mspack_valid_system
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct mscab_decompressor
    signature: "struct mscab_decompressor *\n  mspack_create_cab_decompressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/cabd.c:178,1
    - Dst: cabd_free_decomp
      Src: /src/clamav/libclammspack/mspack/cabd.c:179,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:180,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct mscab_decompressor*
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: mspack_destroy_cab_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 17
    functionsReached:
    - struct mspack_system*::free
    - cabd_free_decomp
    - struct mspack_system*::close
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_cab_decompressor(struct mscab_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/cabd.c:204,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:205,1
    - Dst: cabd_read_headers
      Src: /src/clamav/libclammspack/mspack/cabd.c:207,1
    - Dst: cabd_close
      Src: /src/clamav/libclammspack/mspack/cabd.c:209,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/cabd.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - base
    - filename
    argTypes:
    - struct mscab_decompressor*
    - char*
    constantsTouched: []
    func_position:
      end: 223
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 223
    functionName: cabd_open
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - cabd_read_headers
    - struct mspack_system*::open
    - struct mspack_system*::alloc
    - cabd_close
    - struct mspack_system*::close
    linkageType: ''
    returnType: struct mscabd_cabinet
    signature: "struct mscabd_cabinet *cabd_open(struct mscab_decompressor *base,\n
      \                                       const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:249,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:250,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/cabd.c:259,1
    - Dst: cabd_free_decomp
      Src: /src/clamav/libclammspack/mspack/cabd.c:260,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:261,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:268,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:270,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:276,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:277,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:278,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:279,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:280,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:286,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:287,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:288,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:289,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:290,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:295,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 2
    argNames:
    - base
    - origcab
    argTypes:
    - struct mscab_decompressor*
    - struct mscabd_cabinet*
    constantsTouched: []
    func_position:
      end: 300
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 300
    functionName: cabd_close
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::free
    - cabd_free_decomp
    - struct mspack_system*::close
    linkageType: ''
    returnType: void
    signature: "void cabd_close(struct mscab_decompressor *base,\n                       struct
      mscabd_cabinet *origcab)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:330,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:335,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:340,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:345,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:346,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:347,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:350,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:352,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:357,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:359,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:365,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:369,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:372,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:375,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:380,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:385,1
    - Dst: cabd_read_string
      Src: /src/clamav/libclammspack/mspack/cabd.c:398,1
    - Dst: cabd_read_string
      Src: /src/clamav/libclammspack/mspack/cabd.c:400,1
    - Dst: cabd_read_string
      Src: /src/clamav/libclammspack/mspack/cabd.c:406,1
    - Dst: cabd_read_string
      Src: /src/clamav/libclammspack/mspack/cabd.c:408,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:414,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:418,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:423,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:427,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:428,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:432,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:444,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:448,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:453,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:454,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:455,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:458,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:467,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:500,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:506,1
    - Dst: cabd_read_string
      Src: /src/clamav/libclammspack/mspack/cabd.c:512,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:516,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:517,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:531,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 162
    argCount: 6
    argNames:
    - sys
    - fh
    - cab
    - offset
    - salvage
    - quiet
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mscabd_cabinet_p*
    - off_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 536
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 536
    functionName: cabd_read_headers
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - cabd_read_string
    - struct mspack_system*::message
    - struct mspack_system*::seek
    - EndGetI16
    - D
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    - EndGetI32
    - struct mspack_system*::read
    linkageType: ''
    returnType: int
    signature: "int cabd_read_headers(struct mspack_system *sys,\n                             struct
      mspack_file *fh,\n                             struct mscabd_cabinet_p *cab,\n
      \                            off_t offset, int salvage, int quiet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::tell
      Src: /src/clamav/libclammspack/mspack/cabd.c:542,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:547,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:565,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:570,1
    - Dst: struct mspack_system*::copy
      Src: /src/clamav/libclammspack/mspack/cabd.c:575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - sys
    - fh
    - permit_empty
    - error
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 578
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 578
    functionName: cabd_read_string
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::copy
    - struct mspack_system*::read
    - struct mspack_system*::tell
    - struct mspack_system*::alloc
    - struct mspack_system*::seek
    linkageType: ''
    returnType: char
    signature: "char *cabd_read_string(struct mspack_system *sys,\n                              struct
      mspack_file *fh, int permit_empty,\n                              int *error)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:605,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/cabd.c:612,1
    - Dst: mspack_sys_filelen
      Src: /src/clamav/libclammspack/mspack/cabd.c:613,1
    - Dst: cabd_find
      Src: /src/clamav/libclammspack/mspack/cabd.c:614,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:623,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:628,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/cabd.c:633,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:640,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - base
    - filename
    argTypes:
    - struct mscab_decompressor*
    - char*
    constantsTouched: []
    func_position:
      end: 643
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 643
    functionName: cabd_search
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::message
    - struct mspack_system*::open
    - mspack_sys_filelen
    - struct mspack_system*::free
    - cabd_find
    - struct mspack_system*::alloc
    - struct mspack_system*::close
    linkageType: ''
    returnType: struct mscabd_cabinet
    signature: "struct mscabd_cabinet *cabd_search(struct mscab_decompressor *base,\n
      \                                         const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:659,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:674,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:679,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:680,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:737,1
    - Dst: cabd_read_headers
      Src: /src/clamav/libclammspack/mspack/cabd.c:741,1
    - Dst: cabd_close
      Src: /src/clamav/libclammspack/mspack/cabd.c:743,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:761,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:770,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:786,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 105
    argCount: 7
    argNames:
    - self
    - buf
    - fh
    - filename
    - flen
    - firstlen
    - firstcab
    argTypes:
    - struct mscab_decompressor_p*
    - unsigned char*
    - struct mspack_file*
    - char*
    - off_t
    - off_t*
    - struct mscabd_cabinet_p**
    constantsTouched: []
    func_position:
      end: 790
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 790
    functionName: cabd_find
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::message
    - struct mspack_system*::seek
    - cabd_read_headers
    - cabd_close
    - D
    - struct mspack_system*::alloc
    - EndGetI32
    - struct mspack_system*::read
    linkageType: ''
    returnType: int
    signature: "int cabd_find(struct mscab_decompressor_p *self, unsigned char *buf,\n
      \                    struct mspack_file *fh, const char *filename, off_t flen,\n
      \                    off_t *firstlen, struct mscabd_cabinet_p **firstcab)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cabd_merge
      Src: /src/clamav/libclammspack/mspack/cabd.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - cab
    - prevcab
    argTypes:
    - struct mscab_decompressor*
    - struct mscabd_cabinet*
    - struct mscabd_cabinet*
    constantsTouched: []
    func_position:
      end: 805
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 805
    functionName: cabd_prepend
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - cabd_merge
    linkageType: ''
    returnType: int
    signature: "int cabd_prepend(struct mscab_decompressor *base,\n                        struct
      mscabd_cabinet *cab,\n                        struct mscabd_cabinet *prevcab)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cabd_merge
      Src: /src/clamav/libclammspack/mspack/cabd.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - cab
    - nextcab
    argTypes:
    - struct mscab_decompressor*
    - struct mscabd_cabinet*
    - struct mscabd_cabinet*
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: cabd_append
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - cabd_merge
    linkageType: ''
    returnType: int
    signature: "int cabd_append(struct mscab_decompressor *base,\n                        struct
      mscabd_cabinet *cab,\n                        struct mscabd_cabinet *nextcab)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:830,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:836,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:842,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:845,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:850,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:854,1
    - Dst: cabd_can_merge_folders
      Src: /src/clamav/libclammspack/mspack/cabd.c:880,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:885,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:916,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:930,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:931,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 3
    argNames:
    - base
    - lcab
    - rcab
    argTypes:
    - struct mscab_decompressor*
    - struct mscabd_cabinet*
    - struct mscabd_cabinet*
    constantsTouched: []
    func_position:
      end: 950
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 950
    functionName: cabd_merge
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 2
    functionsReached:
    - struct mspack_system*::message
    - cabd_can_merge_folders
    - D
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: int
    signature: "int cabd_merge(struct mscab_decompressor *base,\n                      struct
      mscabd_cabinet *lcab,\n                      struct mscabd_cabinet *rcab)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:962,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:968,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:973,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:998,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - sys
    - lfol
    - rfol
    argTypes:
    - struct mspack_system*
    - struct mscabd_folder_p*
    - struct mscabd_folder_p*
    constantsTouched: []
    func_position:
      end: 1002
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 1002
    functionName: cabd_can_merge_folders
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - D
    - struct mspack_system*::message
    linkageType: ''
    returnType: int
    signature: "int cabd_can_merge_folders(struct mspack_system *sys,\n                                  struct
      mscabd_folder_p *lfol,\n                                  struct mscabd_folder_p
      *rfol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:1045,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:1056,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:1064,1
    - Dst: cabd_free_decomp
      Src: /src/clamav/libclammspack/mspack/cabd.c:1081,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/cabd.c:1086,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/cabd.c:1088,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:1093,1
    - Dst: cabd_init_decomp
      Src: /src/clamav/libclammspack/mspack/cabd.c:1098,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/cabd.c:1115,1
    - Dst: struct mscab_decompressor_p*::d::decompress
      Src: /src/clamav/libclammspack/mspack/cabd.c:1132,1
    - Dst: struct mscab_decompressor_p*::d::decompress
      Src: /src/clamav/libclammspack/mspack/cabd.c:1139,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/cabd.c:1145,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 84
    argCount: 3
    argNames:
    - base
    - file
    - filename
    argTypes:
    - struct mscab_decompressor*
    - struct mscabd_file*
    - char*
    constantsTouched: []
    func_position:
      end: 1149
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1149
    functionName: cabd_extract
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::message
    - struct mscab_decompressor_p*::d::decompress
    - struct mspack_system*::open
    - cabd_free_decomp
    - struct mspack_system*::alloc
    - cabd_init_decomp
    - struct mspack_system*::seek
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int cabd_extract(struct mscab_decompressor *base,\n                        struct
      mscabd_file *file, const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: noned_init
      Src: /src/clamav/libclammspack/mspack/cabd.c:1170,1
    - Dst: mszipd_init
      Src: /src/clamav/libclammspack/mspack/cabd.c:1174,1
    - Dst: qtmd_init
      Src: /src/clamav/libclammspack/mspack/cabd.c:1179,1
    - Dst: lzxd_init
      Src: /src/clamav/libclammspack/mspack/cabd.c:1184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - ct
    argTypes:
    - struct mscab_decompressor_p*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1191
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1191
    functionName: cabd_init_decomp
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - lzxd_init
    - mszipd_init
    - qtmd_init
    - noned_init
    linkageType: ''
    returnType: int
    signature: int cabd_init_decomp(struct mscab_decompressor_p *self, unsigned int
      ct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: noned_free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1197,1
    - Dst: mszipd_free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1198,1
    - Dst: qtmd_free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1199,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mscab_decompressor_p*
    constantsTouched: []
    func_position:
      end: 1204
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1204
    functionName: cabd_free_decomp
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 3
    functionsReached:
    - mszipd_free
    - qtmd_free
    - lzxd_free
    - noned_free
    linkageType: ''
    returnType: void
    signature: void cabd_free_decomp(struct mscab_decompressor_p *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::copy
      Src: /src/clamav/libclammspack/mspack/cabd.c:1237,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:1251,1
    - Dst: cabd_sys_read_block
      Src: /src/clamav/libclammspack/mspack/cabd.c:1257,1
    - Dst: lzxd_set_output_length
      Src: /src/clamav/libclammspack/mspack/cabd.c:1274,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1280
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1280
    functionName: cabd_sys_read
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - lzxd_set_output_length
    - D
    - cabd_sys_read_block
    - struct mspack_system*::copy
    linkageType: ''
    returnType: int
    signature: int cabd_sys_read(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mscab_decompressor_p*::system::write
      Src: /src/clamav/libclammspack/mspack/cabd.c:1286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1289
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1289
    functionName: cabd_sys_write
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - struct mscab_decompressor_p*::system::write
    linkageType: ''
    returnType: int
    signature: int cabd_sys_write(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:1311,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:1317,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:1324,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:1327,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:1335,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/cabd.c:1336,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:1341,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:1346,1
    - Dst: cabd_checksum
      Src: /src/clamav/libclammspack/mspack/cabd.c:1348,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:1350,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/cabd.c:1363,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/cabd.c:1370,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/cabd.c:1375,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/cabd.c:1381,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/cabd.c:1388,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 5
    argNames:
    - sys
    - d
    - out
    - ignore_cksum
    - ignore_blocksize
    argTypes:
    - struct mspack_system*
    - struct mscabd_decompress_state*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1395
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1395
    functionName: cabd_sys_read_block
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - cabd_checksum
    - struct mspack_system*::message
    - struct mspack_system*::read
    - struct mspack_system*::open
    - EndGetI16
    - D
    - EndGetI32
    - struct mspack_system*::seek
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int cabd_sys_read_block(struct mspack_system *sys,\n                               struct
      mscabd_decompress_state *d,\n                               int *out, int ignore_cksum,\n
      \                              int ignore_blocksize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/cabd.c:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - data
    - bytes
    - cksum
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1414
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1414
    functionName: cabd_checksum
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - EndGetI32
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int cabd_checksum(unsigned char *data, unsigned int bytes,\n
      \                                 unsigned int cksum)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/cabd.c:1434,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1444,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - sys
    - in
    - out
    - bufsize
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mspack_file*
    - int
    constantsTouched: []
    func_position:
      end: 1449
      start: 1429
    functionDepth: 0
    functionLinenumber: 1429
    functionLinenumberEnd: 1449
    functionName: noned_init
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct noned_state
    signature: "struct noned_state *noned_init(struct mspack_system *sys,\n                                      struct
      mspack_file *in,\n                                      struct mspack_file *out,\n
      \                                     int bufsize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct noned_state*::sys::read
      Src: /src/clamav/libclammspack/mspack/cabd.c:1455,1
    - Dst: struct noned_state*::sys::write
      Src: /src/clamav/libclammspack/mspack/cabd.c:1456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - bytes
    argTypes:
    - struct noned_state*
    - off_t
    constantsTouched: []
    func_position:
      end: 1460
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1460
    functionName: noned_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached:
    - struct noned_state*::sys::write
    - struct noned_state*::sys::read
    linkageType: ''
    returnType: int
    signature: int noned_decompress(struct noned_state *s, off_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1466,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/cabd.c:1467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct noned_state*
    constantsTouched: []
    func_position:
      end: 1469
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1469
    functionName: noned_free
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void noned_free(struct noned_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - base
    - param
    - value
    argTypes:
    - struct mscab_decompressor*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1500
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1500
    functionName: cabd_param
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cabd_param(struct mscab_decompressor *base, int param, int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct mscab_decompressor*
    constantsTouched: []
    func_position:
      end: 1510
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1510
    functionName: cabd_error
    functionSourceFile: /src/clamav/libclammspack/mspack/cabd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cabd_error(struct mscab_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/readbits.h:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - BITS_TYPE*
    constantsTouched: []
    func_position:
      end: 214
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 214
    functionName: read_input
    functionSourceFile: /src/clamav/libclammspack/mspack/readbits.h
    functionUses: 0
    functionsReached:
    - D
    linkageType: ''
    returnType: int
    signature: int read_input(BITS_TYPE *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 4
    argNames:
    - nsyms
    - nbits
    - length
    - table
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned char*
    - unsigned short*
    constantsTouched: []
    func_position:
      end: 176
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 176
    functionName: make_decode_table
    functionSourceFile: /src/clamav/libclammspack/mspack/readhuff.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int make_decode_table(unsigned int nsyms, unsigned int nbits,\n                             unsigned
      char *length, unsigned short *table)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_oab_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/oabc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct msoab_compressor
    signature: "struct msoab_compressor *\n  mspack_create_oab_compressor(struct mspack_system
      *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct msoab_compressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_oab_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/oabc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_oab_compressor(struct msoab_compressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_lit_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/litc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mslit_compressor
    signature: "struct mslit_compressor *\n  mspack_create_lit_compressor(struct mspack_system
      *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mslit_compressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_lit_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/litc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_lit_compressor(struct mslit_compressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: mspack_create_cab_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/cabc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mscab_compressor
    signature: "struct mscab_compressor *\n  mspack_create_cab_compressor(struct mspack_system
      *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - self
    argTypes:
    - struct mscab_compressor*
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: mspack_destroy_cab_compressor
    functionSourceFile: /src/clamav/libclammspack/mspack/cabc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_cab_compressor(struct mscab_compressor *self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mspack_valid_system
      Src: /src/clamav/libclammspack/mspack/chmd.c:85,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - sys
    argTypes:
    - struct mspack_system*
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: mspack_create_chm_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 9
    functionsReached:
    - mspack_valid_system
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct mschm_decompressor
    signature: "struct mschm_decompressor *\n  mspack_create_chm_decompressor(struct
      mspack_system *sys)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:111,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/chmd.c:112,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:113,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct mschm_decompressor*
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: mspack_destroy_chm_decompressor
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 9
    functionsReached:
    - struct mspack_system*::free
    - lzxd_free
    - struct mspack_system*::close
    linkageType: ''
    returnType: void
    signature: void mspack_destroy_chm_decompressor(struct mschm_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chmd_real_open
      Src: /src/clamav/libclammspack/mspack/chmd.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - filename
    argTypes:
    - struct mschm_decompressor*
    - char*
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: chmd_open
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 0
    functionsReached:
    - chmd_real_open
    linkageType: ''
    returnType: struct mschmd_header
    signature: "struct mschmd_header *chmd_open(struct mschm_decompressor *base,\n
      \                                      const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chmd_real_open
      Src: /src/clamav/libclammspack/mspack/chmd.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - filename
    argTypes:
    - struct mschm_decompressor*
    - char*
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: chmd_fast_open
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 0
    functionsReached:
    - chmd_real_open
    linkageType: ''
    returnType: struct mschmd_header
    signature: "struct mschmd_header *chmd_fast_open(struct mschm_decompressor *base,\n
      \                                           const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/chmd.c:162,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:163,1
    - Dst: chmd_read_headers
      Src: /src/clamav/libclammspack/mspack/chmd.c:165,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:170,1
    - Dst: chmd_close
      Src: /src/clamav/libclammspack/mspack/chmd.c:174,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - base
    - filename
    - entire
    argTypes:
    - struct mschm_decompressor*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 189
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 189
    functionName: chmd_real_open
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 2
    functionsReached:
    - struct mspack_system*::message
    - chmd_close
    - struct mspack_system*::open
    - chmd_read_headers
    - struct mspack_system*::alloc
    - struct mspack_system*::close
    linkageType: ''
    returnType: struct mschmd_header
    signature: "struct mschmd_header *chmd_real_open(struct mschm_decompressor *base,\n
      \                                           const char *filename, int entire)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:212,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:216,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:221,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/chmd.c:222,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:223,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:229,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:230,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - base
    - chm
    argTypes:
    - struct mschm_decompressor*
    - struct mschmd_header*
    constantsTouched: []
    func_position:
      end: 234
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 234
    functionName: chmd_close
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::free
    - lzxd_free
    - struct mspack_system*::close
    linkageType: ''
    returnType: void
    signature: "void chmd_close(struct mschm_decompressor *base,\n                       struct
      mschmd_header *chm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:278,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:283,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/mspack/chmd.c:288,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:289,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:293,1
    - Dst: EndGetM32
      Src: /src/clamav/libclammspack/mspack/chmd.c:294,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:295,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:297,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:301,1
    - Dst: read_off64
      Src: /src/clamav/libclammspack/mspack/chmd.c:308,1
    - Dst: read_off64
      Src: /src/clamav/libclammspack/mspack/chmd.c:309,1
    - Dst: read_off64
      Src: /src/clamav/libclammspack/mspack/chmd.c:310,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/chmd.c:316,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:321,1
    - Dst: read_off64
      Src: /src/clamav/libclammspack/mspack/chmd.c:324,1
    - Dst: mspack_sys_filelen
      Src: /src/clamav/libclammspack/mspack/chmd.c:329,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:331,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:335,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/chmd.c:341,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:346,1
    - Dst: struct mspack_system*::tell
      Src: /src/clamav/libclammspack/mspack/chmd.c:350,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:351,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:352,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:353,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:354,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:355,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:356,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:357,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:366,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:373,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:377,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:386,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:390,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:394,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:400,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:403,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:406,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:410,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/chmd.c:422,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:428,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:436,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:437,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:442,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:444,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:445,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:447,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:450,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/chmd.c:455,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:460,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:463,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:464,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:465,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:479,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:483,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:484,1
    - Dst: struct mspack_system*::copy
      Src: /src/clamav/libclammspack/mspack/chmd.c:494,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/mspack/chmd.c:499,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/mspack/chmd.c:502,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/mspack/chmd.c:505,1
    - Dst: memcmp
      Src: /src/clamav/libclammspack/mspack/chmd.c:508,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:525,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:530,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 199
    argCount: 4
    argNames:
    - sys
    - fh
    - chm
    - entire
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mschmd_header*
    - int
    constantsTouched: []
    func_position:
      end: 532
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 532
    functionName: chmd_read_headers
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::message
    - struct mspack_system*::seek
    - read_encint
    - read_off64
    - D
    - struct mspack_system*::copy
    - mspack_sys_filelen
    - EndGetI16
    - struct mspack_system*::tell
    - memcmp
    - struct mspack_system*::free
    - EndGetM32
    - struct mspack_system*::alloc
    - EndGetI32
    - struct mspack_system*::read
    linkageType: ''
    returnType: int
    signature: "int chmd_read_headers(struct mspack_system *sys, struct mspack_file
      *fh,\n                             struct mschmd_header *chm, int entire)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclammspack/mspack/chmd.c:563,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/chmd.c:565,1
    - Dst: read_chunk
      Src: /src/clamav/libclammspack/mspack/chmd.c:573,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:574,1
    - Dst: search_chunk
      Src: /src/clamav/libclammspack/mspack/chmd.c:579,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:586,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:593,1
    - Dst: read_chunk
      Src: /src/clamav/libclammspack/mspack/chmd.c:595,1
    - Dst: search_chunk
      Src: /src/clamav/libclammspack/mspack/chmd.c:601,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:606,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:614,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:617,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:618,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:625,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:629,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 5
    argNames:
    - base
    - chm
    - filename
    - f_ptr
    - f_size
    argTypes:
    - struct mschm_decompressor*
    - struct mschmd_header*
    - char*
    - struct mschmd_file*
    - int
    constantsTouched: []
    func_position:
      end: 632
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 632
    functionName: chmd_fast_find
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 0
    functionsReached:
    - memset
    - read_encint
    - struct mspack_system*::open
    - read_chunk
    - D
    - search_chunk
    - EndGetI32
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int chmd_fast_find(struct mschm_decompressor *base,\n                          struct
      mschmd_header *chm, const char *filename,\n                          struct
      mschmd_file *f_ptr, int f_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:651,1
    - Dst: memset
      Src: /src/clamav/libclammspack/mspack/chmd.c:655,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:662,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/chmd.c:668,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:672,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:675,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:677,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:686,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - self
    - chm
    - fh
    - chunk_num
    argTypes:
    - struct mschm_decompressor_p*
    - struct mschmd_header*
    - struct mspack_file*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 692
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 692
    functionName: read_chunk
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - struct mspack_system*::seek
    - memset
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    - struct mspack_system*::read
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *read_chunk(struct mschm_decompressor_p *self,\n                                 struct
      mschmd_header *chm,\n                                 struct mspack_file *fh,\n
      \                                unsigned int chunk_num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclammspack/mspack/chmd.c:715,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:738,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/chmd.c:741,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:746,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:751,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:758,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/chmd.c:770,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:771,1
    - Dst: compare
      Src: /src/clamav/libclammspack/mspack/chmd.c:773,1
    - Dst: EndGetI16
      Src: /src/clamav/libclammspack/mspack/chmd.c:789,1
    - Dst: read_encint
      Src: /src/clamav/libclammspack/mspack/chmd.c:808,1
    - Dst: compare
      Src: /src/clamav/libclammspack/mspack/chmd.c:810,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:840,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 5
    argNames:
    - chm
    - chunk
    - filename
    - result
    - result_end
    argTypes:
    - struct mschmd_header*
    - unsigned char*
    - char*
    - unsigned char**
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 842
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 842
    functionName: search_chunk
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - read_encint
    - strlen
    - compare
    - EndGetI16
    - D
    - EndGetI32
    linkageType: ''
    returnType: int
    signature: "int search_chunk(struct mschmd_header *chm,\n                        const
      unsigned char *chunk,\n                        const char *filename,\n                        const
      unsigned char **result,\n                        const unsigned char **result_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_UTF8_CHAR
      Src: /src/clamav/libclammspack/mspack/chmd.c:884,1
    - Dst: GET_UTF8_CHAR
      Src: /src/clamav/libclammspack/mspack/chmd.c:885,1
    - Dst: TOLOWER
      Src: /src/clamav/libclammspack/mspack/chmd.c:887,1
    - Dst: TOLOWER
      Src: /src/clamav/libclammspack/mspack/chmd.c:888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - s1
    - s2
    - l1
    - l2
    argTypes:
    - char*
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 892
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 892
    functionName: compare
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 2
    functionsReached:
    - TOLOWER
    - GET_UTF8_CHAR
    linkageType: ''
    returnType: int
    signature: int compare(const char *s1, const char *s2, int l1, int l2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:916,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:929,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/chmd.c:930,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/chmd.c:934,1
    - Dst: struct mspack_system*::open
      Src: /src/clamav/libclammspack/mspack/chmd.c:939,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:945,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/chmd.c:954,1
    - Dst: struct mspack_system*::tell
      Src: /src/clamav/libclammspack/mspack/chmd.c:962,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:964,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:970,1
    - Dst: struct mspack_system*::write
      Src: /src/clamav/libclammspack/mspack/chmd.c:974,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/chmd.c:989,1
    - Dst: chmd_init_decomp
      Src: /src/clamav/libclammspack/mspack/chmd.c:992,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/chmd.c:1002,1
    - Dst: lzxd_decompress
      Src: /src/clamav/libclammspack/mspack/chmd.c:1010,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:1018,1
    - Dst: lzxd_decompress
      Src: /src/clamav/libclammspack/mspack/chmd.c:1023,1
    - Dst: struct mspack_system*::tell
      Src: /src/clamav/libclammspack/mspack/chmd.c:1028,1
    - Dst: lzxd_free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1032,1
    - Dst: struct mspack_system*::close
      Src: /src/clamav/libclammspack/mspack/chmd.c:1038,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 3
    argNames:
    - base
    - file
    - filename
    argTypes:
    - struct mschm_decompressor*
    - struct mschmd_file*
    - char*
    constantsTouched: []
    func_position:
      end: 1040
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 1040
    functionName: chmd_extract
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 0
    functionsReached:
    - struct mspack_system*::message
    - struct mspack_system*::write
    - lzxd_decompress
    - struct mspack_system*::read
    - struct mspack_system*::open
    - chmd_init_decomp
    - struct mspack_system*::tell
    - lzxd_free
    - struct mspack_system*::alloc
    - struct mspack_system*::seek
    - struct mspack_system*::close
    linkageType: ''
    returnType: int
    signature: "int chmd_extract(struct mschm_decompressor *base,\n                        struct
      mschmd_file *file, const char *filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mschm_decompressor_p*::system::write
      Src: /src/clamav/libclammspack/mspack/chmd.c:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1057
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1057
    functionName: chmd_sys_write
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 0
    functionsReached:
    - struct mschm_decompressor_p*::system::write
    linkageType: ''
    returnType: int
    signature: int chmd_sys_write(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find_sys_file
      Src: /src/clamav/libclammspack/mspack/chmd.c:1078,1
    - Dst: find_sys_file
      Src: /src/clamav/libclammspack/mspack/chmd.c:1082,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1087,1
    - Dst: read_sys_file
      Src: /src/clamav/libclammspack/mspack/chmd.c:1090,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1091,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1096,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1097,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1102,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1104,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1105,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1108,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1109,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1112,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1118,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1130,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1136,1
    - Dst: read_reset_table
      Src: /src/clamav/libclammspack/mspack/chmd.c:1146,1
    - Dst: read_spaninfo
      Src: /src/clamav/libclammspack/mspack/chmd.c:1158,1
    - Dst: lzxd_init
      Src: /src/clamav/libclammspack/mspack/chmd.c:1174,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - struct mschm_decompressor_p*
    - struct mschmd_file*
    constantsTouched: []
    func_position:
      end: 1180
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1180
    functionName: chmd_init_decomp
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - read_reset_table
    - read_spaninfo
    - lzxd_init
    - read_sys_file
    - D
    - struct mspack_system*::free
    - EndGetI32
    - find_sys_file
    linkageType: ''
    returnType: int
    signature: "int chmd_init_decomp(struct mschm_decompressor_p *self,\n                            struct
      mschmd_file *file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1204,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1208,1
    - Dst: read_sys_file
      Src: /src/clamav/libclammspack/mspack/chmd.c:1212,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1213,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1218,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1219,1
    - Dst: read_off64
      Src: /src/clamav/libclammspack/mspack/chmd.c:1225,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1226,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1230,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1231,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1234,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1239,1
    - Dst: read_off64
      Src: /src/clamav/libclammspack/mspack/chmd.c:1243,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1246,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1252,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1257,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 5
    argNames:
    - self
    - sec
    - entry
    - length_ptr
    - offset_ptr
    argTypes:
    - struct mschm_decompressor_p*
    - struct mschmd_sec_mscompressed*
    - unsigned int
    - off_t*
    - off_t*
    constantsTouched: []
    func_position:
      end: 1261
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1261
    functionName: read_reset_table
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - read_off64
    - read_sys_file
    - D
    - struct mspack_system*::free
    - EndGetI32
    linkageType: ''
    returnType: int
    signature: "int read_reset_table(struct mschm_decompressor_p *self,\n                            struct
      mschmd_sec_mscompressed *sec,\n                            unsigned int entry,\n
      \                           off_t *length_ptr, off_t *offset_ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1282,1
    - Dst: read_sys_file
      Src: /src/clamav/libclammspack/mspack/chmd.c:1293,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1294,1
    - Dst: read_off64
      Src: /src/clamav/libclammspack/mspack/chmd.c:1299,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1300,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/chmd.c:1304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - self
    - sec
    - length_ptr
    argTypes:
    - struct mschm_decompressor_p*
    - struct mschmd_sec_mscompressed*
    - off_t*
    constantsTouched: []
    func_position:
      end: 1309
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1309
    functionName: read_spaninfo
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - D
    - struct mspack_system*::free
    - read_off64
    - read_sys_file
    linkageType: ''
    returnType: int
    signature: "int read_spaninfo(struct mschm_decompressor_p *self,\n                         struct
      mschmd_sec_mscompressed *sec,\n                         off_t *length_ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chmd_fast_find
      Src: /src/clamav/libclammspack/mspack/chmd.c:1330,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:1336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - sec
    - f_ptr
    - name
    argTypes:
    - struct mschm_decompressor_p*
    - struct mschmd_sec_mscompressed*
    - struct mschmd_file**
    - char*
    constantsTouched: []
    func_position:
      end: 1348
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1348
    functionName: find_sys_file
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 1
    functionsReached:
    - chmd_fast_find
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: int
    signature: "int find_sys_file(struct mschm_decompressor_p *self,\n                         struct
      mschmd_sec_mscompressed *sec,\n                         struct mschmd_file **f_ptr,
      const char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/chmd.c:1370,1
    - Dst: struct mspack_system*::seek
      Src: /src/clamav/libclammspack/mspack/chmd.c:1374,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1378,1
    - Dst: struct mspack_system*::read
      Src: /src/clamav/libclammspack/mspack/chmd.c:1381,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/chmd.c:1383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - struct mschm_decompressor_p*
    - struct mschmd_file*
    constantsTouched: []
    func_position:
      end: 1387
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1387
    functionName: read_sys_file
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 3
    functionsReached:
    - struct mspack_system*::read
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    - struct mspack_system*::seek
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *read_sys_file(struct mschm_decompressor_p *self,\n
      \                                   struct mschmd_file *file)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct mschm_decompressor*
    constantsTouched: []
    func_position:
      end: 1397
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1397
    functionName: chmd_error
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int chmd_error(struct mschm_decompressor *base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EndGetI64
      Src: /src/clamav/libclammspack/mspack/chmd.c:1411,1
    - Dst: struct mspack_system*::message
      Src: /src/clamav/libclammspack/mspack/chmd.c:1414,1
    - Dst: EndGetI32
      Src: /src/clamav/libclammspack/mspack/chmd.c:1417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - var
    - mem
    - sys
    - fh
    argTypes:
    - off_t*
    - unsigned char*
    - struct mspack_system*
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 1420
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1420
    functionName: read_off64
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 3
    functionsReached:
    - struct mspack_system*::message
    - EndGetI32
    - EndGetI64
    linkageType: ''
    returnType: int
    signature: "int read_off64(off_t *var, unsigned char *mem,\n                      struct
      mspack_system *sys, struct mspack_file *fh)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - p
    - end
    - err
    argTypes:
    - unsigned char**
    - unsigned char*
    - int*
    constantsTouched: []
    func_position:
      end: 1457
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1457
    functionName: read_encint
    functionSourceFile: /src/clamav/libclammspack/mspack/chmd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: off_t
    signature: "off_t read_encint(const unsigned char **p, const unsigned char *end,\n
      \                        int *err)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:104,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:105,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:106,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:111,1
    - Dst: make_decode_table
      Src: /src/clamav/libclammspack/mspack/mszipd.c:115,1
    - Dst: ENSURE_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:122,1
    - Dst: PEEK_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:123,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:124,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:129,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:130,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:131,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/mszipd.c:132,1
    - Dst: struct mszipd_stream*::sys::copy
      Src: /src/clamav/libclammspack/mspack/mszipd.c:142,1
    - Dst: struct mszipd_stream*::sys::copy
      Src: /src/clamav/libclammspack/mspack/mszipd.c:146,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 1
    argNames:
    - zip
    argTypes:
    - struct mszipd_stream*
    constantsTouched: []
    func_position:
      end: 151
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 151
    functionName: zip_read_lens
    functionSourceFile: /src/clamav/libclammspack/mspack/mszipd.c
    functionUses: 0
    functionsReached:
    - make_decode_table
    - REMOVE_BITS
    - PEEK_BITS
    - struct mszipd_stream*::sys::copy
    - READ_BITS
    - D
    - ENSURE_BITS
    linkageType: ''
    returnType: int
    signature: int zip_read_lens(struct mszipd_stream *zip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:163,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:166,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:173,1
    - Dst: PEEK_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:178,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:179,1
    - Dst: struct mszipd_stream*::sys::copy
      Src: /src/clamav/libclammspack/mspack/mszipd.c:201,1
    - Dst: zip_read_lens
      Src: /src/clamav/libclammspack/mspack/mszipd.c:224,1
    - Dst: make_decode_table
      Src: /src/clamav/libclammspack/mspack/mszipd.c:230,1
    - Dst: make_decode_table
      Src: /src/clamav/libclammspack/mspack/mszipd.c:236,1
    - Dst: READ_HUFFSYM
      Src: /src/clamav/libclammspack/mspack/mszipd.c:244,1
    - Dst: READ_BITS_T
      Src: /src/clamav/libclammspack/mspack/mszipd.c:256,1
    - Dst: READ_HUFFSYM
      Src: /src/clamav/libclammspack/mspack/mszipd.c:259,1
    - Dst: READ_BITS_T
      Src: /src/clamav/libclammspack/mspack/mszipd.c:261,1
    - Dst: struct mszipd_stream*::flush_window
      Src: /src/clamav/libclammspack/mspack/mszipd.c:310,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 121
    argCount: 1
    argNames:
    - zip
    argTypes:
    - struct mszipd_stream*
    constantsTouched: []
    func_position:
      end: 316
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 316
    functionName: inflate
    functionSourceFile: /src/clamav/libclammspack/mspack/mszipd.c
    functionUses: 0
    functionsReached:
    - make_decode_table
    - READ_HUFFSYM
    - REMOVE_BITS
    - PEEK_BITS
    - struct mszipd_stream*::sys::copy
    - struct mszipd_stream*::flush_window
    - READ_BITS
    - READ_BITS_T
    - zip_read_lens
    linkageType: ''
    returnType: int
    signature: int inflate(struct mszipd_stream *zip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/mszipd.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - zip
    - data_flushed
    argTypes:
    - struct mszipd_stream*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: mszipd_flush_window
    functionSourceFile: /src/clamav/libclammspack/mspack/mszipd.c
    functionUses: 0
    functionsReached:
    - D
    linkageType: ''
    returnType: int
    signature: "int mszipd_flush_window(struct mszipd_stream *zip,\n                               unsigned
      int data_flushed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/mszipd.c:350,1
    - Dst: struct mspack_system*::alloc
      Src: /src/clamav/libclammspack/mspack/mszipd.c:355,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/mszipd.c:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - system
    - input
    - output
    - input_buffer_size
    - repair_mode
    argTypes:
    - struct mspack_system*
    - struct mspack_file*
    - struct mspack_file*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 375
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 375
    functionName: mszipd_init
    functionSourceFile: /src/clamav/libclammspack/mspack/mszipd.c
    functionUses: 2
    functionsReached:
    - struct mspack_system*::free
    - struct mspack_system*::alloc
    linkageType: ''
    returnType: struct mszipd_stream
    signature: "struct mszipd_stream *mszipd_init(struct mspack_system *system,\n
      \                                 struct mspack_file *input,\n                                  struct
      mspack_file *output,\n                                  int input_buffer_size,\n
      \                                 int repair_mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mszipd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/mszipd.c:393,1
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:407,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:410,1
    - Dst: inflate
      Src: /src/clamav/libclammspack/mspack/mszipd.c:420,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/mszipd.c:421,1
    - Dst: struct mszipd_stream*::flush_window
      Src: /src/clamav/libclammspack/mspack/mszipd.c:425,1
    - Dst: struct mszipd_stream*::sys::message
      Src: /src/clamav/libclammspack/mspack/mszipd.c:427,1
    - Dst: struct mszipd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/mszipd.c:444,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/mszipd.c:456,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - zip
    - out_bytes
    argTypes:
    - struct mszipd_stream*
    - off_t
    constantsTouched: []
    func_position:
      end: 460
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 460
    functionName: mszipd_decompress
    functionSourceFile: /src/clamav/libclammspack/mspack/mszipd.c
    functionUses: 0
    functionsReached:
    - REMOVE_BITS
    - struct mszipd_stream*::sys::write
    - struct mszipd_stream*::flush_window
    - READ_BITS
    - struct mszipd_stream*::sys::message
    - inflate
    - D
    linkageType: ''
    returnType: int
    signature: int mszipd_decompress(struct mszipd_stream *zip, off_t out_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REMOVE_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:471,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:472,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:473,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:478,1
    - Dst: READ_BITS
      Src: /src/clamav/libclammspack/mspack/mszipd.c:479,1
    - Dst: inflate
      Src: /src/clamav/libclammspack/mspack/mszipd.c:485,1
    - Dst: D
      Src: /src/clamav/libclammspack/mspack/mszipd.c:486,1
    - Dst: struct mszipd_stream*::sys::write
      Src: /src/clamav/libclammspack/mspack/mszipd.c:491,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - zip
    argTypes:
    - struct mszipd_stream*
    constantsTouched: []
    func_position:
      end: 495
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 495
    functionName: mszipd_decompress_kwaj
    functionSourceFile: /src/clamav/libclammspack/mspack/mszipd.c
    functionUses: 1
    functionsReached:
    - REMOVE_BITS
    - struct mszipd_stream*::sys::write
    - READ_BITS
    - inflate
    - D
    linkageType: ''
    returnType: int
    signature: int mszipd_decompress_kwaj(struct mszipd_stream *zip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/mszipd.c:501,1
    - Dst: struct mspack_system*::free
      Src: /src/clamav/libclammspack/mspack/mszipd.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - zip
    argTypes:
    - struct mszipd_stream*
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: mszipd_free
    functionSourceFile: /src/clamav/libclammspack/mspack/mszipd.c
    functionUses: 2
    functionsReached:
    - struct mspack_system*::free
    linkageType: ''
    returnType: void
    signature: void mszipd_free(struct mszipd_stream *zip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - struct mspack_system*
    - size_t
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: mem_alloc
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *mem_alloc(struct mspack_system *self, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: mem_free
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mem_free(void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - dest
    - bytes
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: mem_copy
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mem_copy(void *src, void *dest, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - format
    argTypes:
    - struct mem_file*
    - char*
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: mem_msg
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mem_msg(struct mem_file *file, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_alloc
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - self
    - fn
    - mode
    argTypes:
    - struct mspack_system*
    - struct mem_buf*
    - int
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: mem_open
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - mem_alloc
    linkageType: ''
    returnType: struct mem_file
    signature: "struct mem_file *mem_open(struct mspack_system *self,\n                                 struct
      mem_buf *fn, int mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_free
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fh
    argTypes:
    - struct mem_file*
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mem_close
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - mem_free
    linkageType: ''
    returnType: void
    signature: void mem_close(struct mem_file *fh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_copy
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - fh
    - buffer
    - bytes
    argTypes:
    - struct mem_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: mem_read
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - mem_copy
    linkageType: ''
    returnType: int
    signature: int mem_read(struct mem_file *fh, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem_copy
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - fh
    - buffer
    - bytes
    argTypes:
    - struct mem_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: mem_write
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - mem_copy
    linkageType: ''
    returnType: int
    signature: int mem_write(struct mem_file *fh, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - fh
    - offset
    - mode
    argTypes:
    - struct mem_file*
    - off_t
    - int
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: mem_seek
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mem_seek(struct mem_file *fh, off_t offset, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fh
    argTypes:
    - struct mem_file*
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: mem_tell
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: off_t
    signature: off_t mem_tell(struct mem_file *fh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:140,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:144,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:147,1
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:152,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:156,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:157,1
    - Dst: printf
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:161,1
    - Dst: fwrite
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:162,1
    - Dst: free
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:165,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:167,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:170,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:170,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:172,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/cabd_memory.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 179
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/examples/cabd_memory.c
    functionUses: 0
    functionsReached:
    - fwrite
    - exit
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - struct mscab_decompressor*::extract
    - printf
    - mspack_create_cab_decompressor
    - fprintf
    - mspack_destroy_cab_decompressor
    - MSPACK_SYS_SELFTEST
    - struct mscab_decompressor*::last_error
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/msexpand.c:19,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/examples/msexpand.c:24,1
    - Dst: mspack_create_szdd_decompressor
      Src: /src/clamav/libclammspack/examples/msexpand.c:27,1
    - Dst: mspack_create_kwaj_decompressor
      Src: /src/clamav/libclammspack/examples/msexpand.c:28,1
    - Dst: struct msszdd_decompressor*::decompress
      Src: /src/clamav/libclammspack/examples/msexpand.c:31,1
    - Dst: struct mskwaj_decompressor*::decompress
      Src: /src/clamav/libclammspack/examples/msexpand.c:34,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/msexpand.c:37,1
    - Dst: error_msg
      Src: /src/clamav/libclammspack/examples/msexpand.c:37,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/msexpand.c:41,1
    - Dst: mspack_destroy_szdd_decompressor
      Src: /src/clamav/libclammspack/examples/msexpand.c:45,1
    - Dst: mspack_destroy_kwaj_decompressor
      Src: /src/clamav/libclammspack/examples/msexpand.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 48
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/examples/msexpand.c
    functionUses: 0
    functionsReached:
    - struct mskwaj_decompressor*::decompress
    - struct msszdd_decompressor*::decompress
    - mspack_destroy_kwaj_decompressor
    - mspack_create_szdd_decompressor
    - mspack_destroy_szdd_decompressor
    - fprintf
    - MSPACK_SYS_SELFTEST
    - error_msg
    - mspack_create_kwaj_decompressor
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/clamav/libclammspack/examples/oabextract.c:16,1
    - Dst: setbuf
      Src: /src/clamav/libclammspack/examples/oabextract.c:17,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/examples/oabextract.c:19,1
    - Dst: mspack_create_oab_decompressor
      Src: /src/clamav/libclammspack/examples/oabextract.c:22,1
    - Dst: struct msoab_decompressor*::decompress
      Src: /src/clamav/libclammspack/examples/oabextract.c:24,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/oabextract.c:25,1
    - Dst: error_msg
      Src: /src/clamav/libclammspack/examples/oabextract.c:25,1
    - Dst: struct msoab_decompressor*::decompress_incremental
      Src: /src/clamav/libclammspack/examples/oabextract.c:28,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/oabextract.c:29,1
    - Dst: error_msg
      Src: /src/clamav/libclammspack/examples/oabextract.c:29,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/oabextract.c:32,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/oabextract.c:33,1
    - Dst: mspack_destroy_oab_decompressor
      Src: /src/clamav/libclammspack/examples/oabextract.c:35,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/oabextract.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 41
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 41
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/examples/oabextract.c
    functionUses: 0
    functionsReached:
    - struct msoab_decompressor*::decompress_incremental
    - struct msoab_decompressor*::decompress
    - setbuf
    - fprintf
    - MSPACK_SYS_SELFTEST
    - mspack_destroy_oab_decompressor
    - mspack_create_oab_decompressor
    - error_msg
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/multifh.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - struct mspack_system*
    - size_t
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: m_alloc
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 1
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *m_alloc(struct mspack_system *self, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclammspack/examples/multifh.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: m_free
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void m_free(void *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclammspack/examples/multifh.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - dest
    - bytes
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: m_copy
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void m_copy(void *src, void *dest, size_t bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/multifh.c:67,1
    - Dst: va_start
      Src: /src/clamav/libclammspack/examples/multifh.c:69,1
    - Dst: vfprintf
      Src: /src/clamav/libclammspack/examples/multifh.c:70,1
    - Dst: va_end
      Src: /src/clamav/libclammspack/examples/multifh.c:71,1
    - Dst: fputc
      Src: /src/clamav/libclammspack/examples/multifh.c:72,1
    - Dst: fflush
      Src: /src/clamav/libclammspack/examples/multifh.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - file
    - format
    argTypes:
    - struct m_file*
    - char*
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: m_msg
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - fflush
    - fprintf
    - fputc
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void m_msg(struct m_file *file, const char *format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_alloc
      Src: /src/clamav/libclammspack/examples/multifh.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - fn
    - mode
    argTypes:
    - struct mspack_system*
    - struct m_filename*
    - int
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: m_open_mem
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - m_alloc
    linkageType: ''
    returnType: struct m_file
    signature: "struct m_file *m_open_mem(struct mspack_system *self,\n                                 struct
      m_filename *fn, int mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_alloc
      Src: /src/clamav/libclammspack/examples/multifh.c:117,1
    - Dst: fopen
      Src: /src/clamav/libclammspack/examples/multifh.c:122,1
    - Dst: fileno
      Src: /src/clamav/libclammspack/examples/multifh.c:126,1
    - Dst: fdopen
      Src: /src/clamav/libclammspack/examples/multifh.c:127,1
    - Dst: fdopen
      Src: /src/clamav/libclammspack/examples/multifh.c:131,1
    - Dst: free
      Src: /src/clamav/libclammspack/examples/multifh.c:140,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - self
    - fn
    - mode
    argTypes:
    - struct mspack_system*
    - struct m_filename*
    - int
    constantsTouched: []
    func_position:
      end: 145
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 145
    functionName: m_open_file
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - m_alloc
    - fileno
    - fdopen
    - free
    - fopen
    linkageType: ''
    returnType: struct m_file
    signature: "struct m_file *m_open_file(struct mspack_system *self,\n                                  struct
      m_filename *fn, int mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_open_file
      Src: /src/clamav/libclammspack/examples/multifh.c:156,1
    - Dst: m_open_mem
      Src: /src/clamav/libclammspack/examples/multifh.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - fn
    - mode
    argTypes:
    - struct mspack_system*
    - struct m_filename*
    - int
    constantsTouched: []
    func_position:
      end: 162
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 162
    functionName: m_open
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - m_open_mem
    - m_open_file
    linkageType: ''
    returnType: struct m_file
    signature: "struct m_file *m_open(struct mspack_system *self,\n                             struct
      m_filename *fn, int mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/clamav/libclammspack/examples/multifh.c:166,1
    - Dst: m_free
      Src: /src/clamav/libclammspack/examples/multifh.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - fh
    argTypes:
    - struct m_file*
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: m_close
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - fclose
    - m_free
    linkageType: ''
    returnType: void
    signature: void m_close(struct m_file *fh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_copy
      Src: /src/clamav/libclammspack/examples/multifh.c:178,1
    - Dst: ferror
      Src: /src/clamav/libclammspack/examples/multifh.c:185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - fh
    - buffer
    - bytes
    argTypes:
    - struct m_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 188
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 188
    functionName: m_read
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - m_copy
    - ferror
    linkageType: ''
    returnType: int
    signature: int m_read(struct m_file *fh, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: m_copy
      Src: /src/clamav/libclammspack/examples/multifh.c:198,1
    - Dst: ferror
      Src: /src/clamav/libclammspack/examples/multifh.c:205,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - fh
    - buffer
    - bytes
    argTypes:
    - struct m_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 208
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 208
    functionName: m_write
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - m_copy
    - ferror
    linkageType: ''
    returnType: int
    signature: int m_write(struct m_file *fh, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fseeko
      Src: /src/clamav/libclammspack/examples/multifh.c:242,1
    - Dst: fseek
      Src: /src/clamav/libclammspack/examples/multifh.c:244,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - fh
    - offset
    - mode
    argTypes:
    - struct m_file*
    - off_t
    - int
    constantsTouched: []
    func_position:
      end: 246
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 246
    functionName: m_seek
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - fseek
    - fseeko
    linkageType: ''
    returnType: int
    signature: int m_seek(struct m_file *fh, off_t offset, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ftello
      Src: /src/clamav/libclammspack/examples/multifh.c:255,1
    - Dst: ftell
      Src: /src/clamav/libclammspack/examples/multifh.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fh
    argTypes:
    - struct m_file*
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: m_tell
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - ftell
    - ftello
    linkageType: ''
    returnType: off_t
    signature: off_t m_tell(struct m_file *fh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/multifh.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: create_filename
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: char
    signature: char *create_filename(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/multifh.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fh
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 303
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 303
    functionName: create_filename_from_handle
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: char
    signature: char *create_filename_from_handle(FILE *fh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/multifh.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: create_filename_from_descriptor
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: char
    signature: char *create_filename_from_descriptor(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/multifh.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: create_filename_from_memory
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: char
    signature: char *create_filename_from_memory(void *data, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - filename
    - name
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: set_filename_printable_name
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_filename_printable_name(const char *filename, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclammspack/examples/multifh.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: free_filename
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_filename(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_filename_from_memory
      Src: /src/clamav/libclammspack/examples/multifh.c:376,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:377,1
    - Dst: create_filename_from_descriptor
      Src: /src/clamav/libclammspack/examples/multifh.c:379,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:380,1
    - Dst: create_filename_from_handle
      Src: /src/clamav/libclammspack/examples/multifh.c:382,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:383,1
    - Dst: create_filename
      Src: /src/clamav/libclammspack/examples/multifh.c:385,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:386,1
    - Dst: set_filename_printable_name
      Src: /src/clamav/libclammspack/examples/multifh.c:388,1
    - Dst: set_filename_printable_name
      Src: /src/clamav/libclammspack/examples/multifh.c:389,1
    - Dst: set_filename_printable_name
      Src: /src/clamav/libclammspack/examples/multifh.c:390,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/examples/multifh.c:393,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:394,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/examples/multifh.c:397,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclammspack/examples/multifh.c:400,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/examples/multifh.c:404,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:405,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/examples/multifh.c:410,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:411,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclammspack/examples/multifh.c:414,1
    - Dst: exit
      Src: /src/clamav/libclammspack/examples/multifh.c:415,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/examples/multifh.c:417,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/multifh.c:420,1
    - Dst: struct mscab_decompressor*::last_error
      Src: /src/clamav/libclammspack/examples/multifh.c:420,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/examples/multifh.c:422,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/multifh.c:425,1
    - Dst: free_filename
      Src: /src/clamav/libclammspack/examples/multifh.c:428,1
    - Dst: free_filename
      Src: /src/clamav/libclammspack/examples/multifh.c:429,1
    - Dst: free_filename
      Src: /src/clamav/libclammspack/examples/multifh.c:430,1
    - Dst: free_filename
      Src: /src/clamav/libclammspack/examples/multifh.c:431,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 435
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/examples/multifh.c
    functionUses: 0
    functionsReached:
    - create_filename_from_handle
    - create_filename_from_descriptor
    - create_filename_from_memory
    - struct mscab_decompressor*::close
    - exit
    - struct mscab_decompressor*::open
    - struct mscab_decompressor*::extract
    - fprintf
    - mspack_create_cab_decompressor
    - set_filename_printable_name
    - MSPACK_SYS_SELFTEST
    - create_filename
    - mspack_destroy_cab_decompressor
    - free_filename
    - struct mscab_decompressor*::last_error
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclammspack/examples/cabrip.c:26,1
    - Dst: stat
      Src: /src/clamav/libclammspack/examples/cabrip.c:27,1
    - Dst: printf
      Src: /src/clamav/libclammspack/examples/cabrip.c:29,1
    - Dst: fopen
      Src: /src/clamav/libclammspack/examples/cabrip.c:32,1
    - Dst: perror
      Src: /src/clamav/libclammspack/examples/cabrip.c:33,1
    - Dst: fopen
      Src: /src/clamav/libclammspack/examples/cabrip.c:36,1
    - Dst: perror
      Src: /src/clamav/libclammspack/examples/cabrip.c:37,1
    - Dst: fseek
      Src: /src/clamav/libclammspack/examples/cabrip.c:40,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/cabrip.c:41,1
    - Dst: fprintf
      Src: /src/clamav/libclammspack/examples/cabrip.c:48,1
    - Dst: fwrite
      Src: /src/clamav/libclammspack/examples/cabrip.c:52,1
    - Dst: perror
      Src: /src/clamav/libclammspack/examples/cabrip.c:53,1
    - Dst: fclose
      Src: /src/clamav/libclammspack/examples/cabrip.c:60,1
    - Dst: fclose
      Src: /src/clamav/libclammspack/examples/cabrip.c:61,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - fname
    - offset
    - length
    argTypes:
    - char*
    - off_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 62
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 62
    functionName: rip
    functionSourceFile: /src/clamav/libclammspack/examples/cabrip.c
    functionUses: 0
    functionsReached:
    - fseek
    - perror
    - snprintf
    - fwrite
    - printf
    - fprintf
    - stat
    - fclose
    - fopen
    linkageType: ''
    returnType: void
    signature: void rip(char *fname, off_t offset, unsigned int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/examples/cabrip.c:69,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclammspack/examples/cabrip.c:72,1
    - Dst: struct mscab_decompressor*::set_param
      Src: /src/clamav/libclammspack/examples/cabrip.c:73,1
    - Dst: struct mscab_decompressor*::search
      Src: /src/clamav/libclammspack/examples/cabrip.c:75,1
    - Dst: rip
      Src: /src/clamav/libclammspack/examples/cabrip.c:77,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclammspack/examples/cabrip.c:79,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclammspack/examples/cabrip.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/examples/cabrip.c
    functionUses: 0
    functionsReached:
    - struct mscab_decompressor*::close
    - mspack_create_cab_decompressor
    - mspack_destroy_cab_decompressor
    - MSPACK_SYS_SELFTEST
    - rip
    - struct mscab_decompressor*::set_param
    - struct mscab_decompressor*::search
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/clamav/libclammspack/examples/chmextract.c:43,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclammspack/examples/chmextract.c:43,1
    - Dst: mkdir
      Src: /src/clamav/libclammspack/examples/chmextract.c:44,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: ensure_filepath
    functionSourceFile: /src/clamav/libclammspack/examples/chmextract.c
    functionUses: 0
    functionsReached:
    - stat
    - S_ISDIR
    - mkdir
    linkageType: ''
    returnType: int
    signature: int ensure_filepath(char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclammspack/examples/chmextract.c:53,1
    - Dst: strlen
      Src: /src/clamav/libclammspack/examples/chmextract.c:53,1
    - Dst: strcpy
      Src: /src/clamav/libclammspack/examples/chmextract.c:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: create_output_name
    functionSourceFile: /src/clamav/libclammspack/examples/chmextract.c
    functionUses: 0
    functionsReached:
    - strlen
    - malloc
    - strcpy
    linkageType: ''
    returnType: char
    signature: char *create_output_name(char *fname)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: sortfunc
    functionSourceFile: /src/clamav/libclammspack/examples/chmextract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sortfunc(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/clamav/libclammspack/examples/chmextract.c:82,1
    - Dst: setbuf
      Src: /src/clamav/libclammspack/examples/chmextract.c:83,1
    - Dst: umask
      Src: /src/clamav/libclammspack/examples/chmextract.c:84,1
    - Dst: umask
      Src: /src/clamav/libclammspack/examples/chmextract.c:84,1
    - Dst: MSPACK_SYS_SELFTEST
      Src: /src/clamav/libclammspack/examples/chmextract.c:86,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclammspack/examples/chmextract.c:89,1
    - Dst: printf
      Src: /src/clamav/libclammspack/examples/chmextract.c:91,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclammspack/examples/chmextract.c:92,1
    - Dst: calloc
      Src: /src/clamav/libclammspack/examples/chmextract.c:96,1
    - Dst: qsort
      Src: /src/clamav/libclammspack/examples/chmextract.c:98,1
    - Dst: printf
      Src: /src/clamav/libclammspack/examples/chmextract.c:102,1
    - Dst: ensure_filepath
      Src: /src/clamav/libclammspack/examples/chmextract.c:103,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclammspack/examples/chmextract.c:104,1
    - Dst: printf
      Src: /src/clamav/libclammspack/examples/chmextract.c:105,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/examples/chmextract.c:106,1
    - Dst: free
      Src: /src/clamav/libclammspack/examples/chmextract.c:108,1
    - Dst: free
      Src: /src/clamav/libclammspack/examples/chmextract.c:110,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclammspack/examples/chmextract.c:112,1
    - Dst: printf
      Src: /src/clamav/libclammspack/examples/chmextract.c:115,1
    - Dst: ERROR
      Src: /src/clamav/libclammspack/examples/chmextract.c:115,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclammspack/examples/chmextract.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 121
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/clamav/libclammspack/examples/chmextract.c
    functionUses: 0
    functionsReached:
    - struct mschm_decompressor*::open
    - calloc
    - mspack_destroy_chm_decompressor
    - setbuf
    - ERROR
    - printf
    - struct mschm_decompressor*::extract
    - qsort
    - MSPACK_SYS_SELFTEST
    - ensure_filepath
    - umask
    - struct mschm_decompressor*::close
    - free
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamdscan/client.c:88,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:91,1
    - Dst: memset
      Src: /src/clamav/clamdscan/client.c:92,1
    - Dst: strncpy
      Src: /src/clamav/clamdscan/client.c:94,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:99,1
    - Dst: snprintf
      Src: /src/clamav/clamdscan/client.c:102,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:102,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:104,1
    - Dst: strcmp
      Src: /src/clamav/clamdscan/client.c:108,1
    - Dst: memset
      Src: /src/clamav/clamdscan/client.c:110,1
    - Dst: getaddrinfo
      Src: /src/clamav/clamdscan/client.c:115,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:116,1
    - Dst: gai_strerror
      Src: /src/clamav/clamdscan/client.c:116,1
    - Dst: socket
      Src: /src/clamav/clamdscan/client.c:122,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:123,1
    - Dst: strerror
      Src: /src/clamav/clamdscan/client.c:123,1
    - Dst: htons
      Src: /src/clamav/clamdscan/client.c:129,1
    - Dst: htons
      Src: /src/clamav/clamdscan/client.c:132,1
    - Dst: bind
      Src: /src/clamav/clamdscan/client.c:138,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:145,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamdscan/client.c:146,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:150,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamdscan/client.c:151,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:155,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamdscan/client.c:158,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 164
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 164
    functionName: isremote
    functionSourceFile: /src/clamav/clamdscan/client.c
    functionUses: 0
    functionsReached:
    - memset
    - snprintf
    - htons
    - strcmp
    - strerror
    - UNUSEDPARAM
    - bind
    - strncpy
    - getaddrinfo
    - optget
    - logg
    - closesocket
    - socket
    - freeaddrinfo
    - gai_strerror
    linkageType: ''
    returnType: int
    signature: int isremote(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:183,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:189,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/clamdscan/client.c:191,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:192,1
    - Dst: strchr
      Src: /src/clamav/clamdscan/client.c:196,1
    - Dst: cli_strntoul
      Src: /src/clamav/clamdscan/client.c:200,1
    - Dst: strlen
      Src: /src/clamav/clamdscan/client.c:200,1
    - Dst: strlen
      Src: /src/clamav/clamdscan/client.c:201,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:202,1
    - Dst: cli_strntoul
      Src: /src/clamav/clamdscan/client.c:209,1
    - Dst: strlen
      Src: /src/clamav/clamdscan/client.c:209,1
    - Dst: strlen
      Src: /src/clamav/clamdscan/client.c:210,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:211,1
    - Dst: isremote
      Src: /src/clamav/clamdscan/client.c:221,1
    - Dst: dconnect
      Src: /src/clamav/clamdscan/client.c:223,1
    - Dst: recvlninit
      Src: /src/clamav/clamdscan/client.c:225,1
    - Dst: sendln
      Src: /src/clamav/clamdscan/client.c:227,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:228,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:229,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:231,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:232,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:240,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:242,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:244,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:247,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:249,1
    - Dst: sleep
      Src: /src/clamav/clamdscan/client.c:251,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:258,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:259,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:261,1
    - Dst: free
      Src: /src/clamav/clamdscan/client.c:266,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 273
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 273
    functionName: ping_clamd
    functionSourceFile: /src/clamav/clamdscan/client.c
    functionUses: 0
    functionsReached:
    - sendln
    - sleep
    - strlen
    - cli_strntoul
    - dconnect
    - strchr
    - recvlninit
    - optget
    - isremote
    - logg
    - free
    - closesocket
    - cli_safer_strdup
    linkageType: ''
    returnType: int16_t
    signature: int16_t ping_clamd(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamdscan/client.c:283,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:284,1
    - Dst: cli_is_abspath
      Src: /src/clamav/clamdscan/client.c:287,1
    - Dst: getcwd
      Src: /src/clamav/clamdscan/client.c:288,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:289,1
    - Dst: free
      Src: /src/clamav/clamdscan/client.c:290,1
    - Dst: strlen
      Src: /src/clamav/clamdscan/client.c:299,1
    - Dst: snprintf
      Src: /src/clamav/clamdscan/client.c:300,1
    - Dst: strncpy
      Src: /src/clamav/clamdscan/client.c:302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - basepath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 306
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 306
    functionName: makeabs
    functionSourceFile: /src/clamav/clamdscan/client.c
    functionUses: 0
    functionsReached:
    - getcwd
    - snprintf
    - strlen
    - strncpy
    - logg
    - cli_is_abspath
    - malloc
    - free
    linkageType: ''
    returnType: char
    signature: char *makeabs(const char *basepath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: makeabs
      Src: /src/clamav/clamdscan/client.c:317,1
    - Dst: cli_realpath
      Src: /src/clamav/clamdscan/client.c:322,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:323,1
    - Dst: free
      Src: /src/clamav/clamdscan/client.c:325,1
    - Dst: serial_client_scan
      Src: /src/clamav/clamdscan/client.c:332,1
    - Dst: parallel_client_scan
      Src: /src/clamav/clamdscan/client.c:334,1
    - Dst: free
      Src: /src/clamav/clamdscan/client.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - file
    - scantype
    - infected
    - err
    - maxlevel
    - session
    - flags
    argTypes:
    - char*
    - int
    - int*
    - int*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 337
    functionName: client_scan
    functionSourceFile: /src/clamav/clamdscan/client.c
    functionUses: 1
    functionsReached:
    - makeabs
    - parallel_client_scan
    - cli_realpath
    - logg
    - serial_client_scan
    - free
    linkageType: ''
    returnType: int
    signature: int client_scan(const char *file, int scantype, int *infected, int
      *err, int maxlevel, int session, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isremote
      Src: /src/clamav/clamdscan/client.c:346,1
    - Dst: dconnect
      Src: /src/clamav/clamdscan/client.c:347,1
    - Dst: recvlninit
      Src: /src/clamav/clamdscan/client.c:348,1
    - Dst: sendln
      Src: /src/clamav/clamdscan/client.c:350,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:351,1
    - Dst: recvln
      Src: /src/clamav/clamdscan/client.c:355,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:357,1
    - Dst: printf
      Src: /src/clamav/clamdscan/client.c:360,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 365
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 365
    functionName: get_clamd_version
    functionSourceFile: /src/clamav/clamdscan/client.c
    functionUses: 0
    functionsReached:
    - sendln
    - dconnect
    - recvln
    - recvlninit
    - printf
    - isremote
    - logg
    - closesocket
    linkageType: ''
    returnType: int
    signature: int get_clamd_version(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isremote
      Src: /src/clamav/clamdscan/client.c:374,1
    - Dst: dconnect
      Src: /src/clamav/clamdscan/client.c:375,1
    - Dst: recvlninit
      Src: /src/clamav/clamdscan/client.c:376,1
    - Dst: sendln
      Src: /src/clamav/clamdscan/client.c:378,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:379,1
    - Dst: recvln
      Src: /src/clamav/clamdscan/client.c:383,1
    - Dst: memcmp
      Src: /src/clamav/clamdscan/client.c:383,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:384,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:385,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 390
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 390
    functionName: reload_clamd_database
    functionSourceFile: /src/clamav/clamdscan/client.c
    functionUses: 0
    functionsReached:
    - sendln
    - dconnect
    - recvln
    - recvlninit
    - isremote
    - logg
    - memcmp
    - closesocket
    linkageType: ''
    returnType: int
    signature: int reload_clamd_database(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:397,1
    - Dst: strcmp
      Src: /src/clamav/clamdscan/client.c:409,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:409,1
    - Dst: isremote
      Src: /src/clamav/clamdscan/client.c:410,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:410,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:412,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:412,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:414,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:419,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:420,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:422,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:427,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:428,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:429,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:431,1
    - Dst: FSTAT
      Src: /src/clamav/clamdscan/client.c:440,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:441,1
    - Dst: strerror
      Src: /src/clamav/clamdscan/client.c:442,1
    - Dst: dconnect
      Src: /src/clamav/clamdscan/client.c:446,1
    - Dst: dsresult
      Src: /src/clamav/clamdscan/client.c:446,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/client.c:450,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:451,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:452,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:453,1
    - Dst: filelist
      Src: /src/clamav/clamdscan/client.c:455,1
    - Dst: strcmp
      Src: /src/clamav/clamdscan/client.c:456,1
    - Dst: logg
      Src: /src/clamav/clamdscan/client.c:457,1
    - Dst: client_scan
      Src: /src/clamav/clamdscan/client.c:460,1
    - Dst: optget
      Src: /src/clamav/clamdscan/client.c:470,1
    - Dst: client_scan
      Src: /src/clamav/clamdscan/client.c:482,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 66
    argCount: 3
    argNames:
    - opts
    - infected
    - err
    argTypes:
    - struct optstruct*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 483
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 483
    functionName: client
    functionSourceFile: /src/clamav/clamdscan/client.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strerror
    - client_scan
    - dconnect
    - filelist
    - FSTAT
    - optget
    - isremote
    - dsresult
    - logg
    - closesocket
    linkageType: ''
    returnType: int
    signature: int client(const struct optstruct *opts, int *infected, int *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_clamd_version
      Src: /src/clamav/clamdscan/clamdscan.c:56,1
    - Dst: printf
      Src: /src/clamav/clamdscan/clamdscan.c:58,1
    - Dst: get_version
      Src: /src/clamav/clamdscan/clamdscan.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - opt
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: print_server_version
    functionSourceFile: /src/clamav/clamdscan/clamdscan.c
    functionUses: 0
    functionsReached:
    - get_version
    - get_clamd_version
    - printf
    linkageType: ''
    returnType: void
    signature: void print_server_version(const struct optstruct *opt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:225,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:226,1
    - Dst: get_version
      Src: /src/clamav/clamdscan/clamdscan.c:226,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:227,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:228,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:229,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:230,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:231,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:232,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:233,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:234,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:235,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:236,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:237,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:238,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:239,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:240,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:241,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:242,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:243,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:244,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:245,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:247,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:248,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:249,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:251,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:252,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:253,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:254,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:255,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:256,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:257,1
    - Dst: mprintf
      Src: /src/clamav/clamdscan/clamdscan.c:258,1
    - Dst: exit
      Src: /src/clamav/clamdscan/clamdscan.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 261
    functionName: help
    functionSourceFile: /src/clamav/clamdscan/clamdscan.c
    functionUses: 1
    functionsReached:
    - exit
    - get_version
    - mprintf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamdscan/proto.c:73,1
    - Dst: chkpath
      Src: /src/clamav/clamdscan/proto.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - data
    argTypes:
    - char*
    - struct cli_ftw_cbdata*
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: ftw_chkpath
    functionSourceFile: /src/clamav/clamdscan/proto.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - chkpath
    linkageType: ''
    returnType: int
    signature: int ftw_chkpath(const char *path, struct cli_ftw_cbdata *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamdscan/proto.c:97,1
    - Dst: cli_realpath
      Src: /src/clamav/clamdscan/proto.c:100,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:101,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:102,1
    - Dst: chkpath
      Src: /src/clamav/clamdscan/proto.c:108,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:116,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:121,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:126,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:132,1
    - Dst: dconnect
      Src: /src/clamav/clamdscan/proto.c:146,1
    - Dst: dsresult
      Src: /src/clamav/clamdscan/proto.c:150,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/proto.c:151,1
    - Dst: free
      Src: /src/clamav/clamdscan/proto.c:165,1
    - Dst: free
      Src: /src/clamav/clamdscan/proto.c:167,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 5
    argNames:
    - sb
    - filename
    - path
    - reason
    - data
    argTypes:
    - STATBUF*
    - char*
    - char*
    - enum cli_ftw_reason
    - struct cli_ftw_cbdata*
    constantsTouched: []
    func_position:
      end: 169
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 169
    functionName: serial_callback
    functionSourceFile: /src/clamav/clamdscan/proto.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - dconnect
    - chkpath
    - dsresult
    - cli_realpath
    - logg
    - closesocket
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t serial_callback(STATBUF *sb, char *filename, const char
      *path, enum cli_ftw_reason reason, struct cli_ftw_cbdata *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_ftw
      Src: /src/clamav/clamdscan/proto.c:186,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:192,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - file
    - scantype
    - infected
    - err
    - maxlevel
    - flags
    argTypes:
    - char*
    - int
    - int*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 199
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 199
    functionName: serial_client_scan
    functionSourceFile: /src/clamav/clamdscan/proto.c
    functionUses: 1
    functionsReached:
    - logg
    - cli_ftw
    linkageType: ''
    returnType: int
    signature: int serial_client_scan(char *file, int scantype, int *infected, int
      *err, int maxlevel, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recvlninit
      Src: /src/clamav/clamdscan/proto.c:229,1
    - Dst: recvln
      Src: /src/clamav/clamdscan/proto.c:231,1
    - Dst: atoi
      Src: /src/clamav/clamdscan/proto.c:234,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:243,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:250,1
    - Dst: free
      Src: /src/clamav/clamdscan/proto.c:251,1
    - Dst: memcmp
      Src: /src/clamav/clamdscan/proto.c:253,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:256,1
    - Dst: action
      Src: /src/clamav/clamdscan/proto.c:257,1
    - Dst: memcmp
      Src: /src/clamav/clamdscan/proto.c:258,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:261,1
    - Dst: free
      Src: /src/clamav/clamdscan/proto.c:264,1
    - Dst: free
      Src: /src/clamav/clamdscan/proto.c:267,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client_parallel_data*
    constantsTouched: []
    func_position:
      end: 271
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 271
    functionName: dspresult
    functionSourceFile: /src/clamav/clamdscan/proto.c
    functionUses: 0
    functionsReached:
    - action
    - recvln
    - recvlninit
    - logg
    - memcmp
    - free
    - atoi
    linkageType: ''
    returnType: int
    signature: int dspresult(struct client_parallel_data *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamdscan/proto.c:285,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamdscan/proto.c:286,1
    - Dst: cli_realpath
      Src: /src/clamav/clamdscan/proto.c:289,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:290,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:291,1
    - Dst: free
      Src: /src/clamav/clamdscan/proto.c:293,1
    - Dst: chkpath
      Src: /src/clamav/clamdscan/proto.c:298,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:306,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:311,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:316,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:320,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamdscan/proto.c:336,1
    - Dst: FD_SET
      Src: /src/clamav/clamdscan/proto.c:337,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamdscan/proto.c:338,1
    - Dst: FD_SET
      Src: /src/clamav/clamdscan/proto.c:339,1
    - Dst: select
      Src: /src/clamav/clamdscan/proto.c:340,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:342,1
    - Dst: strerror
      Src: /src/clamav/clamdscan/proto.c:342,1
    - Dst: FD_ISSET
      Src: /src/clamav/clamdscan/proto.c:346,1
    - Dst: dspresult
      Src: /src/clamav/clamdscan/proto.c:347,1
    - Dst: FD_ISSET
      Src: /src/clamav/clamdscan/proto.c:353,1
    - Dst: send_fdpass
      Src: /src/clamav/clamdscan/proto.c:359,1
    - Dst: send_stream
      Src: /src/clamav/clamdscan/proto.c:363,1
    - Dst: malloc
      Src: /src/clamav/clamdscan/proto.c:373,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:375,1
    - Dst: strerror
      Src: /src/clamav/clamdscan/proto.c:375,1
    - Dst: free
      Src: /src/clamav/clamdscan/proto.c:392,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 105
    argCount: 5
    argNames:
    - sb
    - filename
    - path
    - reason
    - data
    argTypes:
    - STATBUF*
    - char*
    - char*
    - enum cli_ftw_reason
    - struct cli_ftw_cbdata*
    constantsTouched: []
    func_position:
      end: 395
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 395
    functionName: parallel_callback
    functionSourceFile: /src/clamav/clamdscan/proto.c
    functionUses: 0
    functionsReached:
    - strerror
    - UNUSEDPARAM
    - FD_SET
    - dspresult
    - FD_ZERO
    - chkpath
    - cli_realpath
    - logg
    - select
    - malloc
    - send_fdpass
    - FD_ISSET
    - free
    - send_stream
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parallel_callback(STATBUF *sb, char *filename, const char
      *path, enum cli_ftw_reason reason, struct cli_ftw_cbdata *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dconnect
      Src: /src/clamav/clamdscan/proto.c:407,1
    - Dst: sendln
      Src: /src/clamav/clamdscan/proto.c:410,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/proto.c:411,1
    - Dst: cli_ftw
      Src: /src/clamav/clamdscan/proto.c:424,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/proto.c:429,1
    - Dst: sendln
      Src: /src/clamav/clamdscan/proto.c:433,1
    - Dst: dspresult
      Src: /src/clamav/clamdscan/proto.c:434,1
    - Dst: closesocket
      Src: /src/clamav/clamdscan/proto.c:435,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:441,1
    - Dst: logg
      Src: /src/clamav/clamdscan/proto.c:451,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 6
    argNames:
    - file
    - scantype
    - infected
    - err
    - maxlevel
    - flags
    argTypes:
    - char*
    - int
    - int*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 453
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 453
    functionName: parallel_client_scan
    functionSourceFile: /src/clamav/clamdscan/proto.c
    functionUses: 1
    functionsReached:
    - sendln
    - dconnect
    - dspresult
    - logg
    - cli_ftw
    - closesocket
    linkageType: ''
    returnType: int
    signature: int parallel_client_scan(char *file, int scantype, int *infected, int
      *err, int maxlevel, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - data
    - sig
    - n
    argTypes:
    - uint8_t*
    - int16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: sigcmp
    functionSourceFile: /src/clamav/common/exeScanner.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigcmp(const uint8_t *data, const int16_t *sig, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sigcmp
      Src: /src/clamav/common/exeScanner.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: checksig
    functionSourceFile: /src/clamav/common/exeScanner.c
    functionUses: 0
    functionsReached:
    - sigcmp
    linkageType: ''
    returnType: sigs_t
    signature: sigs_t *checksig(uint8_t *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/common/exeScanner.c:148,1
    - Dst: log
      Src: /src/clamav/common/exeScanner.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: calc_entropy
    functionSourceFile: /src/clamav/common/exeScanner.c
    functionUses: 0
    functionsReached:
    - log
    - memset
    linkageType: ''
    returnType: double
    signature: double calc_entropy(const unsigned char *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileA
      Src: /src/clamav/common/exeScanner.c:186,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:190,1
    - Dst: GetLastError
      Src: /src/clamav/common/exeScanner.c:190,1
    - Dst: CreateFileMappingA
      Src: /src/clamav/common/exeScanner.c:195,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:197,1
    - Dst: GetLastError
      Src: /src/clamav/common/exeScanner.c:197,1
    - Dst: MapViewOfFile
      Src: /src/clamav/common/exeScanner.c:201,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:203,1
    - Dst: GetLastError
      Src: /src/clamav/common/exeScanner.c:203,1
    - Dst: FILLBYTES
      Src: /src/clamav/common/exeScanner.c:210,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:212,1
    - Dst: FILLBYTES
      Src: /src/clamav/common/exeScanner.c:218,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:220,1
    - Dst: FILLBYTES
      Src: /src/clamav/common/exeScanner.c:226,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:228,1
    - Dst: IsBadReadPtr
      Src: /src/clamav/common/exeScanner.c:233,1
    - Dst: IsBadReadPtr
      Src: /src/clamav/common/exeScanner.c:238,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:244,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:250,1
    - Dst: IsBadReadPtr
      Src: /src/clamav/common/exeScanner.c:257,1
    - Dst: IsBadReadPtr
      Src: /src/clamav/common/exeScanner.c:267,1
    - Dst: calc_entropy
      Src: /src/clamav/common/exeScanner.c:268,1
    - Dst: MAX
      Src: /src/clamav/common/exeScanner.c:270,1
    - Dst: memcpy
      Src: /src/clamav/common/exeScanner.c:273,1
    - Dst: isprint
      Src: /src/clamav/common/exeScanner.c:275,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:279,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:286,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:288,1
    - Dst: IsBadReadPtr
      Src: /src/clamav/common/exeScanner.c:292,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:296,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:297,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:299,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:300,1
    - Dst: checksig
      Src: /src/clamav/common/exeScanner.c:302,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:303,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:307,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:311,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:313,1
    - Dst: elogg
      Src: /src/clamav/common/exeScanner.c:317,1
    - Dst: UnmapViewOfFile
      Src: /src/clamav/common/exeScanner.c:325,1
    - Dst: CloseHandle
      Src: /src/clamav/common/exeScanner.c:327,1
    - Dst: CloseHandle
      Src: /src/clamav/common/exeScanner.c:328,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 118
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 330
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 330
    functionName: is_packed
    functionSourceFile: /src/clamav/common/exeScanner.c
    functionUses: 0
    functionsReached:
    - CreateFileA
    - MapViewOfFile
    - MAX
    - CreateFileMappingA
    - GetLastError
    - IsBadReadPtr
    - checksig
    - elogg
    - isprint
    - CloseHandle
    - memcpy
    - FILLBYTES
    - calc_entropy
    - UnmapViewOfFile
    linkageType: ''
    returnType: int
    signature: int is_packed(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/common/misc.c:68,1
    - Dst: strcmp
      Src: /src/clamav/common/misc.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: get_version
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 9
    functionsReached:
    - strcmp
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *get_version(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_retdbdir
      Src: /src/clamav/common/misc.c:84,1
    - Dst: optparse
      Src: /src/clamav/common/misc.c:85,1
    - Dst: optget
      Src: /src/clamav/common/misc.c:86,1
    - Dst: strcmp
      Src: /src/clamav/common/misc.c:87,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:90,1
    - Dst: sprintf
      Src: /src/clamav/common/misc.c:93,1
    - Dst: access
      Src: /src/clamav/common/misc.c:94,1
    - Dst: sprintf
      Src: /src/clamav/common/misc.c:95,1
    - Dst: access
      Src: /src/clamav/common/misc.c:97,1
    - Dst: cl_cvdhead
      Src: /src/clamav/common/misc.c:97,1
    - Dst: sprintf
      Src: /src/clamav/common/misc.c:98,1
    - Dst: access
      Src: /src/clamav/common/misc.c:99,1
    - Dst: sprintf
      Src: /src/clamav/common/misc.c:100,1
    - Dst: access
      Src: /src/clamav/common/misc.c:102,1
    - Dst: cl_cvdhead
      Src: /src/clamav/common/misc.c:102,1
    - Dst: free
      Src: /src/clamav/common/misc.c:103,1
    - Dst: cl_cvdfree
      Src: /src/clamav/common/misc.c:106,1
    - Dst: free
      Src: /src/clamav/common/misc.c:108,1
    - Dst: cl_cvdfree
      Src: /src/clamav/common/misc.c:111,1
    - Dst: free
      Src: /src/clamav/common/misc.c:113,1
    - Dst: strdup
      Src: /src/clamav/common/misc.c:119,1
    - Dst: optfree
      Src: /src/clamav/common/misc.c:122,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 125
    functionName: freshdbdir
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 1
    functionsReached:
    - strcmp
    - optfree
    - access
    - strdup
    - fprintf
    - optget
    - cl_cvdfree
    - free
    - optparse
    - cl_cvdhead
    - sprintf
    - cl_retdbdir
    linkageType: ''
    returnType: char
    signature: char *freshdbdir(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freshdbdir
      Src: /src/clamav/common/misc.c:138,1
    - Dst: printf
      Src: /src/clamav/common/misc.c:141,1
    - Dst: get_version
      Src: /src/clamav/common/misc.c:141,1
    - Dst: malloc
      Src: /src/clamav/common/misc.c:145,1
    - Dst: strlen
      Src: /src/clamav/common/misc.c:145,1
    - Dst: free
      Src: /src/clamav/common/misc.c:147,1
    - Dst: sprintf
      Src: /src/clamav/common/misc.c:151,1
    - Dst: access
      Src: /src/clamav/common/misc.c:152,1
    - Dst: cl_cvdhead
      Src: /src/clamav/common/misc.c:153,1
    - Dst: cl_cvdfree
      Src: /src/clamav/common/misc.c:157,1
    - Dst: sprintf
      Src: /src/clamav/common/misc.c:161,1
    - Dst: access
      Src: /src/clamav/common/misc.c:162,1
    - Dst: cl_cvdhead
      Src: /src/clamav/common/misc.c:163,1
    - Dst: cl_cvdfree
      Src: /src/clamav/common/misc.c:169,1
    - Dst: free
      Src: /src/clamav/common/misc.c:174,1
    - Dst: printf
      Src: /src/clamav/common/misc.c:177,1
    - Dst: get_version
      Src: /src/clamav/common/misc.c:177,1
    - Dst: ctime
      Src: /src/clamav/common/misc.c:177,1
    - Dst: printf
      Src: /src/clamav/common/misc.c:179,1
    - Dst: get_version
      Src: /src/clamav/common/misc.c:179,1
    - Dst: free
      Src: /src/clamav/common/misc.c:182,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - dbdir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 183
    functionName: print_version
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 1
    functionsReached:
    - strlen
    - access
    - printf
    - ctime
    - cl_cvdfree
    - freshdbdir
    - cl_cvdhead
    - malloc
    - get_version
    - free
    - sprintf
    linkageType: ''
    returnType: void
    signature: void print_version(const char *dbdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_retflevel
      Src: /src/clamav/common/misc.c:187,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:188,1
    - Dst: cl_retflevel
      Src: /src/clamav/common/misc.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: check_flevel
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 0
    functionsReached:
    - cl_retflevel
    - fprintf
    linkageType: ''
    returnType: int
    signature: int check_flevel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/common/misc.c:202,1
    - Dst: fopen
      Src: /src/clamav/common/misc.c:204,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:206,1
    - Dst: fgets
      Src: /src/clamav/common/misc.c:213,1
    - Dst: strlen
      Src: /src/clamav/common/misc.c:215,1
    - Dst: fclose
      Src: /src/clamav/common/misc.c:217,1
    - Dst: fclose
      Src: /src/clamav/common/misc.c:225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - opts
    - err
    argTypes:
    - struct optstruct*
    - int*
    constantsTouched: []
    func_position:
      end: 231
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 231
    functionName: filelist
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 2
    functionsReached:
    - strlen
    - fprintf
    - optget
    - fclose
    - fgets
    - fopen
    linkageType: ''
    returnType: char
    signature: char *filelist(const struct optstruct *opts, int *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CopyFileA
      Src: /src/clamav/common/misc.c:236,1
    - Dst: fork
      Src: /src/clamav/common/misc.c:241,1
    - Dst: execl
      Src: /src/clamav/common/misc.c:245,1
    - Dst: perror
      Src: /src/clamav/common/misc.c:246,1
    - Dst: wait
      Src: /src/clamav/common/misc.c:249,1
    - Dst: cli_filecopy
      Src: /src/clamav/common/misc.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 258
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 258
    functionName: filecopy
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 2
    functionsReached:
    - CopyFileA
    - perror
    - wait
    - fork
    - execl
    - cli_filecopy
    linkageType: ''
    returnType: int
    signature: int filecopy(const char *src, const char *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/common/misc.c:265,1
    - Dst: open
      Src: /src/clamav/common/misc.c:266,1
    - Dst: open
      Src: /src/clamav/common/misc.c:267,1
    - Dst: fputs
      Src: /src/clamav/common/misc.c:269,1
    - Dst: close
      Src: /src/clamav/common/misc.c:272,1
    - Dst: dup2
      Src: /src/clamav/common/misc.c:277,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:278,1
    - Dst: close
      Src: /src/clamav/common/misc.c:281,1
    - Dst: close
      Src: /src/clamav/common/misc.c:288,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 291
    functionName: close_std_descriptors
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 0
    functionsReached:
    - fputs
    - close
    - open
    - fprintf
    - dup2
    linkageType: ''
    returnType: int
    signature: int close_std_descriptors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/clamav/common/misc.c:297,1
    - Dst: setsid
      Src: /src/clamav/common/misc.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: daemonize_all_return
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 0
    functionsReached:
    - setsid
    - fork
    linkageType: ''
    returnType: int
    signature: int daemonize_all_return(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close_std_descriptors
      Src: /src/clamav/common/misc.c:309,1
    - Dst: daemonize_all_return
      Src: /src/clamav/common/misc.c:314,1
    - Dst: exit
      Src: /src/clamav/common/misc.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 322
    functionName: daemonize
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 0
    functionsReached:
    - exit
    - daemonize_all_return
    - close_std_descriptors
    linkageType: ''
    returnType: int
    signature: int daemonize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/clamav/common/misc.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: daemonize_child_initialized_handler
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void daemonize_child_initialized_handler(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/common/misc.c:345,1
    - Dst: sigemptyset
      Src: /src/clamav/common/misc.c:346,1
    - Dst: sigaction
      Src: /src/clamav/common/misc.c:349,1
    - Dst: perror
      Src: /src/clamav/common/misc.c:350,1
    - Dst: drop_privileges
      Src: /src/clamav/common/misc.c:355,1
    - Dst: wait
      Src: /src/clamav/common/misc.c:361,1
    - Dst: WIFEXITED
      Src: /src/clamav/common/misc.c:362,1
    - Dst: WEXITSTATUS
      Src: /src/clamav/common/misc.c:363,1
    - Dst: exit
      Src: /src/clamav/common/misc.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - user
    - log_file
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 368
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 368
    functionName: daemonize_parent_wait
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 0
    functionsReached:
    - perror
    - sigemptyset
    - memset
    - sigaction
    - exit
    - wait
    - WIFEXITED
    - WEXITSTATUS
    - drop_privileges
    linkageType: ''
    returnType: int
    signature: int daemonize_parent_wait(const char *const user, const char *const
      log_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close_std_descriptors
      Src: /src/clamav/common/misc.c:372,1
    - Dst: kill
      Src: /src/clamav/common/misc.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - parentPid
    argTypes:
    - pid_t
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: daemonize_signal_parent
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 0
    functionsReached:
    - kill
    - close_std_descriptors
    linkageType: ''
    returnType: void
    signature: void daemonize_signal_parent(pid_t parentPid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/clamav/common/misc.c:383,1
    - Dst: getpwnam
      Src: /src/clamav/common/misc.c:386,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:387,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:388,1
    - Dst: initgroups
      Src: /src/clamav/common/misc.c:393,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:394,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:395,1
    - Dst: setgroups
      Src: /src/clamav/common/misc.c:399,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:400,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:401,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:410,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:411,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:412,1
    - Dst: strerror
      Src: /src/clamav/common/misc.c:412,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:413,1
    - Dst: strerror
      Src: /src/clamav/common/misc.c:414,1
    - Dst: setgid
      Src: /src/clamav/common/misc.c:419,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:420,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:421,1
    - Dst: setuid
      Src: /src/clamav/common/misc.c:425,1
    - Dst: fprintf
      Src: /src/clamav/common/misc.c:426,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:427,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - user_name
    - log_file
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 435
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 435
    functionName: drop_privileges
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 1
    functionsReached:
    - geteuid
    - strerror
    - setgid
    - setuid
    - fprintf
    - initgroups
    - logg
    - setgroups
    - getpwnam
    linkageType: ''
    returnType: int
    signature: int drop_privileges(const char *const user_name, const char *const
      log_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regcomp
      Src: /src/clamav/common/misc.c:446,1
    - Dst: strlen
      Src: /src/clamav/common/misc.c:449,1
    - Dst: snprintf
      Src: /src/clamav/common/misc.c:450,1
    - Dst: strncpy
      Src: /src/clamav/common/misc.c:453,1
    - Dst: cli_regexec
      Src: /src/clamav/common/misc.c:457,1
    - Dst: cli_regfree
      Src: /src/clamav/common/misc.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - filename
    - pattern
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 460
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 460
    functionName: match_regex
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 2
    functionsReached:
    - snprintf
    - cli_regcomp
    - strlen
    - strncpy
    - cli_regexec
    - cli_regfree
    linkageType: ''
    returnType: int
    signature: int match_regex(const char *filename, const char *pattern)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: cli_is_abspath
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_is_abspath(const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/common/misc.c:478,1
    - Dst: fgets
      Src: /src/clamav/common/misc.c:481,1
    - Dst: fclose
      Src: /src/clamav/common/misc.c:494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 496
    functionName: countlines
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 2
    functionsReached:
    - fclose
    - fgets
    - fopen
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int countlines(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_cvdgetage
      Src: /src/clamav/common/misc.c:503,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:504,1
    - Dst: cl_strerror
      Src: /src/clamav/common/misc.c:504,1
    - Dst: logg
      Src: /src/clamav/common/misc.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - days
    argTypes:
    - char*
    - long long
    constantsTouched: []
    func_position:
      end: 514
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 514
    functionName: check_if_cvd_outdated
    functionSourceFile: /src/clamav/common/misc.c
    functionUses: 1
    functionsReached:
    - cl_strerror
    - logg
    - cl_cvdgetage
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t check_if_cvd_outdated(const char *path, long long days)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/clamav/common/getopt.c:63,1
    - Dst: fprintf
      Src: /src/clamav/common/getopt.c:86,1
    - Dst: fprintf
      Src: /src/clamav/common/getopt.c:98,1
    - Dst: my_getopt
      Src: /src/clamav/common/getopt.c:133,1
    - Dst: my_getopt
      Src: /src/clamav/common/getopt.c:145,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 86
    argCount: 3
    argNames:
    - argc
    - argvc
    - opts
    argTypes:
    - int
    - char*[]
    - char*
    constantsTouched: []
    func_position:
      end: 149
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 149
    functionName: my_getopt
    functionSourceFile: /src/clamav/common/getopt.c
    functionUses: 2
    functionsReached:
    - fprintf
    - getenv
    - my_getopt
    linkageType: ''
    returnType: int
    signature: int my_getopt(int argc, char *argvc[], const char *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/clamav/common/getopt.c:163,1
    - Dst: _getopt_internal
      Src: /src/clamav/common/getopt.c:197,1
    - Dst: my_getopt
      Src: /src/clamav/common/getopt.c:209,1
    - Dst: my_getopt
      Src: /src/clamav/common/getopt.c:223,1
    - Dst: strlen
      Src: /src/clamav/common/getopt.c:233,1
    - Dst: strncmp
      Src: /src/clamav/common/getopt.c:234,1
    - Dst: strncmp
      Src: /src/clamav/common/getopt.c:239,1
    - Dst: fprintf
      Src: /src/clamav/common/getopt.c:248,1
    - Dst: fprintf
      Src: /src/clamav/common/getopt.c:258,1
    - Dst: my_getopt
      Src: /src/clamav/common/getopt.c:274,1
    - Dst: fprintf
      Src: /src/clamav/common/getopt.c:277,1
    - Dst: fprintf
      Src: /src/clamav/common/getopt.c:283,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 103
    argCount: 6
    argNames:
    - argc
    - argv
    - shortopts
    - longopts
    - longind
    - long_only
    argTypes:
    - int
    - char*[]
    - char*
    - struct option*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 290
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 290
    functionName: _getopt_internal
    functionSourceFile: /src/clamav/common/getopt.c
    functionUses: 1
    functionsReached:
    - _getopt_internal
    - getenv
    - strlen
    - fprintf
    - my_getopt
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int _getopt_internal(int argc, char *argv[], const char *shortopts,\n
      \                           const struct option *longopts, int *longind,\n                            int
      long_only)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal
      Src: /src/clamav/common/getopt.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - shortopts
    - longopts
    - longind
    argTypes:
    - int
    - char*[]
    - char*
    - struct option*
    - int*
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: my_getopt_long
    functionSourceFile: /src/clamav/common/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal
    linkageType: ''
    returnType: int
    signature: "int my_getopt_long(int argc, char *argv[], const char *shortopts,\n
      \                  const struct option *longopts, int *longind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal
      Src: /src/clamav/common/getopt.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - shortopts
    - longopts
    - longind
    argTypes:
    - int
    - char*[]
    - char*
    - struct option*
    - int*
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: my_getopt_long_only
    functionSourceFile: /src/clamav/common/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal
    linkageType: ''
    returnType: int
    signature: "int my_getopt_long_only(int argc, char *argv[], const char *shortopts,\n
      \                       const struct option *longopts, int *longind)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyEx
      Src: /src/clamav/common/optparser.c:712,1
    - Dst: RegOpenKeyEx
      Src: /src/clamav/common/optparser.c:712,1
    - Dst: RegQueryValueEx
      Src: /src/clamav/common/optparser.c:714,1
    - Dst: memcpy
      Src: /src/clamav/common/optparser.c:716,1
    - Dst: MIN
      Src: /src/clamav/common/optparser.c:716,1
    - Dst: RegQueryValueEx
      Src: /src/clamav/common/optparser.c:719,1
    - Dst: memcpy
      Src: /src/clamav/common/optparser.c:721,1
    - Dst: MIN
      Src: /src/clamav/common/optparser.c:721,1
    - Dst: RegQueryValueEx
      Src: /src/clamav/common/optparser.c:724,1
    - Dst: memcpy
      Src: /src/clamav/common/optparser.c:726,1
    - Dst: MIN
      Src: /src/clamav/common/optparser.c:726,1
    - Dst: RegCloseKey
      Src: /src/clamav/common/optparser.c:728,1
    - Dst: GetModuleFileName
      Src: /src/clamav/common/optparser.c:731,1
    - Dst: dirname
      Src: /src/clamav/common/optparser.c:734,1
    - Dst: snprintf
      Src: /src/clamav/common/optparser.c:736,1
    - Dst: strncpy
      Src: /src/clamav/common/optparser.c:739,1
    - Dst: snprintf
      Src: /src/clamav/common/optparser.c:743,1
    - Dst: snprintf
      Src: /src/clamav/common/optparser.c:751,1
    - Dst: snprintf
      Src: /src/clamav/common/optparser.c:752,1
    - Dst: snprintf
      Src: /src/clamav/common/optparser.c:753,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 755
    functionName: fix_paths
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 0
    functionsReached:
    - RegQueryValueEx
    - snprintf
    - dirname
    - RegCloseKey
    - strncpy
    - RegOpenKeyEx
    - MIN
    - memcpy
    - GetModuleFileName
    linkageType: ''
    returnType: void
    signature: void fix_paths(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/common/optparser.c:761,1
    - Dst: strcmp
      Src: /src/clamav/common/optparser.c:761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - opts
    - name
    argTypes:
    - struct optstruct*
    - char*
    constantsTouched: []
    func_position:
      end: 766
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 766
    functionName: optget
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 10
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct optstruct
    signature: struct optstruct *optget(const struct optstruct *opts, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/common/optparser.c:771,1
    - Dst: strcmp
      Src: /src/clamav/common/optparser.c:771,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - opts
    - name
    argTypes:
    - struct optstruct*
    - char*
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: optget_i
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct optstruct
    signature: struct optstruct *optget_i(struct optstruct *opts, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/common/optparser.c:805,1
    - Dst: strdup
      Src: /src/clamav/common/optparser.c:811,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:813,1
    - Dst: strdup
      Src: /src/clamav/common/optparser.c:821,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:823,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:824,1
    - Dst: strdup
      Src: /src/clamav/common/optparser.c:832,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:834,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:835,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:836,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 54
    argCount: 8
    argNames:
    - opts
    - opts_last
    - name
    - cmd
    - strarg
    - numarg
    - flags
    - idx
    argTypes:
    - struct optstruct**
    - struct optstruct**
    - char*
    - char*
    - char*
    - long long
    - int
    - int
    constantsTouched: []
    func_position:
      end: 863
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 863
    functionName: optadd
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    - free
    linkageType: ''
    returnType: int
    signature: int optadd(struct optstruct **opts, struct optstruct **opts_last, const
      char *name, const char *cmd, const char *strarg, long long numarg, int flags,
      int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget_i
      Src: /src/clamav/common/optparser.c:869,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:870,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:877,1
    - Dst: strdup
      Src: /src/clamav/common/optparser.c:878,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:880,1
    - Dst: calloc::calloc
      Src: /src/clamav/common/optparser.c:886,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:888,1
    - Dst: strdup
      Src: /src/clamav/common/optparser.c:892,1
    - Dst: strarg::strarg
      Src: /src/clamav/common/optparser.c:893,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:894,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:910,1
    - Dst: strdup
      Src: /src/clamav/common/optparser.c:911,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:913,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 4
    argNames:
    - opts
    - name
    - strarg
    - numarg
    argTypes:
    - struct optstruct*
    - char*
    - char*
    - long long
    constantsTouched: []
    func_position:
      end: 927
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 927
    functionName: optaddarg
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 0
    functionsReached:
    - strdup
    - fprintf
    - optget_i
    - calloc::calloc
    - strarg::strarg
    - free
    linkageType: ''
    returnType: int
    signature: int optaddarg(struct optstruct *opts, const char *name, const char
      *strarg, long long numarg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/common/optparser.c:936,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:937,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:944,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:945,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:946,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:949,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:954,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:955,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:956,1
    - Dst: free
      Src: /src/clamav/common/optparser.c:959,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 962
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 962
    functionName: optfree
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void optfree(struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fix_paths
      Src: /src/clamav/common/optparser.c:984,1
    - Dst: optadd
      Src: /src/clamav/common/optparser.c:999,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1000,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1001,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1008,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1009,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1022,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1023,1
    - Dst: fopen
      Src: /src/clamav/common/optparser.c:1038,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1040,1
    - Dst: MAX
      Src: /src/clamav/common/optparser.c:1044,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1045,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1046,1
    - Dst: fgets
      Src: /src/clamav/common/optparser.c:1058,1
    - Dst: strlen
      Src: /src/clamav/common/optparser.c:1062,1
    - Dst: strlen
      Src: /src/clamav/common/optparser.c:1067,1
    - Dst: strncmp
      Src: /src/clamav/common/optparser.c:1070,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1072,1
    - Dst: strpbrk
      Src: /src/clamav/common/optparser.c:1077,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1079,1
    - Dst: strlen
      Src: /src/clamav/common/optparser.c:1085,1
    - Dst: strlen
      Src: /src/clamav/common/optparser.c:1089,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1094,1
    - Dst: strrchr
      Src: /src/clamav/common/optparser.c:1103,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1106,1
    - Dst: strlen
      Src: /src/clamav/common/optparser.c:1111,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1113,1
    - Dst: my_getopt_long
      Src: /src/clamav/common/optparser.c:1121,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1126,1
    - Dst: strchr
      Src: /src/clamav/common/optparser.c:1129,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1142,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1148,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1155,1
    - Dst: optget_i
      Src: /src/clamav/common/optparser.c:1160,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1164,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1174,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1178,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1180,1
    - Dst: optaddarg
      Src: /src/clamav/common/optparser.c:1188,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1190,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1192,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1199,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1203,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1205,1
    - Dst: cli_regcomp
      Src: /src/clamav/common/optparser.c:1218,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1219,1
    - Dst: cli_regexec
      Src: /src/clamav/common/optparser.c:1223,1
    - Dst: cli_regfree
      Src: /src/clamav/common/optparser.c:1224,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1227,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1230,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1232,1
    - Dst: strchr
      Src: /src/clamav/common/optparser.c:1241,1
    - Dst: strtok
      Src: /src/clamav/common/optparser.c:1244,1
    - Dst: strlen
      Src: /src/clamav/common/optparser.c:1245,1
    - Dst: strlen
      Src: /src/clamav/common/optparser.c:1255,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1257,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1259,1
    - Dst: atoi
      Src: /src/clamav/common/optparser.c:1267,1
    - Dst: strtoll
      Src: /src/clamav/common/optparser.c:1284,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1316,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1319,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1321,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1331,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1334,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1336,1
    - Dst: strcasecmp
      Src: /src/clamav/common/optparser.c:1345,1
    - Dst: strcmp
      Src: /src/clamav/common/optparser.c:1345,1
    - Dst: strcasecmp
      Src: /src/clamav/common/optparser.c:1345,1
    - Dst: optaddarg
      Src: /src/clamav/common/optparser.c:1357,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1359,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1361,1
    - Dst: fclose
      Src: /src/clamav/common/optparser.c:1368,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1371,1
    - Dst: calloc
      Src: /src/clamav/common/optparser.c:1376,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1378,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1379,1
    - Dst: strdup
      Src: /src/clamav/common/optparser.c:1383,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1385,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1386,1
    CyclomaticComplexity: 157
    EdgeCount: 157
    ICount: 359
    argCount: 7
    argNames:
    - cfgfile
    - argc
    - argv
    - verbose
    - toolmask
    - ignore
    - oldopts
    argTypes:
    - char*
    - int
    - char**
    - int
    - int
    - int
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1395
      start: 964
    functionDepth: 4
    functionLinenumber: 964
    functionLinenumberEnd: 1395
    functionName: optparse
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 2
    functionsReached:
    - optaddarg
    - MAX
    - strtoll
    - strcasecmp
    - optadd
    - my_getopt_long
    - optget_i
    - strtok
    - strpbrk
    - strcmp
    - optfree
    - fix_paths
    - strrchr
    - calloc
    - cli_regexec
    - fprintf
    - fclose
    - fgets
    - cli_regcomp
    - strlen
    - strdup
    - strchr
    - cli_regfree
    - atoi
    - strncmp
    - fopen
    linkageType: ''
    returnType: struct optstruct
    signature: struct optstruct *optparse(const char *cfgfile, int argc, char **argv,
      int verbose, int toolmask, int ignore, struct optstruct *oldopts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optadd
      Src: /src/clamav/common/optparser.c:1417,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1418,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1419,1
    - Dst: MAX
      Src: /src/clamav/common/optparser.c:1425,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1426,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1427,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1433,1
    - Dst: optget_i
      Src: /src/clamav/common/optparser.c:1438,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1441,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1449,1
    - Dst: optaddarg
      Src: /src/clamav/common/optparser.c:1455,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1456,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1462,1
    - Dst: cli_regcomp
      Src: /src/clamav/common/optparser.c:1471,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1472,1
    - Dst: cli_regexec
      Src: /src/clamav/common/optparser.c:1476,1
    - Dst: cli_regfree
      Src: /src/clamav/common/optparser.c:1477,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1479,1
    - Dst: atoi
      Src: /src/clamav/common/optparser.c:1495,1
    - Dst: strtoll
      Src: /src/clamav/common/optparser.c:1512,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1543,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1551,1
    - Dst: strcasecmp
      Src: /src/clamav/common/optparser.c:1559,1
    - Dst: strcmp
      Src: /src/clamav/common/optparser.c:1559,1
    - Dst: strcasecmp
      Src: /src/clamav/common/optparser.c:1559,1
    - Dst: optaddarg
      Src: /src/clamav/common/optparser.c:1571,1
    - Dst: fprintf
      Src: /src/clamav/common/optparser.c:1572,1
    - Dst: optfree
      Src: /src/clamav/common/optparser.c:1579,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 147
    argCount: 6
    argNames:
    - name
    - arg
    - verbose
    - toolmask
    - ignore
    - oldopts
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1584
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1584
    functionName: optadditem
    functionSourceFile: /src/clamav/common/optparser.c
    functionUses: 0
    functionsReached:
    - optaddarg
    - MAX
    - cli_regcomp
    - strcmp
    - optfree
    - strtoll
    - strcasecmp
    - optadd
    - cli_regexec
    - fprintf
    - optget_i
    - cli_regfree
    - atoi
    linkageType: ''
    returnType: struct optstruct
    signature: "struct optstruct *optadditem(const char *name, const char *arg, int
      verbose, int toolmask, int ignore,\n                             struct optstruct
      *oldopts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARGLEN
      Src: /src/clamav/common/output.c:140,1
    - Dst: malloc
      Src: /src/clamav/common/output.c:145,1
    - Dst: va_start
      Src: /src/clamav/common/output.c:153,1
    - Dst: vsnprintf
      Src: /src/clamav/common/output.c:154,1
    - Dst: va_end
      Src: /src/clamav/common/output.c:155,1
    - Dst: free
      Src: /src/clamav/common/output.c:160,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/output.c:170,1
    - Dst: send
      Src: /src/clamav/common/output.c:173,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/output.c:180,1
    - Dst: FD_ZERO
      Src: /src/clamav/common/output.c:186,1
    - Dst: FD_SET
      Src: /src/clamav/common/output.c:187,1
    - Dst: select
      Src: /src/clamav/common/output.c:188,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/output.c:191,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/output.c:204,1
    - Dst: free
      Src: /src/clamav/common/output.c:208,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - desc
    - str
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 211
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 211
    functionName: mdprintf
    functionSourceFile: /src/clamav/common/output.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - send
    - pthread_mutex_unlock
    - FD_SET
    - ARGLEN
    - va_start
    - FD_ZERO
    - select
    - va_end
    - pthread_mutex_lock
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int mdprintf(int desc, const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMSTAT
      Src: /src/clamav/common/output.c:280,1
    - Dst: rename_logg
      Src: /src/clamav/common/output.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 286
    functionName: logg_open
    functionSourceFile: /src/clamav/common/output.c
    functionUses: 0
    functionsReached:
    - rename_logg
    - CLAMSTAT
    linkageType: ''
    returnType: int
    signature: int logg_open(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: closelog
      Src: /src/clamav/common/output.c:292,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/output.c:296,1
    - Dst: fclose
      Src: /src/clamav/common/output.c:299,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/output.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 305
    functionName: logg_close
    functionSourceFile: /src/clamav/common/output.c
    functionUses: 0
    functionsReached:
    - fclose
    - closelog
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void logg_close(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARGLEN
      Src: /src/clamav/common/output.c:321,1
    - Dst: malloc
      Src: /src/clamav/common/output.c:326,1
    - Dst: va_start
      Src: /src/clamav/common/output.c:334,1
    - Dst: vsnprintf
      Src: /src/clamav/common/output.c:335,1
    - Dst: va_end
      Src: /src/clamav/common/output.c:336,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/output.c:340,1
    - Dst: logg_open
      Src: /src/clamav/common/output.c:343,1
    - Dst: open
      Src: /src/clamav/common/output.c:348,1
    - Dst: cli_strerror
      Src: /src/clamav/common/output.c:351,1
    - Dst: printf
      Src: /src/clamav/common/output.c:352,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/output.c:355,1
    - Dst: free
      Src: /src/clamav/common/output.c:358,1
    - Dst: fdopen
      Src: /src/clamav/common/output.c:362,1
    - Dst: cli_strerror
      Src: /src/clamav/common/output.c:365,1
    - Dst: printf
      Src: /src/clamav/common/output.c:366,1
    - Dst: close
      Src: /src/clamav/common/output.c:368,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/output.c:370,1
    - Dst: free
      Src: /src/clamav/common/output.c:373,1
    - Dst: memset
      Src: /src/clamav/common/output.c:379,1
    - Dst: fcntl
      Src: /src/clamav/common/output.c:381,1
    - Dst: fileno
      Src: /src/clamav/common/output.c:381,1
    - Dst: printf
      Src: /src/clamav/common/output.c:384,1
    - Dst: cli_strerror
      Src: /src/clamav/common/output.c:389,1
    - Dst: printf
      Src: /src/clamav/common/output.c:390,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/output.c:393,1
    - Dst: fclose
      Src: /src/clamav/common/output.c:395,1
    - Dst: free
      Src: /src/clamav/common/output.c:398,1
    - Dst: time
      Src: /src/clamav/common/output.c:413,1
    - Dst: cli_ctime
      Src: /src/clamav/common/output.c:414,1
    - Dst: strlen
      Src: /src/clamav/common/output.c:416,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:417,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:421,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:425,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:428,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:430,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:432,1
    - Dst: fflush
      Src: /src/clamav/common/output.c:435,1
    - Dst: time
      Src: /src/clamav/common/output.c:442,1
    - Dst: cli_ctime
      Src: /src/clamav/common/output.c:443,1
    - Dst: strlen
      Src: /src/clamav/common/output.c:445,1
    - Dst: mprintf
      Src: /src/clamav/common/output.c:446,1
    - Dst: mprintf
      Src: /src/clamav/common/output.c:448,1
    - Dst: cli_chomp
      Src: /src/clamav/common/output.c:455,1
    - Dst: syslog
      Src: /src/clamav/common/output.c:457,1
    - Dst: syslog
      Src: /src/clamav/common/output.c:460,1
    - Dst: syslog
      Src: /src/clamav/common/output.c:462,1
    - Dst: syslog
      Src: /src/clamav/common/output.c:464,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/output.c:469,1
    - Dst: free
      Src: /src/clamav/common/output.c:473,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 116
    argCount: 2
    argNames:
    - loglevel
    - str
    argTypes:
    - loglevel_t
    - char*
    constantsTouched: []
    func_position:
      end: 476
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 476
    functionName: logg
    functionSourceFile: /src/clamav/common/output.c
    functionUses: 50
    functionsReached:
    - printf
    - fdopen
    - va_end
    - vsnprintf
    - fileno
    - time
    - mprintf
    - cli_chomp
    - cli_ctime
    - close
    - memset
    - open
    - fflush
    - fprintf
    - pthread_mutex_lock
    - malloc
    - fclose
    - free
    - logg_open
    - fcntl
    - strlen
    - syslog
    - pthread_mutex_unlock
    - cli_strerror
    - ARGLEN
    - va_start
    linkageType: ''
    returnType: int
    signature: int logg(loglevel_t loglevel, const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARGLEN
      Src: /src/clamav/common/output.c:490,1
    - Dst: malloc
      Src: /src/clamav/common/output.c:495,1
    - Dst: va_start
      Src: /src/clamav/common/output.c:503,1
    - Dst: vsnprintf
      Src: /src/clamav/common/output.c:504,1
    - Dst: va_end
      Src: /src/clamav/common/output.c:505,1
    - Dst: malloc
      Src: /src/clamav/common/output.c:511,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/common/output.c:515,1
    - Dst: free
      Src: /src/clamav/common/output.c:516,1
    - Dst: malloc
      Src: /src/clamav/common/output.c:520,1
    - Dst: free
      Src: /src/clamav/common/output.c:522,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/common/output.c:525,1
    - Dst: free
      Src: /src/clamav/common/output.c:526,1
    - Dst: free
      Src: /src/clamav/common/output.c:527,1
    - Dst: free
      Src: /src/clamav/common/output.c:530,1
    - Dst: free
      Src: /src/clamav/common/output.c:532,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:540,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:546,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:550,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:552,1
    - Dst: fprintf
      Src: /src/clamav/common/output.c:554,1
    - Dst: fflush
      Src: /src/clamav/common/output.c:558,1
    - Dst: free
      Src: /src/clamav/common/output.c:561,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 2
    argNames:
    - loglevel
    - str
    argTypes:
    - loglevel_t
    - char*
    constantsTouched: []
    func_position:
      end: 562
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 562
    functionName: mprintf
    functionSourceFile: /src/clamav/common/output.c
    functionUses: 7
    functionsReached:
    - vsnprintf
    - MultiByteToWideChar
    - ARGLEN
    - WideCharToMultiByte
    - va_start
    - fprintf
    - fflush
    - va_end
    - malloc
    - free
    linkageType: ''
    returnType: void
    signature: void mprintf(loglevel_t loglevel, const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/common/output.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 645
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 645
    functionName: logg_facility
    functionSourceFile: /src/clamav/common/output.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int logg_facility(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:63,1
    - Dst: strerror
      Src: /src/clamav/common/clamdcom.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - sockd
    - line
    - len
    argTypes:
    - int
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: sendln
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 4
    functionsReached:
    - logg
    - strerror
    linkageType: ''
    returnType: int
    signature: int sendln(int sockd, const char *line, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - sockd
    argTypes:
    - struct RCVLN*
    - int
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: recvlninit
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void recvlninit(struct RCVLN *s, int sockd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/clamav/common/clamdcom.c:95,1
    - Dst: strcmp
      Src: /src/clamav/common/clamdcom.c:103,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:104,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:106,1
    - Dst: memchr
      Src: /src/clamav/common/clamdcom.c:112,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:127,1
    - Dst: memmove
      Src: /src/clamav/common/clamdcom.c:132,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - s
    - rbol
    - reol
    argTypes:
    - struct RCVLN*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 139
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 139
    functionName: recvln
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 3
    functionsReached:
    - strcmp
    - memchr
    - recv
    - logg
    - memmove
    linkageType: ''
    returnType: int
    signature: int recvln(struct RCVLN *s, char **rbol, char **reol)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/common/clamdcom.c:154,1
    - Dst: match_regex
      Src: /src/clamav/common/clamdcom.c:156,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:157,1
    - Dst: free
      Src: /src/clamav/common/clamdcom.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - path
    - clamdopts
    argTypes:
    - char*
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: chkpath
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 3
    functionsReached:
    - free
    - logg
    - optget
    - match_regex
    linkageType: ''
    returnType: int
    signature: int chkpath(const char *path, struct optstruct *clamdopts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/common/clamdcom.c:186,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:187,1
    - Dst: sendln
      Src: /src/clamav/common/clamdcom.c:192,1
    - Dst: close
      Src: /src/clamav/common/clamdcom.c:193,1
    - Dst: memset
      Src: /src/clamav/common/clamdcom.c:199,1
    - Dst: CMSG_LEN
      Src: /src/clamav/common/clamdcom.c:203,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/clamav/common/clamdcom.c:204,1
    - Dst: CMSG_LEN
      Src: /src/clamav/common/clamdcom.c:205,1
    - Dst: CMSG_DATA
      Src: /src/clamav/common/clamdcom.c:208,1
    - Dst: sendmsg
      Src: /src/clamav/common/clamdcom.c:209,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:210,1
    - Dst: strerror
      Src: /src/clamav/common/clamdcom.c:210,1
    - Dst: close
      Src: /src/clamav/common/clamdcom.c:211,1
    - Dst: close
      Src: /src/clamav/common/clamdcom.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - sockd
    - filename
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 216
    functionName: send_fdpass
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 1
    functionsReached:
    - sendln
    - close
    - memset
    - sendmsg
    - CMSG_DATA
    - strerror
    - open
    - CMSG_LEN
    - logg
    - CMSG_FIRSTHDR
    linkageType: ''
    returnType: int
    signature: int send_fdpass(int sockd, const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: safe_open
      Src: /src/clamav/common/clamdcom.c:229,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:230,1
    - Dst: sendln
      Src: /src/clamav/common/clamdcom.c:238,1
    - Dst: close
      Src: /src/clamav/common/clamdcom.c:239,1
    - Dst: read
      Src: /src/clamav/common/clamdcom.c:243,1
    - Dst: htonl
      Src: /src/clamav/common/clamdcom.c:245,1
    - Dst: sendln
      Src: /src/clamav/common/clamdcom.c:246,1
    - Dst: close
      Src: /src/clamav/common/clamdcom.c:247,1
    - Dst: close
      Src: /src/clamav/common/clamdcom.c:256,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:258,1
    - Dst: sendln
      Src: /src/clamav/common/clamdcom.c:262,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - sockd
    - filename
    - clamdopts
    argTypes:
    - int
    - char*
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 264
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 264
    functionName: send_stream
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 1
    functionsReached:
    - sendln
    - close
    - htonl
    - safe_open
    - read
    - logg
    linkageType: ''
    returnType: int
    signature: int send_stream(int sockd, const char *filename, struct optstruct *clamdopts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/common/clamdcom.c:277,1
    - Dst: socket
      Src: /src/clamav/common/clamdcom.c:279,1
    - Dst: connect
      Src: /src/clamav/common/clamdcom.c:280,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:283,1
    - Dst: strerror
      Src: /src/clamav/common/clamdcom.c:283,1
    - Dst: close
      Src: /src/clamav/common/clamdcom.c:284,1
    - Dst: snprintf
      Src: /src/clamav/common/clamdcom.c:290,1
    - Dst: optget
      Src: /src/clamav/common/clamdcom.c:290,1
    - Dst: optget
      Src: /src/clamav/common/clamdcom.c:292,1
    - Dst: strcmp
      Src: /src/clamav/common/clamdcom.c:297,1
    - Dst: memset
      Src: /src/clamav/common/clamdcom.c:299,1
    - Dst: getaddrinfo
      Src: /src/clamav/common/clamdcom.c:303,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:304,1
    - Dst: gai_strerror
      Src: /src/clamav/common/clamdcom.c:304,1
    - Dst: socket
      Src: /src/clamav/common/clamdcom.c:310,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:311,1
    - Dst: strerror
      Src: /src/clamav/common/clamdcom.c:311,1
    - Dst: connect
      Src: /src/clamav/common/clamdcom.c:315,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:316,1
    - Dst: strerror
      Src: /src/clamav/common/clamdcom.c:316,1
    - Dst: closesocket
      Src: /src/clamav/common/clamdcom.c:317,1
    - Dst: freeaddrinfo
      Src: /src/clamav/common/clamdcom.c:321,1
    - Dst: freeaddrinfo
      Src: /src/clamav/common/clamdcom.c:325,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - clamdopts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 331
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 331
    functionName: dconnect
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 6
    functionsReached:
    - connect
    - close
    - memset
    - snprintf
    - strcmp
    - strerror
    - getaddrinfo
    - optget
    - logg
    - closesocket
    - socket
    - freeaddrinfo
    - gai_strerror
    linkageType: ''
    returnType: int
    signature: int dconnect(struct optstruct *clamdopts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chkpath
      Src: /src/clamav/common/clamdcom.c:345,1
    - Dst: recvlninit
      Src: /src/clamav/common/clamdcom.c:350,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:357,1
    - Dst: strlen
      Src: /src/clamav/common/clamdcom.c:361,1
    - Dst: strlen
      Src: /src/clamav/common/clamdcom.c:361,1
    - Dst: malloc
      Src: /src/clamav/common/clamdcom.c:362,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:363,1
    - Dst: strerror
      Src: /src/clamav/common/clamdcom.c:363,1
    - Dst: sprintf
      Src: /src/clamav/common/clamdcom.c:367,1
    - Dst: sendln
      Src: /src/clamav/common/clamdcom.c:368,1
    - Dst: free
      Src: /src/clamav/common/clamdcom.c:369,1
    - Dst: free
      Src: /src/clamav/common/clamdcom.c:373,1
    - Dst: send_stream
      Src: /src/clamav/common/clamdcom.c:378,1
    - Dst: send_fdpass
      Src: /src/clamav/common/clamdcom.c:383,1
    - Dst: recvln
      Src: /src/clamav/common/clamdcom.c:397,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:403,1
    - Dst: strrchr
      Src: /src/clamav/common/clamdcom.c:409,1
    - Dst: strrchr
      Src: /src/clamav/common/clamdcom.c:412,1
    - Dst: strncmp
      Src: /src/clamav/common/clamdcom.c:416,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:417,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:420,1
    - Dst: memcmp
      Src: /src/clamav/common/clamdcom.c:423,1
    - Dst: strcmp
      Src: /src/clamav/common/clamdcom.c:431,1
    - Dst: strncpy
      Src: /src/clamav/common/clamdcom.c:433,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:439,1
    - Dst: action
      Src: /src/clamav/common/clamdcom.c:440,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:442,1
    - Dst: action
      Src: /src/clamav/common/clamdcom.c:445,1
    - Dst: memcmp
      Src: /src/clamav/common/clamdcom.c:448,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:455,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:457,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:464,1
    - Dst: CLAMSTAT
      Src: /src/clamav/common/clamdcom.c:468,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:469,1
    - Dst: strerror
      Src: /src/clamav/common/clamdcom.c:470,1
    - Dst: S_ISDIR
      Src: /src/clamav/common/clamdcom.c:474,1
    - Dst: logg
      Src: /src/clamav/common/clamdcom.c:475,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 137
    argCount: 6
    argNames:
    - sockd
    - scantype
    - filename
    - printok
    - errors
    - clamdopts
    argTypes:
    - int
    - int
    - char*
    - int*
    - int*
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 483
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 483
    functionName: dsresult
    functionSourceFile: /src/clamav/common/clamdcom.c
    functionUses: 2
    functionsReached:
    - action
    - S_ISDIR
    - send_fdpass
    - memcmp
    - send_stream
    - sprintf
    - strcmp
    - strerror
    - strncpy
    - strrchr
    - malloc
    - free
    - sendln
    - strlen
    - recvln
    - CLAMSTAT
    - recvlninit
    - chkpath
    - logg
    - strncmp
    linkageType: ''
    returnType: int
    signature: int dsresult(int sockd, int scantype, const char *filename, int *printok,
      int *errors, struct optstruct *clamdopts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/common/tar.c:64,1
    - Dst: FSTAT
      Src: /src/clamav/common/tar.c:67,1
    - Dst: close
      Src: /src/clamav/common/tar.c:68,1
    - Dst: memset
      Src: /src/clamav/common/tar.c:72,1
    - Dst: strncpy
      Src: /src/clamav/common/tar.c:73,1
    - Dst: snprintf
      Src: /src/clamav/common/tar.c:75,1
    - Dst: snprintf
      Src: /src/clamav/common/tar.c:79,1
    - Dst: gzwrite
      Src: /src/clamav/common/tar.c:82,1
    - Dst: close
      Src: /src/clamav/common/tar.c:83,1
    - Dst: write
      Src: /src/clamav/common/tar.c:87,1
    - Dst: close
      Src: /src/clamav/common/tar.c:88,1
    - Dst: read
      Src: /src/clamav/common/tar.c:93,1
    - Dst: gzwrite
      Src: /src/clamav/common/tar.c:95,1
    - Dst: close
      Src: /src/clamav/common/tar.c:96,1
    - Dst: write
      Src: /src/clamav/common/tar.c:100,1
    - Dst: close
      Src: /src/clamav/common/tar.c:101,1
    - Dst: close
      Src: /src/clamav/common/tar.c:106,1
    - Dst: memset
      Src: /src/clamav/common/tar.c:109,1
    - Dst: gzwrite
      Src: /src/clamav/common/tar.c:111,1
    - Dst: write
      Src: /src/clamav/common/tar.c:114,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 3
    argNames:
    - fd
    - gzs
    - file
    argTypes:
    - int
    - gzFile
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 120
    functionName: tar_addfile
    functionSourceFile: /src/clamav/common/tar.c
    functionUses: 1
    functionsReached:
    - close
    - memset
    - snprintf
    - open
    - strncpy
    - write
    - FSTAT
    - read
    - gzwrite
    linkageType: ''
    returnType: int
    signature: int tar_addfile(int fd, gzFile gzs, const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _stricmp
      Src: /src/clamav/common/scanmem.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - list
    - filename
    argTypes:
    - filelist_t**
    - char*
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: lookup_cache
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - _stricmp
    linkageType: ''
    returnType: int
    signature: int lookup_cache(filelist_t **list, const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/common/scanmem.c:61,1
    - Dst: malloc
      Src: /src/clamav/common/scanmem.c:66,1
    - Dst: strncat
      Src: /src/clamav/common/scanmem.c:72,1
    - Dst: strlen
      Src: /src/clamav/common/scanmem.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - list
    - filename
    - res
    argTypes:
    - filelist_t**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 75
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 75
    functionName: insert_cache
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - strlen
    - malloc
    - strncat
    linkageType: ''
    returnType: void
    signature: "void insert_cache(filelist_t **list, const char *filename,\n                                int
      res)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/common/scanmem.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - filelist_t**
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: free_cache
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_cache(filelist_t **list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WideCharToMultiByte
      Src: /src/clamav/common/scanmem.c:98,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:99,1
    - Dst: fprintf
      Src: /src/clamav/common/scanmem.c:100,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:100,1
    - Dst: malloc
      Src: /src/clamav/common/scanmem.c:104,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/common/scanmem.c:107,1
    - Dst: free
      Src: /src/clamav/common/scanmem.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - wc
    - flags
    argTypes:
    - wchar_t*
    - DWORD
    constantsTouched: []
    func_position:
      end: 111
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 111
    functionName: wc2mb
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - WideCharToMultiByte
    - fprintf
    - malloc
    - free
    linkageType: ''
    returnType: char
    signature: char *wc2mb(const wchar_t *wc, DWORD flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/clamav/common/scanmem.c:120,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:121,1
    - Dst: OpenProcessToken
      Src: /src/clamav/common/scanmem.c:125,1
    - Dst: GetCurrentProcess
      Src: /src/clamav/common/scanmem.c:126,1
    - Dst: LookupPrivilegeValue
      Src: /src/clamav/common/scanmem.c:130,1
    - Dst: AdjustTokenPrivileges
      Src: /src/clamav/common/scanmem.c:137,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:139,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - PrivilegeName
    - yesno
    argTypes:
    - LPCSTR
    - DWORD
    constantsTouched: []
    func_position:
      end: 141
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 141
    functionName: EnablePrivilege
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    - LoadLibraryA
    - GetLastError
    - OpenProcessToken
    - logg
    - AdjustTokenPrivileges
    - CloseHandle
    - LookupPrivilegeValue
    linkageType: ''
    returnType: int
    signature: int EnablePrivilege(LPCSTR PrivilegeName, DWORD yesno)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _wcsdup
      Src: /src/clamav/common/scanmem.c:147,1
    - Dst: wcslen
      Src: /src/clamav/common/scanmem.c:158,1
    - Dst: FindFirstFileW
      Src: /src/clamav/common/scanmem.c:164,1
    - Dst: wcslen
      Src: /src/clamav/common/scanmem.c:167,1
    - Dst: FindClose
      Src: /src/clamav/common/scanmem.c:171,1
    - Dst: wcslen
      Src: /src/clamav/common/scanmem.c:172,1
    - Dst: wcslen
      Src: /src/clamav/common/scanmem.c:173,1
    - Dst: wcsrchr
      Src: /src/clamav/common/scanmem.c:183,1
    - Dst: wcslen
      Src: /src/clamav/common/scanmem.c:187,1
    - Dst: free
      Src: /src/clamav/common/scanmem.c:191,1
    - Dst: wc2mb
      Src: /src/clamav/common/scanmem.c:192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - filename
    argTypes:
    - wchar_t*
    constantsTouched: []
    func_position:
      end: 193
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 193
    functionName: getaltpath
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - FindClose
    - wcsrchr
    - wc2mb
    - _wcsdup
    - free
    - FindFirstFileW
    - wcslen
    linkageType: ''
    returnType: char
    signature: char *getaltpath(const wchar_t *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:201,1
    - Dst: CreateToolhelp32Snapshot
      Src: /src/clamav/common/scanmem.c:203,1
    - Dst: Process32First
      Src: /src/clamav/common/scanmem.c:209,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:210,1
    - Dst: CreateToolhelp32Snapshot
      Src: /src/clamav/common/scanmem.c:218,1
    - Dst: Module32First
      Src: /src/clamav/common/scanmem.c:224,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:225,1
    - Dst: CreateFileA
      Src: /src/clamav/common/scanmem.c:230,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:235,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:241,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:243,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:248,1
    - Dst: OpenProcess
      Src: /src/clamav/common/scanmem.c:253,1
    - Dst: GetModuleFileNameExW
      Src: /src/clamav/common/scanmem.c:256,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:257,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:257,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:258,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:261,1
    - Dst: getaltpath
      Src: /src/clamav/common/scanmem.c:263,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:264,1
    - Dst: strcpy
      Src: /src/clamav/common/scanmem.c:267,1
    - Dst: free
      Src: /src/clamav/common/scanmem.c:268,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:270,1
    - Dst: callback
      Src: /src/clamav/common/scanmem.c:274,1
    - Dst: Module32Next
      Src: /src/clamav/common/scanmem.c:276,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:278,1
    - Dst: Process32Next
      Src: /src/clamav/common/scanmem.c:279,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:280,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 3
    argNames:
    - callback
    - data
    - info
    argTypes:
    - proc_callback
    - void*
    - struct mem_info*
    constantsTouched: []
    func_position:
      end: 282
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 282
    functionName: walkmodules_th
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - Process32First
    - getaltpath
    - callback
    - CreateFileA
    - CreateToolhelp32Snapshot
    - OpenProcess
    - Module32First
    - GetLastError
    - Module32Next
    - GetModuleFileNameExW
    - logg
    - CloseHandle
    - strcpy
    - Process32Next
    - free
    linkageType: ''
    returnType: int
    signature: int walkmodules_th(proc_callback callback, void *data, struct mem_info
      *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:294,1
    - Dst: EnumProcesses
      Src: /src/clamav/common/scanmem.c:296,1
    - Dst: memset
      Src: /src/clamav/common/scanmem.c:301,1
    - Dst: memset
      Src: /src/clamav/common/scanmem.c:302,1
    - Dst: OpenProcess
      Src: /src/clamav/common/scanmem.c:310,1
    - Dst: EnumProcessModules
      Src: /src/clamav/common/scanmem.c:316,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:318,1
    - Dst: GetModuleBaseNameA
      Src: /src/clamav/common/scanmem.c:322,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:324,1
    - Dst: GetModuleBaseNameA
      Src: /src/clamav/common/scanmem.c:331,1
    - Dst: GetModuleFileNameExA
      Src: /src/clamav/common/scanmem.c:335,1
    - Dst: GetModuleInformation
      Src: /src/clamav/common/scanmem.c:339,1
    - Dst: callback
      Src: /src/clamav/common/scanmem.c:347,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:350,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 3
    argNames:
    - callback
    - data
    - info
    argTypes:
    - proc_callback
    - void*
    - struct mem_info*
    constantsTouched: []
    func_position:
      end: 353
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 353
    functionName: walkmodules_psapi
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - callback
    - memset
    - OpenProcess
    - GetModuleFileNameExA
    - GetModuleInformation
    - EnumProcesses
    - EnumProcessModules
    - logg
    - CloseHandle
    - GetModuleBaseNameA
    linkageType: ''
    returnType: int
    signature: int walkmodules_psapi(proc_callback callback, void *data, struct mem_info
      *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcessId
      Src: /src/clamav/common/scanmem.c:358,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:359,1
    - Dst: OpenProcess
      Src: /src/clamav/common/scanmem.c:363,1
    - Dst: TerminateProcess
      Src: /src/clamav/common/scanmem.c:364,1
    - Dst: WaitForSingleObject
      Src: /src/clamav/common/scanmem.c:365,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:366,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:367,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:369,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pid
    argTypes:
    - DWORD
    constantsTouched: []
    func_position:
      end: 371
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 371
    functionName: kill_process
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - OpenProcess
    - TerminateProcess
    - GetLastError
    - WaitForSingleObject
    - GetCurrentProcessId
    - logg
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int kill_process(DWORD pid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcessId
      Src: /src/clamav/common/scanmem.c:380,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:381,1
    - Dst: OpenProcess
      Src: /src/clamav/common/scanmem.c:385,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:390,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:390,1
    - Dst: CreateRemoteThread
      Src: /src/clamav/common/scanmem.c:394,1
    - Dst: WaitForSingleObject
      Src: /src/clamav/common/scanmem.c:397,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:398,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:399,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:400,1
    - Dst: kill_process
      Src: /src/clamav/common/scanmem.c:402,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:404,1
    - Dst: GetLastError
      Src: /src/clamav/common/scanmem.c:407,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:409,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:412,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - pid
    - hModule
    argTypes:
    - DWORD
    - HANDLE
    constantsTouched: []
    func_position:
      end: 419
      start: 374
    functionDepth: 4
    functionLinenumber: 374
    functionLinenumberEnd: 419
    functionName: unload_module
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - OpenProcess
    - GetLastError
    - CreateRemoteThread
    - WaitForSingleObject
    - kill_process
    - GetCurrentProcessId
    - logg
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int unload_module(DWORD pid, HANDLE hModule)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FILLBYTES
      Src: /src/clamav/common/scanmem.c:439,1
    - Dst: FILLBYTES
      Src: /src/clamav/common/scanmem.c:447,1
    - Dst: FILLBYTES
      Src: /src/clamav/common/scanmem.c:455,1
    - Dst: IsBadReadPtr
      Src: /src/clamav/common/scanmem.c:462,1
    - Dst: IsBadReadPtr
      Src: /src/clamav/common/scanmem.c:467,1
    - Dst: IsBadWritePtr
      Src: /src/clamav/common/scanmem.c:479,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 487
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 487
    functionName: align_pe
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - FILLBYTES
    - IsBadWritePtr
    - IsBadReadPtr
    linkageType: ''
    returnType: int
    signature: int align_pe(unsigned char *buffer, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcess
      Src: /src/clamav/common/scanmem.c:502,1
    - Dst: malloc
      Src: /src/clamav/common/scanmem.c:505,1
    - Dst: ReadProcessMemory
      Src: /src/clamav/common/scanmem.c:506,1
    - Dst: free
      Src: /src/clamav/common/scanmem.c:508,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:509,1
    - Dst: CloseHandle
      Src: /src/clamav/common/scanmem.c:513,1
    - Dst: align_pe
      Src: /src/clamav/common/scanmem.c:516,1
    - Dst: CreateFileA
      Src: /src/clamav/common/scanmem.c:518,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:521,1
    - Dst: free
      Src: /src/clamav/common/scanmem.c:522,1
    - Dst: WriteFile
      Src: /src/clamav/common/scanmem.c:526,1
    - Dst: _open_osfhandle
      Src: /src/clamav/common/scanmem.c:527,1
    - Dst: free
      Src: /src/clamav/common/scanmem.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - filename
    - ProcStruct
    - me32
    argTypes:
    - char*
    - PROCESSENTRY32
    - MODULEENTRY32
    constantsTouched: []
    func_position:
      end: 530
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 530
    functionName: dump_pe
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - align_pe
    - CreateFileA
    - OpenProcess
    - _open_osfhandle
    - ReadProcessMemory
    - WriteFile
    - logg
    - CloseHandle
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: "int dump_pe(const char *filename, PROCESSENTRY32 ProcStruct,\n            MODULEENTRY32
      me32)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:539,1
    - Dst: safe_open
      Src: /src/clamav/common/scanmem.c:541,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:542,1
    - Dst: strerror
      Src: /src/clamav/common/scanmem.c:542,1
    - Dst: optget
      Src: /src/clamav/common/scanmem.c:547,1
    - Dst: optget
      Src: /src/clamav/common/scanmem.c:549,1
    - Dst: optget
      Src: /src/clamav/common/scanmem.c:551,1
    - Dst: dconnect
      Src: /src/clamav/common/scanmem.c:556,1
    - Dst: dsresult
      Src: /src/clamav/common/scanmem.c:560,1
    - Dst: cl_scandesc
      Src: /src/clamav/common/scanmem.c:565,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:567,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:570,1
    - Dst: close
      Src: /src/clamav/common/scanmem.c:574,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - filename
    - scan_data
    - info
    argTypes:
    - char*
    - scanmem_data*
    - struct mem_info*
    constantsTouched: []
    func_position:
      end: 576
      start: 532
    functionDepth: 6
    functionLinenumber: 532
    functionLinenumberEnd: 576
    functionName: scanfile
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 4
    functionsReached:
    - close
    - strerror
    - safe_open
    - dconnect
    - cl_scandesc
    - optget
    - dsresult
    - logg
    linkageType: ''
    returnType: int
    signature: int scanfile(const char *filename, scanmem_data *scan_data, struct
      mem_info *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/common/scanmem.c:593,1
    - Dst: strncmp
      Src: /src/clamav/common/scanmem.c:594,1
    - Dst: strncat
      Src: /src/clamav/common/scanmem.c:596,1
    - Dst: strlen
      Src: /src/clamav/common/scanmem.c:596,1
    - Dst: snprintf
      Src: /src/clamav/common/scanmem.c:598,1
    - Dst: ExpandEnvironmentStringsA
      Src: /src/clamav/common/scanmem.c:601,1
    - Dst: strncpy
      Src: /src/clamav/common/scanmem.c:606,1
    - Dst: lookup_cache
      Src: /src/clamav/common/scanmem.c:610,1
    - Dst: _stricmp
      Src: /src/clamav/common/scanmem.c:611,1
    - Dst: _stricmp
      Src: /src/clamav/common/scanmem.c:612,1
    - Dst: chkpath
      Src: /src/clamav/common/scanmem.c:624,1
    - Dst: scanfile
      Src: /src/clamav/common/scanmem.c:625,1
    - Dst: is_packed
      Src: /src/clamav/common/scanmem.c:627,1
    - Dst: dump_pe
      Src: /src/clamav/common/scanmem.c:630,1
    - Dst: close
      Src: /src/clamav/common/scanmem.c:631,1
    - Dst: scanfile
      Src: /src/clamav/common/scanmem.c:632,1
    - Dst: DeleteFileA
      Src: /src/clamav/common/scanmem.c:633,1
    - Dst: free
      Src: /src/clamav/common/scanmem.c:635,1
    - Dst: insert_cache
      Src: /src/clamav/common/scanmem.c:637,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:642,1
    - Dst: kill_process
      Src: /src/clamav/common/scanmem.c:643,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:645,1
    - Dst: unload_module
      Src: /src/clamav/common/scanmem.c:646,1
    - Dst: action
      Src: /src/clamav/common/scanmem.c:652,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 4
    argNames:
    - ProcStruct
    - me32
    - data
    - info
    argTypes:
    - PROCESSENTRY32
    - MODULEENTRY32
    - void*
    - struct mem_info*
    constantsTouched: []
    func_position:
      end: 656
      start: 578
    functionDepth: 5
    functionLinenumber: 578
    functionLinenumberEnd: 656
    functionName: scanmem_cb
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 0
    functionsReached:
    - snprintf
    - action
    - insert_cache
    - kill_process
    - scanfile
    - _stricmp
    - strncpy
    - strncat
    - ExpandEnvironmentStringsA
    - DeleteFileA
    - close
    - free
    - is_packed
    - unload_module
    - strlen
    - lookup_cache
    - chkpath
    - logg
    - strncmp
    - dump_pe
    linkageType: ''
    returnType: int
    signature: int scanmem_cb(PROCESSENTRY32 ProcStruct, MODULEENTRY32 me32, void
      *data, struct mem_info *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryA
      Src: /src/clamav/common/scanmem.c:670,1
    - Dst: LoadLibraryA
      Src: /src/clamav/common/scanmem.c:671,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:674,1
    - Dst: optget
      Src: /src/clamav/common/scanmem.c:678,1
    - Dst: optget
      Src: /src/clamav/common/scanmem.c:680,1
    - Dst: optget
      Src: /src/clamav/common/scanmem.c:682,1
    - Dst: optget
      Src: /src/clamav/common/scanmem.c:684,1
    - Dst: dconnect
      Src: /src/clamav/common/scanmem.c:688,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:694,1
    - Dst: EnablePrivilege
      Src: /src/clamav/common/scanmem.c:696,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:697,1
    - Dst: walkmodules_th
      Src: /src/clamav/common/scanmem.c:701,1
    - Dst: walkmodules_psapi
      Src: /src/clamav/common/scanmem.c:703,1
    - Dst: free_cache
      Src: /src/clamav/common/scanmem.c:704,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:706,1
    - Dst: logg
      Src: /src/clamav/common/scanmem.c:708,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_info*
    constantsTouched: []
    func_position:
      end: 710
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 710
    functionName: scanmem
    functionSourceFile: /src/clamav/common/scanmem.c
    functionUses: 1
    functionsReached:
    - LoadLibraryA
    - dconnect
    - EnablePrivilege
    - walkmodules_th
    - optget
    - walkmodules_psapi
    - logg
    - free_cache
    linkageType: ''
    returnType: int
    signature: int scanmem(struct mem_info *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenSCManagerA
      Src: /src/clamav/common/service.c:41,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:42,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:43,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:45,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:45,1
    - Dst: OpenServiceA
      Src: /src/clamav/common/service.c:49,1
    - Dst: DeleteService
      Src: /src/clamav/common/service.c:50,1
    - Dst: printf
      Src: /src/clamav/common/service.c:51,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:53,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:53,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:57,1
    - Dst: printf
      Src: /src/clamav/common/service.c:58,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:60,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:60,1
    - Dst: CloseServiceHandle
      Src: /src/clamav/common/service.c:65,1
    - Dst: CloseServiceHandle
      Src: /src/clamav/common/service.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - name
    - verbose
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: svc_uninstall
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - CloseServiceHandle
    - GetLastError
    - printf
    - fprintf
    - DeleteService
    - OpenSCManagerA
    - OpenServiceA
    linkageType: ''
    returnType: int
    signature: int svc_uninstall(const char *name, int verbose)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileName
      Src: /src/clamav/common/service.c:77,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:78,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:78,1
    - Dst: svc_uninstall
      Src: /src/clamav/common/service.c:82,1
    - Dst: OpenSCManagerA
      Src: /src/clamav/common/service.c:84,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:85,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:86,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:88,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:88,1
    - Dst: strchr
      Src: /src/clamav/common/service.c:92,1
    - Dst: snprintf
      Src: /src/clamav/common/service.c:93,1
    - Dst: snprintf
      Src: /src/clamav/common/service.c:95,1
    - Dst: CreateServiceA
      Src: /src/clamav/common/service.c:97,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:109,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:109,1
    - Dst: CloseServiceHandle
      Src: /src/clamav/common/service.c:110,1
    - Dst: ChangeServiceConfig2A
      Src: /src/clamav/common/service.c:115,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:116,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:116,1
    - Dst: CloseServiceHandle
      Src: /src/clamav/common/service.c:118,1
    - Dst: CloseServiceHandle
      Src: /src/clamav/common/service.c:119,1
    - Dst: printf
      Src: /src/clamav/common/service.c:121,1
    - Dst: printf
      Src: /src/clamav/common/service.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - name
    - dname
    - desc
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 124
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 124
    functionName: svc_install
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - snprintf
    - CloseServiceHandle
    - GetLastError
    - strchr
    - printf
    - fprintf
    - ChangeServiceConfig2A
    - OpenSCManagerA
    - svc_uninstall
    - GetModuleFileName
    - CreateServiceA
    linkageType: ''
    returnType: int
    signature: int svc_install(const char *name, const char *dname, const char *desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/common/service.c:133,1
    - Dst: RegOpenKeyExA
      Src: /src/clamav/common/service.c:135,1
    - Dst: RegQueryValueExA
      Src: /src/clamav/common/service.c:138,1
    - Dst: RegCloseKey
      Src: /src/clamav/common/service.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 143
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 143
    functionName: svc_getcpvalue
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - snprintf
    - RegOpenKeyExA
    - RegQueryValueExA
    - RegCloseKey
    linkageType: ''
    returnType: void
    signature: void svc_getcpvalue(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: svc_getcpvalue
      Src: /src/clamav/common/service.c:149,1
    - Dst: CreateEvent
      Src: /src/clamav/common/service.c:151,1
    - Dst: CreateThread
      Src: /src/clamav/common/service.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: svc_register
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - svc_getcpvalue
    - CreateEvent
    - CreateThread
    linkageType: ''
    returnType: void
    signature: void svc_register(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/clamav/common/service.c:157,1
    - Dst: SetServiceStatus
      Src: /src/clamav/common/service.c:163,1
    - Dst: logg
      Src: /src/clamav/common/service.c:164,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:164,1
    - Dst: exit
      Src: /src/clamav/common/service.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: svc_ready
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - exit
    - WaitForSingleObject
    - SetServiceStatus
    - logg
    linkageType: ''
    returnType: void
    signature: void svc_ready(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetServiceStatus
      Src: /src/clamav/common/service.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - type
    - name
    - custom
    - context
    argTypes:
    - char*
    - char*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: svc_checkpoint
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - SetServiceStatus
    linkageType: ''
    returnType: int
    signature: int svc_checkpoint(const char *type, const char *name, unsigned int
      custom, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetServiceStatus
      Src: /src/clamav/common/service.c:186,1
    - Dst: SetServiceStatus
      Src: /src/clamav/common/service.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - code
    argTypes:
    - DWORD
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: ServiceCtrlHandler
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - SetServiceStatus
    linkageType: ''
    returnType: void
    signature: void ServiceCtrlHandler(DWORD code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleCtrlHandler
      Src: /src/clamav/common/service.c:198,1
    - Dst: fprintf
      Src: /src/clamav/common/service.c:199,1
    - Dst: exit
      Src: /src/clamav/common/service.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - CtrlType
    argTypes:
    - DWORD
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: cw_stop_ctrl_handler
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    - SetConsoleCtrlHandler
    linkageType: ''
    returnType: BOOL
    signature: BOOL cw_stop_ctrl_handler(DWORD CtrlType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegisterServiceCtrlHandlerA
      Src: /src/clamav/common/service.c:215,1
    - Dst: logg
      Src: /src/clamav/common/service.c:216,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:216,1
    - Dst: exit
      Src: /src/clamav/common/service.c:217,1
    - Dst: SetServiceStatus
      Src: /src/clamav/common/service.c:220,1
    - Dst: logg
      Src: /src/clamav/common/service.c:221,1
    - Dst: GetLastError
      Src: /src/clamav/common/service.c:221,1
    - Dst: exit
      Src: /src/clamav/common/service.c:222,1
    - Dst: SetEvent
      Src: /src/clamav/common/service.c:225,1
    - Dst: WaitForSingleObject
      Src: /src/clamav/common/service.c:226,1
    - Dst: cw_stop_ctrl_handler
      Src: /src/clamav/common/service.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - dwArgc
    - lpszArgv
    argTypes:
    - DWORD
    - LPSTR*
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: ServiceMain
    functionSourceFile: /src/clamav/common/service.c
    functionUses: 0
    functionsReached:
    - RegisterServiceCtrlHandlerA
    - GetLastError
    - exit
    - WaitForSingleObject
    - SetServiceStatus
    - logg
    - SetEvent
    - cw_stop_ctrl_handler
    linkageType: ''
    returnType: void
    signature: void ServiceMain(DWORD dwArgc, LPSTR *lpszArgv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:49,1
    - Dst: BIO_new
      Src: /src/clamav/common/cert_util.c:54,1
    - Dst: BIO_s_mem
      Src: /src/clamav/common/cert_util.c:54,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:56,1
    - Dst: PEM_write_bio_X509
      Src: /src/clamav/common/cert_util.c:60,1
    - Dst: BIO_flush
      Src: /src/clamav/common/cert_util.c:62,1
    - Dst: BIO_get_mem_data
      Src: /src/clamav/common/cert_util.c:65,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:67,1
    - Dst: BIO_free_all
      Src: /src/clamav/common/cert_util.c:68,1
    - Dst: calloc
      Src: /src/clamav/common/cert_util.c:72,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:74,1
    - Dst: BIO_free_all
      Src: /src/clamav/common/cert_util.c:75,1
    - Dst: memcpy
      Src: /src/clamav/common/cert_util.c:78,1
    - Dst: BIO_free_all
      Src: /src/clamav/common/cert_util.c:83,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - cert
    - data
    - len
    argTypes:
    - X509*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 89
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 89
    functionName: _x509_to_pem
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - calloc
    - BIO_new
    - BIO_get_mem_data
    - BIO_free_all
    - BIO_flush
    - memcpy
    - BIO_s_mem
    - PEM_write_bio_X509
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t _x509_to_pem(X509 *cert,\n                               char
      **data,\n                               int *len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:122,1
    - Dst: _x509_to_pem
      Src: /src/clamav/common/cert_util.c:128,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:129,1
    - Dst: realloc
      Src: /src/clamav/common/cert_util.c:134,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:136,1
    - Dst: free
      Src: /src/clamav/common/cert_util.c:139,1
    - Dst: memcpy
      Src: /src/clamav/common/cert_util.c:152,1
    - Dst: free
      Src: /src/clamav/common/cert_util.c:160,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - ca_cert
    - cert_data
    - total_buf_len
    - remaining_buf_len
    argTypes:
    - X509*
    - char**
    - int*
    - size_t*
    constantsTouched: []
    func_position:
      end: 163
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 163
    functionName: _x509_to_pem_append
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - realloc
    - _x509_to_pem
    - memcpy
    - free
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t _x509_to_pem_append(X509 *ca_cert,\n                                      char
      **cert_data,\n                                      int *total_buf_len,\n                                      size_t
      *remaining_buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: cert_store_get_int
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cert_store_t
    signature: cert_store_t *cert_store_get_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cert_store_free_cert_list_int
      Src: /src/clamav/common/cert_util.c:173,1
    - Dst: cert_store_free_cert_list_int
      Src: /src/clamav/common/cert_util.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: cert_store_unload_int
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - cert_store_free_cert_list_int
    linkageType: ''
    returnType: void
    signature: void cert_store_unload_int(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_free
      Src: /src/clamav/common/cert_util.c:185,1
    - Dst: free
      Src: /src/clamav/common/cert_util.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - cert_list
    argTypes:
    - cert_list_t*
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: cert_store_free_cert_list_int
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 1
    functionsReached:
    - X509_free
    - free
    linkageType: ''
    returnType: void
    signature: void cert_store_free_cert_list_int(cert_list_t *cert_list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/cert_util.c:199,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:202,1
    - Dst: cert_store_unload_int
      Src: /src/clamav/common/cert_util.c:205,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/cert_util.c:207,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: cert_store_unload
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - mprintf
    - pthread_mutex_unlock
    - cert_store_unload_int
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void cert_store_unload(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/clamav/common/cert_util.c:228,1
    - Dst: BIO_s_mem
      Src: /src/clamav/common/cert_util.c:228,1
    - Dst: BIO_new
      Src: /src/clamav/common/cert_util.c:232,1
    - Dst: BIO_s_mem
      Src: /src/clamav/common/cert_util.c:232,1
    - Dst: X509_get_subject_name
      Src: /src/clamav/common/cert_util.c:236,1
    - Dst: X509_NAME_print_ex
      Src: /src/clamav/common/cert_util.c:238,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:239,1
    - Dst: BIO_get_mem_ptr
      Src: /src/clamav/common/cert_util.c:242,1
    - Dst: X509_get_subject_name
      Src: /src/clamav/common/cert_util.c:244,1
    - Dst: X509_NAME_print_ex
      Src: /src/clamav/common/cert_util.c:246,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:247,1
    - Dst: BIO_get_mem_ptr
      Src: /src/clamav/common/cert_util.c:250,1
    - Dst: strncmp
      Src: /src/clamav/common/cert_util.c:252,1
    - Dst: MIN
      Src: /src/clamav/common/cert_util.c:252,1
    - Dst: BIO_free
      Src: /src/clamav/common/cert_util.c:257,1
    - Dst: BIO_free
      Src: /src/clamav/common/cert_util.c:259,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - cert_a
    - cert_b
    - cmp_out
    argTypes:
    - X509*
    - X509*
    - int*
    constantsTouched: []
    func_position:
      end: 262
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 262
    functionName: x509_cert_name_cmp
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - X509_NAME_print_ex
    - X509_get_subject_name
    - BIO_free
    - BIO_new
    - BIO_get_mem_ptr
    - MIN
    - BIO_s_mem
    - strncmp
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t x509_cert_name_cmp(X509 *cert_a, X509 *cert_b, int *cmp_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/clamav/common/cert_util.c:280,1
    - Dst: BIO_s_mem
      Src: /src/clamav/common/cert_util.c:280,1
    - Dst: X509_get_subject_name
      Src: /src/clamav/common/cert_util.c:284,1
    - Dst: X509_NAME_print_ex
      Src: /src/clamav/common/cert_util.c:286,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:287,1
    - Dst: BIO_get_mem_ptr
      Src: /src/clamav/common/cert_util.c:290,1
    - Dst: malloc
      Src: /src/clamav/common/cert_util.c:292,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:294,1
    - Dst: memcpy
      Src: /src/clamav/common/cert_util.c:298,1
    - Dst: BIO_free
      Src: /src/clamav/common/cert_util.c:306,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - cert
    - name
    argTypes:
    - X509*
    - char**
    constantsTouched: []
    func_position:
      end: 309
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 309
    functionName: x509_get_cert_name
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - X509_NAME_print_ex
    - X509_get_subject_name
    - BIO_free
    - BIO_new
    - BIO_get_mem_ptr
    - memcpy
    - malloc
    - BIO_s_mem
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t x509_get_cert_name(X509 *cert, char **name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:326,1
    - Dst: calloc
      Src: /src/clamav/common/cert_util.c:330,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:332,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/cert_util.c:337,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:340,1
    - Dst: _x509_to_pem_append
      Src: /src/clamav/common/cert_util.c:350,1
    - Dst: x509_cert_name_cmp
      Src: /src/clamav/common/cert_util.c:365,1
    - Dst: strcmp
      Src: /src/clamav/common/cert_util.c:375,1
    - Dst: _x509_to_pem_append
      Src: /src/clamav/common/cert_util.c:384,1
    - Dst: x509_cert_name_cmp
      Src: /src/clamav/common/cert_util.c:399,1
    - Dst: strcmp
      Src: /src/clamav/common/cert_util.c:409,1
    - Dst: _x509_to_pem_append
      Src: /src/clamav/common/cert_util.c:419,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/cert_util.c:430,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:433,1
    - Dst: free
      Src: /src/clamav/common/cert_util.c:439,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 75
    argCount: 3
    argNames:
    - cert_data
    - cert_data_len
    - additional_ca_cert
    argTypes:
    - char**
    - int*
    - X509*
    constantsTouched: []
    func_position:
      end: 444
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 444
    functionName: cert_store_export_pem
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - _x509_to_pem_append
    - x509_cert_name_cmp
    - calloc
    - strcmp
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - free
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cert_store_export_pem(char **cert_data,\n                                 int
      *cert_data_len,\n                                 X509 *additional_ca_cert)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:454,1
    - Dst: calloc
      Src: /src/clamav/common/cert_util.c:458,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:461,1
    - Dst: X509_cmp
      Src: /src/clamav/common/cert_util.c:470,1
    - Dst: X509_dup
      Src: /src/clamav/common/cert_util.c:481,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:483,1
    - Dst: cert_store_free_cert_list_int
      Src: /src/clamav/common/cert_util.c:490,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - trusted_certs
    - trusted_cert_count
    argTypes:
    - X509**
    - size_t
    constantsTouched: []
    func_position:
      end: 502
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 502
    functionName: cert_store_set_trusted_int
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - calloc
    - cert_store_free_cert_list_int
    - X509_cmp
    - X509_dup
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cert_store_set_trusted_int(X509 **trusted_certs, size_t
      trusted_cert_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/cert_util.c:509,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:512,1
    - Dst: cert_store_set_trusted_int
      Src: /src/clamav/common/cert_util.c:516,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/cert_util.c:519,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - trusted_certs
    - trusted_cert_count
    argTypes:
    - X509**
    - size_t
    constantsTouched: []
    func_position:
      end: 526
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 526
    functionName: cert_store_set_trusted
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - mprintf
    - pthread_mutex_unlock
    - cert_store_set_trusted_int
    - pthread_mutex_lock
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cert_store_set_trusted(X509 **trusted_certs, size_t trusted_cert_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/cert_util.c:533,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:536,1
    - Dst: cert_store_free_cert_list_int
      Src: /src/clamav/common/cert_util.c:541,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/cert_util.c:544,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 551
    functionName: cert_store_remove_trusted
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - mprintf
    - pthread_mutex_unlock
    - cert_store_free_cert_list_int
    - pthread_mutex_lock
    linkageType: ''
    returnType: size_t
    signature: size_t cert_store_remove_trusted(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:561,1
    - Dst: X509_STORE_add_cert
      Src: /src/clamav/common/cert_util.c:564,1
    - Dst: x509_get_cert_name
      Src: /src/clamav/common/cert_util.c:568,1
    - Dst: ERR_get_error
      Src: /src/clamav/common/cert_util.c:572,1
    - Dst: ERR_GET_REASON
      Src: /src/clamav/common/cert_util.c:573,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:574,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:577,1
    - Dst: ERR_error_string
      Src: /src/clamav/common/cert_util.c:578,1
    - Dst: free
      Src: /src/clamav/common/cert_util.c:583,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - store
    - certs
    - cert_count
    argTypes:
    - X509_STORE*
    - X509**
    - size_t
    constantsTouched: []
    func_position:
      end: 590
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 590
    functionName: cert_fill_X509_store
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - ERR_get_error
    - X509_STORE_add_cert
    - x509_get_cert_name
    - ERR_GET_REASON
    - free
    - ERR_error_string
    - mprintf
    linkageType: ''
    returnType: void
    signature: void cert_fill_X509_store(X509_STORE *store, X509 **certs, size_t cert_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:599,1
    - Dst: cert_store_get_int
      Src: /src/clamav/common/cert_util.c:603,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:605,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/cert_util.c:609,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:612,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:616,1
    - Dst: cert_fill_X509_store
      Src: /src/clamav/common/cert_util.c:622,1
    - Dst: cert_fill_X509_store
      Src: /src/clamav/common/cert_util.c:627,1
    - Dst: X509_STORE_add_cert
      Src: /src/clamav/common/cert_util.c:633,1
    - Dst: x509_get_cert_name
      Src: /src/clamav/common/cert_util.c:638,1
    - Dst: ERR_GET_REASON
      Src: /src/clamav/common/cert_util.c:642,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:643,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:646,1
    - Dst: ERR_GET_REASON
      Src: /src/clamav/common/cert_util.c:648,1
    - Dst: free
      Src: /src/clamav/common/cert_util.c:653,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/cert_util.c:661,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:664,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - store
    - additional_ca_cert
    argTypes:
    - X509_STORE*
    - X509*
    constantsTouched: []
    func_position:
      end: 667
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 667
    functionName: cert_store_export_certs
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - cert_fill_X509_store
    - cert_store_get_int
    - X509_STORE_add_cert
    - x509_get_cert_name
    - ERR_GET_REASON
    - free
    - pthread_mutex_lock
    - mprintf
    linkageType: ''
    returnType: void
    signature: void cert_store_export_certs(X509_STORE *store, X509 *additional_ca_cert)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/common/cert_util.c:674,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/common/cert_util.c:675,1
    - Dst: cert_store_get_int
      Src: /src/clamav/common/cert_util.c:677,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:679,1
    - Dst: cert_store_load
      Src: /src/clamav/common/cert_util.c:684,1
    - Dst: mprintf
      Src: /src/clamav/common/cert_util.c:685,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/clamav/common/cert_util.c:690,1
    - Dst: cert_store_export_certs
      Src: /src/clamav/common/cert_util.c:692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - curl
    - ssl_ctx
    - userptr
    argTypes:
    - CURL*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 699
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 699
    functionName: sslctx_function
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 0
    functionsReached:
    - cert_store_load
    - UNUSEDPARAM
    - cert_store_export_certs
    - SSL_CTX_get_cert_store
    - cert_store_get_int
    - mprintf
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode sslctx_function(CURL *curl, void *ssl_ctx, void *userptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/clamav/common/cert_util.c:709,1
    - Dst: getenv
      Src: /src/clamav/common/cert_util.c:716,1
    - Dst: logg
      Src: /src/clamav/common/cert_util.c:719,1
    - Dst: getenv
      Src: /src/clamav/common/cert_util.c:723,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/common/cert_util.c:726,1
    - Dst: logg
      Src: /src/clamav/common/cert_util.c:728,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/common/cert_util.c:728,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/common/cert_util.c:732,1
    - Dst: logg
      Src: /src/clamav/common/cert_util.c:734,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/common/cert_util.c:734,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/common/cert_util.c:739,1
    - Dst: logg
      Src: /src/clamav/common/cert_util.c:741,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/common/cert_util.c:741,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/common/cert_util.c:745,1
    - Dst: logg
      Src: /src/clamav/common/cert_util.c:747,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/common/cert_util.c:747,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/common/cert_util.c:753,1
    - Dst: logg
      Src: /src/clamav/common/cert_util.c:755,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/common/cert_util.c:755,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    constantsTouched: []
    func_position:
      end: 764
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 764
    functionName: set_tls_client_certificate
    functionSourceFile: /src/clamav/common/cert_util.c
    functionUses: 1
    functionsReached:
    - curl_easy_setopt
    - getenv
    - logg
    - curl_easy_strerror
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t set_tls_client_certificate(CURL *curl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/common/actions.c:69,1
    - Dst: basename
      Src: /src/clamav/common/actions.c:74,1
    - Dst: malloc
      Src: /src/clamav/common/actions.c:76,1
    - Dst: strlen
      Src: /src/clamav/common/actions.c:76,1
    - Dst: free
      Src: /src/clamav/common/actions.c:77,1
    - Dst: sprintf
      Src: /src/clamav/common/actions.c:80,1
    - Dst: open
      Src: /src/clamav/common/actions.c:82,1
    - Dst: free
      Src: /src/clamav/common/actions.c:84,1
    - Dst: sprintf
      Src: /src/clamav/common/actions.c:88,1
    - Dst: free
      Src: /src/clamav/common/actions.c:90,1
    - Dst: free
      Src: /src/clamav/common/actions.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - fullpath
    - newname
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 94
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 94
    functionName: getdest
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - strlen
    - open
    - strdup
    - basename
    - malloc
    - free
    - sprintf
    linkageType: ''
    returnType: int
    signature: int getdest(const char *fullpath, char **newname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/clamav/common/actions.c:154,1
    - Dst: malloc
      Src: /src/clamav/common/actions.c:155,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:157,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/common/actions.c:160,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:161,1
    - Dst: pRtlInitUnicodeString
      Src: /src/clamav/common/actions.c:164,1
    - Dst: InitializeObjectAttributes
      Src: /src/clamav/common/actions.c:166,1
    - Dst: pNtCreateFile
      Src: /src/clamav/common/actions.c:173,1
    - Dst: NT_SUCCESS
      Src: /src/clamav/common/actions.c:185,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:186,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:189,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/clamav/common/actions.c:191,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:196,1
    - Dst: GetLastError
      Src: /src/clamav/common/actions.c:196,1
    - Dst: CloseHandle
      Src: /src/clamav/common/actions.c:198,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:202,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:203,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:205,1
    - Dst: CloseHandle
      Src: /src/clamav/common/actions.c:207,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:211,1
    - Dst: free
      Src: /src/clamav/common/actions.c:215,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 8
    argNames:
    - current_handle
    - filename
    - pNtCreateFile
    - pRtlInitUnicodeString
    - desiredAccess
    - fileAttributes
    - createOptions
    - shareAccess
    argTypes:
    - HANDLE
    - char*
    - PNTCF
    - PRIUS
    - ACCESS_MASK
    - ULONG
    - ULONG
    - ULONG
    constantsTouched: []
    func_position:
      end: 219
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 219
    functionName: win32_openat
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - pRtlInitUnicodeString
    - InitializeObjectAttributes
    - GetFileInformationByHandleEx
    - GetLastError
    - MultiByteToWideChar
    - pNtCreateFile
    - logg
    - CloseHandle
    - NT_SUCCESS
    - malloc
    - free
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE win32_openat(\n    HANDLE current_handle,\n    const char *filename,\n
      \   PNTCF pNtCreateFile,\n    PRIUS pRtlInitUnicodeString,\n    ACCESS_MASK
      desiredAccess,\n    ULONG fileAttributes,\n    ULONG createOptions,\n    ULONG
      shareAccess)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/common/actions.c:268,1
    - Dst: LoadLibraryA
      Src: /src/clamav/common/actions.c:273,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:275,1
    - Dst: GetProcAddress
      Src: /src/clamav/common/actions.c:278,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:280,1
    - Dst: GetProcAddress
      Src: /src/clamav/common/actions.c:283,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:285,1
    - Dst: strdup
      Src: /src/clamav/common/actions.c:290,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:292,1
    - Dst: cli_strtokenize
      Src: /src/clamav/common/actions.c:296,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:298,1
    - Dst: open
      Src: /src/clamav/common/actions.c:307,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:309,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:319,1
    - Dst: strlen
      Src: /src/clamav/common/actions.c:324,1
    - Dst: openat
      Src: /src/clamav/common/actions.c:331,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:333,1
    - Dst: close
      Src: /src/clamav/common/actions.c:336,1
    - Dst: snprintf
      Src: /src/clamav/common/actions.c:355,1
    - Dst: win32_openat
      Src: /src/clamav/common/actions.c:356,1
    - Dst: free
      Src: /src/clamav/common/actions.c:364,1
    - Dst: win32_openat
      Src: /src/clamav/common/actions.c:366,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:376,1
    - Dst: CloseHandle
      Src: /src/clamav/common/actions.c:379,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:384,1
    - Dst: close
      Src: /src/clamav/common/actions.c:393,1
    - Dst: CloseHandle
      Src: /src/clamav/common/actions.c:397,1
    - Dst: free
      Src: /src/clamav/common/actions.c:401,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 103
    argCount: 3
    argNames:
    - directory
    - want_directory_handle
    - out_handle
    argTypes:
    - char*
    - bool
    - HANDLE*
    constantsTouched: []
    func_position:
      end: 405
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 405
    functionName: traverse_to
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - close
    - win32_openat
    - snprintf
    - LoadLibraryA
    - strlen
    - open
    - strdup
    - cli_strtokenize
    - logg
    - CloseHandle
    - free
    - openat
    linkageType: ''
    returnType: int
    signature: int traverse_to(const char *directory, bool want_directory_handle,
      HANDLE *out_handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/common/actions.c:434,1
    - Dst: traverse_to
      Src: /src/clamav/common/actions.c:439,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:440,1
    - Dst: traverse_to
      Src: /src/clamav/common/actions.c:444,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:445,1
    - Dst: traverse_to
      Src: /src/clamav/common/actions.c:448,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:449,1
    - Dst: cli_basename
      Src: /src/clamav/common/actions.c:455,1
    - Dst: strlen
      Src: /src/clamav/common/actions.c:455,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:457,1
    - Dst: renameat
      Src: /src/clamav/common/actions.c:461,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:462,1
    - Dst: strerror
      Src: /src/clamav/common/actions.c:462,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/common/actions.c:467,1
    - Dst: strlen
      Src: /src/clamav/common/actions.c:467,1
    - Dst: calloc
      Src: /src/clamav/common/actions.c:468,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:470,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/common/actions.c:473,1
    - Dst: strlen
      Src: /src/clamav/common/actions.c:473,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:474,1
    - Dst: calloc
      Src: /src/clamav/common/actions.c:478,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:480,1
    - Dst: memcpy
      Src: /src/clamav/common/actions.c:486,1
    - Dst: SetFileInformationByHandle
      Src: /src/clamav/common/actions.c:488,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:494,1
    - Dst: GetLastError
      Src: /src/clamav/common/actions.c:494,1
    - Dst: free
      Src: /src/clamav/common/actions.c:505,1
    - Dst: close
      Src: /src/clamav/common/actions.c:509,1
    - Dst: free
      Src: /src/clamav/common/actions.c:513,1
    - Dst: free
      Src: /src/clamav/common/actions.c:516,1
    - Dst: CloseHandle
      Src: /src/clamav/common/actions.c:519,1
    - Dst: CloseHandle
      Src: /src/clamav/common/actions.c:522,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 2
    argNames:
    - source
    - destination
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 527
      start: 418
    functionDepth: 5
    functionLinenumber: 418
    functionLinenumberEnd: 527
    functionName: traverse_rename
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - close
    - calloc
    - strerror
    - strlen
    - traverse_to
    - SetFileInformationByHandle
    - GetLastError
    - renameat
    - MultiByteToWideChar
    - cli_basename
    - logg
    - CloseHandle
    - memcpy
    - free
    linkageType: ''
    returnType: int
    signature: int traverse_rename(const char *source, const char *destination)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filecopy
      Src: /src/clamav/common/actions.c:656,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:657,1
    - Dst: traverse_unlink
      Src: /src/clamav/common/actions.c:659,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:661,1
    - Dst: close
      Src: /src/clamav/common/actions.c:663,1
    - Dst: free
      Src: /src/clamav/common/actions.c:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 665
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 665
    functionName: action_copy
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - close
    - traverse_unlink
    - filecopy
    - logg
    - free
    linkageType: ''
    returnType: void
    signature: void action_copy(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: traverse_unlink
      Src: /src/clamav/common/actions.c:675,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:676,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:679,1
    - Dst: free
      Src: /src/clamav/common/actions.c:683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 685
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 685
    functionName: action_remove
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - free
    - traverse_unlink
    - logg
    linkageType: ''
    returnType: void
    signature: void action_remove(const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMSTAT
      Src: /src/clamav/common/actions.c:690,1
    - Dst: S_ISDIR
      Src: /src/clamav/common/actions.c:690,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 695
    functionName: isdir
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - logg
    - S_ISDIR
    - CLAMSTAT
    linkageType: ''
    returnType: int
    signature: int isdir(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/common/actions.c:704,1
    - Dst: optget
      Src: /src/clamav/common/actions.c:708,1
    - Dst: cli_realpath
      Src: /src/clamav/common/actions.c:710,1
    - Dst: logg
      Src: /src/clamav/common/actions.c:712,1
    - Dst: isdir
      Src: /src/clamav/common/actions.c:716,1
    - Dst: strlen
      Src: /src/clamav/common/actions.c:718,1
    - Dst: optget
      Src: /src/clamav/common/actions.c:719,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 722
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 722
    functionName: actsetup
    functionSourceFile: /src/clamav/common/actions.c
    functionUses: 0
    functionsReached:
    - strlen
    - isdir
    - optget
    - cli_realpath
    - logg
    linkageType: ''
    returnType: int
    signature: int actsetup(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/common/idmef_logging.c:33,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/common/idmef_logging.c:34,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/common/idmef_logging.c:35,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/common/idmef_logging.c:36,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - filename
    - virname
    - virhash
    - virsize
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: prelude_logging
    functionSourceFile: /src/clamav/common/idmef_logging.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - logg
    linkageType: ''
    returnType: void
    signature: void prelude_logging(const char *filename, const char *virname, const
      char *virhash, int virsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: idmef_analyzer_new_name
      Src: /src/clamav/common/idmef_logging.c:56,1
    - Dst: prelude_string_set_constant
      Src: /src/clamav/common/idmef_logging.c:60,1
    - Dst: idmef_analyzer_new_model
      Src: /src/clamav/common/idmef_logging.c:63,1
    - Dst: prelude_string_set_constant
      Src: /src/clamav/common/idmef_logging.c:67,1
    - Dst: idmef_analyzer_new_class
      Src: /src/clamav/common/idmef_logging.c:70,1
    - Dst: prelude_string_set_constant
      Src: /src/clamav/common/idmef_logging.c:74,1
    - Dst: idmef_analyzer_new_manufacturer
      Src: /src/clamav/common/idmef_logging.c:77,1
    - Dst: prelude_string_set_constant
      Src: /src/clamav/common/idmef_logging.c:81,1
    - Dst: idmef_analyzer_new_version
      Src: /src/clamav/common/idmef_logging.c:84,1
    - Dst: prelude_string_set_constant
      Src: /src/clamav/common/idmef_logging.c:88,1
    - Dst: get_version
      Src: /src/clamav/common/idmef_logging.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - analyzer
    - analyzer_name
    argTypes:
    - idmef_analyzer_t*
    - char*
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: idmef_analyzer_setup
    functionSourceFile: /src/clamav/common/idmef_logging.c
    functionUses: 0
    functionsReached:
    - prelude_string_set_constant
    - idmef_analyzer_new_class
    - idmef_analyzer_new_name
    - idmef_analyzer_new_model
    - idmef_analyzer_new_manufacturer
    - get_version
    - idmef_analyzer_new_version
    linkageType: ''
    returnType: int
    signature: int idmef_analyzer_setup(idmef_analyzer_t *analyzer, const char *analyzer_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prelude_init
      Src: /src/clamav/common/idmef_logging.c:99,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:101,1
    - Dst: prelude_strerror
      Src: /src/clamav/common/idmef_logging.c:101,1
    - Dst: prelude_client_new
      Src: /src/clamav/common/idmef_logging.c:105,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:107,1
    - Dst: prelude_strerror
      Src: /src/clamav/common/idmef_logging.c:107,1
    - Dst: idmef_analyzer_setup
      Src: /src/clamav/common/idmef_logging.c:111,1
    - Dst: prelude_client_get_analyzer
      Src: /src/clamav/common/idmef_logging.c:111,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:113,1
    - Dst: prelude_strerror
      Src: /src/clamav/common/idmef_logging.c:113,1
    - Dst: prelude_client_start
      Src: /src/clamav/common/idmef_logging.c:117,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:119,1
    - Dst: prelude_strerror
      Src: /src/clamav/common/idmef_logging.c:119,1
    - Dst: prelude_client_destroy
      Src: /src/clamav/common/idmef_logging.c:120,1
    - Dst: prelude_client_set_flags
      Src: /src/clamav/common/idmef_logging.c:124,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:126,1
    - Dst: prelude_strerror
      Src: /src/clamav/common/idmef_logging.c:126,1
    - Dst: prelude_client_destroy
      Src: /src/clamav/common/idmef_logging.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - analyzer_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 132
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 132
    functionName: prelude_initialize_client
    functionSourceFile: /src/clamav/common/idmef_logging.c
    functionUses: 0
    functionsReached:
    - prelude_client_start
    - prelude_client_set_flags
    - prelude_client_new
    - idmef_analyzer_setup
    - prelude_client_get_analyzer
    - prelude_strerror
    - prelude_init
    - logg
    - prelude_client_destroy
    linkageType: ''
    returnType: int
    signature: int prelude_initialize_client(const char *analyzer_name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: idmef_alert_new_additional_data
      Src: /src/clamav/common/idmef_logging.c:141,1
    - Dst: idmef_additional_data_set_type
      Src: /src/clamav/common/idmef_logging.c:145,1
    - Dst: idmef_additional_data_new_data
      Src: /src/clamav/common/idmef_logging.c:147,1
    - Dst: idmef_data_set_char_string_ref
      Src: /src/clamav/common/idmef_logging.c:149,1
    - Dst: idmef_additional_data_new_meaning
      Src: /src/clamav/common/idmef_logging.c:153,1
    - Dst: prelude_string_set_ref
      Src: /src/clamav/common/idmef_logging.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - alert
    - meaning
    - ptr
    argTypes:
    - idmef_alert_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 162
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 162
    functionName: add_string_additional_data
    functionSourceFile: /src/clamav/common/idmef_logging.c
    functionUses: 0
    functionsReached:
    - idmef_data_set_char_string_ref
    - prelude_string_set_ref
    - idmef_additional_data_set_type
    - idmef_additional_data_new_meaning
    - idmef_additional_data_new_data
    - idmef_alert_new_additional_data
    linkageType: ''
    returnType: int
    signature: int add_string_additional_data(idmef_alert_t *alert, const char *meaning,
      const char *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: idmef_alert_new_additional_data
      Src: /src/clamav/common/idmef_logging.c:170,1
    - Dst: idmef_additional_data_set_integer
      Src: /src/clamav/common/idmef_logging.c:174,1
    - Dst: idmef_additional_data_new_meaning
      Src: /src/clamav/common/idmef_logging.c:176,1
    - Dst: prelude_string_set_ref
      Src: /src/clamav/common/idmef_logging.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - alert
    - meaning
    - data
    argTypes:
    - idmef_alert_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: add_int_additional_data
    functionSourceFile: /src/clamav/common/idmef_logging.c
    functionUses: 0
    functionsReached:
    - idmef_alert_new_additional_data
    - idmef_additional_data_new_meaning
    - prelude_string_set_ref
    - idmef_additional_data_set_integer
    linkageType: ''
    returnType: int
    signature: int add_int_additional_data(idmef_alert_t *alert, const char *meaning,
      int data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: idmef_message_new
      Src: /src/clamav/common/idmef_logging.c:197,1
    - Dst: idmef_message_new_alert
      Src: /src/clamav/common/idmef_logging.c:201,1
    - Dst: idmef_alert_new_classification
      Src: /src/clamav/common/idmef_logging.c:205,1
    - Dst: idmef_classification_new_text
      Src: /src/clamav/common/idmef_logging.c:209,1
    - Dst: prelude_string_set_constant
      Src: /src/clamav/common/idmef_logging.c:213,1
    - Dst: idmef_alert_new_target
      Src: /src/clamav/common/idmef_logging.c:215,1
    - Dst: idmef_target_new_file
      Src: /src/clamav/common/idmef_logging.c:219,1
    - Dst: idmef_file_new_path
      Src: /src/clamav/common/idmef_logging.c:223,1
    - Dst: prelude_string_set_ref
      Src: /src/clamav/common/idmef_logging.c:227,1
    - Dst: add_string_additional_data
      Src: /src/clamav/common/idmef_logging.c:230,1
    - Dst: add_string_additional_data
      Src: /src/clamav/common/idmef_logging.c:236,1
    - Dst: add_int_additional_data
      Src: /src/clamav/common/idmef_logging.c:241,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:245,1
    - Dst: prelude_client_get_config_filename
      Src: /src/clamav/common/idmef_logging.c:245,1
    - Dst: prelude_client_send_idmef
      Src: /src/clamav/common/idmef_logging.c:246,1
    - Dst: idmef_message_destroy
      Src: /src/clamav/common/idmef_logging.c:247,1
    - Dst: idmef_message_destroy
      Src: /src/clamav/common/idmef_logging.c:253,1
    - Dst: logg
      Src: /src/clamav/common/idmef_logging.c:255,1
    - Dst: prelude_strsource
      Src: /src/clamav/common/idmef_logging.c:255,1
    - Dst: prelude_strerror
      Src: /src/clamav/common/idmef_logging.c:255,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 4
    argNames:
    - filename
    - virname
    - virhash
    - virsize
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 257
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 257
    functionName: prelude_logging
    functionSourceFile: /src/clamav/common/idmef_logging.c
    functionUses: 0
    functionsReached:
    - prelude_string_set_constant
    - idmef_file_new_path
    - idmef_classification_new_text
    - prelude_client_get_config_filename
    - add_string_additional_data
    - add_int_additional_data
    - prelude_strsource
    - prelude_client_send_idmef
    - prelude_string_set_ref
    - idmef_alert_new_target
    - idmef_message_new_alert
    - idmef_target_new_file
    - prelude_strerror
    - logg
    - idmef_alert_new_classification
    - idmef_message_new
    - idmef_message_destroy
    linkageType: ''
    returnType: void
    signature: void prelude_logging(const char *filename, const char *virname, const
      char *virhash, int virsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/common/hostid.c:34,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: is_valid_hostid
    functionSourceFile: /src/clamav/common/hostid.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int is_valid_hostid(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/common/hostid.c:53,1
    - Dst: strcmp
      Src: /src/clamav/common/hostid.c:55,1
    - Dst: is_valid_hostid
      Src: /src/clamav/common/hostid.c:58,1
    - Dst: strdup
      Src: /src/clamav/common/hostid.c:59,1
    - Dst: logg
      Src: /src/clamav/common/hostid.c:61,1
    - Dst: strdup
      Src: /src/clamav/common/hostid.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: get_hostid
    functionSourceFile: /src/clamav/common/hostid.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSEDPARAM
    - is_valid_hostid
    - strdup
    - logg
    linkageType: ''
    returnType: char
    signature: char *get_hostid(void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CertOpenSystemStoreA
      Src: /src/clamav/common/win/cert_util_win.c:52,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:54,1
    - Dst: cert_store_get_int
      Src: /src/clamav/common/win/cert_util_win.c:58,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:60,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/win/cert_util_win.c:64,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:67,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:72,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/clamav/common/win/cert_util_win.c:80,1
    - Dst: d2i_X509
      Src: /src/clamav/common/win/cert_util_win.c:85,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:87,1
    - Dst: realloc
      Src: /src/clamav/common/win/cert_util_win.c:91,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:95,1
    - Dst: CertGetNameStringA
      Src: /src/clamav/common/win/cert_util_win.c:104,1
    - Dst: malloc
      Src: /src/clamav/common/win/cert_util_win.c:106,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:108,1
    - Dst: CertGetNameStringA
      Src: /src/clamav/common/win/cert_util_win.c:113,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:114,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:116,1
    - Dst: free
      Src: /src/clamav/common/win/cert_util_win.c:119,1
    - Dst: GetLastError
      Src: /src/clamav/common/win/cert_util_win.c:125,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:128,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:133,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:137,1
    - Dst: cert_store_set_trusted_int
      Src: /src/clamav/common/win/cert_util_win.c:141,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:142,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:145,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/win/cert_util_win.c:156,1
    - Dst: mprintf
      Src: /src/clamav/common/win/cert_util_win.c:159,1
    - Dst: CertFreeCertificateContext
      Src: /src/clamav/common/win/cert_util_win.c:165,1
    - Dst: CertCloseStore
      Src: /src/clamav/common/win/cert_util_win.c:168,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 99
    argCount: 2
    argNames:
    - trusted_certs
    - trusted_cert_count
    argTypes:
    - X509**
    - size_t
    constantsTouched: []
    func_position:
      end: 172
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 172
    functionName: cert_store_load
    functionSourceFile: /src/clamav/common/win/cert_util_win.c
    functionUses: 1
    functionsReached:
    - CertCloseStore
    - d2i_X509
    - GetLastError
    - CertGetNameStringA
    - cert_store_set_trusted_int
    - realloc
    - pthread_mutex_unlock
    - CertOpenSystemStoreA
    - cert_store_get_int
    - pthread_mutex_lock
    - malloc
    - CertFreeCertificateContext
    - free
    - CertEnumCertificatesInStore
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cert_store_load(X509 **trusted_certs, size_t trusted_cert_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/clamav/common/linux/cert_util_linux.c:40,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/common/linux/cert_util_linux.c:45,1
    - Dst: fprintf
      Src: /src/clamav/common/linux/cert_util_linux.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - curl
    argTypes:
    - CURL*
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: set_tls_ca_bundle
    functionSourceFile: /src/clamav/common/linux/cert_util_linux.c
    functionUses: 2
    functionsReached:
    - fprintf
    - curl_easy_setopt
    - getenv
    linkageType: ''
    returnType: void
    signature: void set_tls_ca_bundle(CURL *curl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cert_store_get_int
      Src: /src/clamav/common/linux/cert_util_linux.c:57,1
    - Dst: mprintf
      Src: /src/clamav/common/linux/cert_util_linux.c:59,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/common/linux/cert_util_linux.c:63,1
    - Dst: mprintf
      Src: /src/clamav/common/linux/cert_util_linux.c:66,1
    - Dst: cert_store_set_trusted_int
      Src: /src/clamav/common/linux/cert_util_linux.c:80,1
    - Dst: mprintf
      Src: /src/clamav/common/linux/cert_util_linux.c:81,1
    - Dst: mprintf
      Src: /src/clamav/common/linux/cert_util_linux.c:84,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/common/linux/cert_util_linux.c:95,1
    - Dst: mprintf
      Src: /src/clamav/common/linux/cert_util_linux.c:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - trusted_certs
    - trusted_cert_count
    argTypes:
    - X509**
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 103
    functionName: cert_store_load
    functionSourceFile: /src/clamav/common/linux/cert_util_linux.c
    functionUses: 1
    functionsReached:
    - cert_store_set_trusted_int
    - pthread_mutex_unlock
    - cert_store_get_int
    - pthread_mutex_lock
    - mprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cert_store_load(X509 **trusted_certs, size_t trusted_cert_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/uowners.cpp:6,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uowners.cpp:6,1
    - Dst: memchr
      Src: /src/clamav/libclamunrar/uowners.cpp:8,1
    - Dst: Archive::SubHead::SubData::Size
      Src: /src/clamav/libclamunrar/uowners.cpp:8,1
    - Dst: strncpy
      Src: /src/clamav/libclamunrar/uowners.cpp:15,1
    - Dst: getpwnam
      Src: /src/clamav/libclamunrar/uowners.cpp:19,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/uowners.cpp:21,1
    - Dst: GetWide
      Src: /src/clamav/libclamunrar/uowners.cpp:21,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/uowners.cpp:22,1
    - Dst: getgrnam
      Src: /src/clamav/libclamunrar/uowners.cpp:28,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/uowners.cpp:30,1
    - Dst: GetWide
      Src: /src/clamav/libclamunrar/uowners.cpp:30,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/uowners.cpp:31,1
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/uowners.cpp:34,1
    - Dst: lchown
      Src: /src/clamav/libclamunrar/uowners.cpp:37,1
    - Dst: chown
      Src: /src/clamav/libclamunrar/uowners.cpp:39,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/uowners.cpp:42,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/uowners.cpp:43,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/uowners.cpp:45,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - Arc
    - FileName
    argTypes:
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 46
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 46
    functionName: ExtractUnixOwner30
    functionSourceFile: /src/clamav/libclamunrar/uowners.cpp
    functionUses: 0
    functionsReached:
    - SetFileAttr
    - memchr
    - strncpy
    - GetWide
    - GetFileAttr
    - WideToChar
    - getgrnam
    - chown
    - lchown
    - getpwnam
    - ASIZE
    - uiMsg
    - SetErrorCode
    - Archive::SubHead::SubData::Size
    linkageType: ''
    returnType: void
    signature: void ExtractUnixOwner30(Archive &Arc,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/uowners.cpp:52,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uowners.cpp:52,1
    - Dst: getpwnam
      Src: /src/clamav/libclamunrar/uowners.cpp:61,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/uowners.cpp:65,1
    - Dst: GetWide
      Src: /src/clamav/libclamunrar/uowners.cpp:65,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/uowners.cpp:66,1
    - Dst: getgrnam
      Src: /src/clamav/libclamunrar/uowners.cpp:76,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/uowners.cpp:80,1
    - Dst: GetWide
      Src: /src/clamav/libclamunrar/uowners.cpp:80,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/uowners.cpp:81,1
    - Dst: lchown
      Src: /src/clamav/libclamunrar/uowners.cpp:89,1
    - Dst: chown
      Src: /src/clamav/libclamunrar/uowners.cpp:91,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/uowners.cpp:94,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/uowners.cpp:95,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - Arc
    - FileName
    argTypes:
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 97
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 97
    functionName: SetUnixOwner
    functionSourceFile: /src/clamav/libclamunrar/uowners.cpp
    functionUses: 0
    functionsReached:
    - GetWide
    - chown
    - WideToChar
    - getgrnam
    - lchown
    - ASIZE
    - uiMsg
    - SetErrorCode
    - getpwnam
    linkageType: ''
    returnType: void
    signature: void SetUnixOwner(Archive &Arc,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CleanUp
      Src: /src/clamav/libclamunrar/unpack30.cpp:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 13
    functionName: Unpack::SafePPMDecodeChar
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 0
    functionsReached:
    - CleanUp
    linkageType: ''
    returnType: int
    signature: int Unpack::SafePPMDecodeChar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack30.cpp:30,1
    - Dst: Unpack::UnpInitData
      Src: /src/clamav/libclamunrar/unpack30.cpp:42,1
    - Dst: Unpack::UnpReadBuf30
      Src: /src/clamav/libclamunrar/unpack30.cpp:43,1
    - Dst: Unpack::ReadTables30
      Src: /src/clamav/libclamunrar/unpack30.cpp:45,1
    - Dst: Unpack::UnpReadBuf30
      Src: /src/clamav/libclamunrar/unpack30.cpp:55,1
    - Dst: Unpack::UnpWriteBuf30
      Src: /src/clamav/libclamunrar/unpack30.cpp:60,1
    - Dst: CleanUp
      Src: /src/clamav/libclamunrar/unpack30.cpp:77,1
    - Dst: Unpack::ReadTables30
      Src: /src/clamav/libclamunrar/unpack30.cpp:86,1
    - Dst: Unpack::ReadVMCodePPM
      Src: /src/clamav/libclamunrar/unpack30.cpp:96,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack30.cpp:118,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack30.cpp:126,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack30.cpp:136,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:147,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:148,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack30.cpp:151,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:159,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:160,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack30.cpp:169,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:184,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:185,1
    - Dst: Unpack::InsertOldDist
      Src: /src/clamav/libclamunrar/unpack30.cpp:196,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack30.cpp:198,1
    - Dst: Unpack::ReadEndOfBlock
      Src: /src/clamav/libclamunrar/unpack30.cpp:203,1
    - Dst: Unpack::ReadVMCode
      Src: /src/clamav/libclamunrar/unpack30.cpp:209,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack30.cpp:216,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack30.cpp:227,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:231,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:232,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack30.cpp:235,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:243,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:244,1
    - Dst: Unpack::InsertOldDist
      Src: /src/clamav/libclamunrar/unpack30.cpp:246,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack30.cpp:248,1
    - Dst: Unpack::UnpWriteBuf30
      Src: /src/clamav/libclamunrar/unpack30.cpp:252,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 156
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 253
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 253
    functionName: Unpack::Unpack29
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 0
    functionsReached:
    - Unpack::UnpWriteBuf30
    - Unpack::ReadVMCodePPM
    - Unpack::ReadEndOfBlock
    - Unpack::CopyString
    - Unpack::ReadVMCode
    - Unpack::DecodeNumber
    - Unpack::UnpReadBuf30
    - Unpack::InsertOldDist
    - Unpack::UnpInitData
    - getbits
    - ASIZE
    - CleanUp
    - Unpack::ReadTables30
    - addbits
    linkageType: ''
    returnType: void
    signature: void Unpack::Unpack29(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:259,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:269,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:275,1
    - Dst: Unpack::ReadTables30
      Src: /src/clamav/libclamunrar/unpack30.cpp:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 285
    functionName: Unpack::ReadEndOfBlock
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 1
    functionsReached:
    - Unpack::ReadTables30
    - getbits
    - addbits
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadEndOfBlock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:293,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:294,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:298,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:299,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:304,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:305,1
    - Dst: Unpack::UnpReadBuf30
      Src: /src/clamav/libclamunrar/unpack30.cpp:314,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:316,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:317,1
    - Dst: Unpack::AddVMCode
      Src: /src/clamav/libclamunrar/unpack30.cpp:319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 320
    functionName: Unpack::ReadVMCode
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 1
    functionsReached:
    - Unpack::AddVMCode
    - Unpack::UnpReadBuf30
    - getbits
    - addbits
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadVMCode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::SafePPMDecodeChar
      Src: /src/clamav/libclamunrar/unpack30.cpp:325,1
    - Dst: Unpack::AddVMCode
      Src: /src/clamav/libclamunrar/unpack30.cpp:357,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: Unpack::ReadVMCodePPM
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 1
    functionsReached:
    - Unpack::SafePPMDecodeChar
    - Unpack::AddVMCode
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadVMCodePPM()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitBitInput
      Src: /src/clamav/libclamunrar/unpack30.cpp:363,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpack30.cpp:364,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack30.cpp:364,1
    - Dst: Unpack::Init
      Src: /src/clamav/libclamunrar/unpack30.cpp:365,1
    - Dst: RarVM::ReadData
      Src: /src/clamav/libclamunrar/unpack30.cpp:370,1
    - Dst: Unpack::InitFilters30
      Src: /src/clamav/libclamunrar/unpack30.cpp:372,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:379,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:379,1
    - Dst: UnpackFilter30::UnpackFilter30
      Src: /src/clamav/libclamunrar/unpack30.cpp:384,1
    - Dst: Add
      Src: /src/clamav/libclamunrar/unpack30.cpp:396,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:397,1
    - Dst: UnpackFilter30::UnpackFilter30
      Src: /src/clamav/libclamunrar/unpack30.cpp:397,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:398,1
    - Dst: Push
      Src: /src/clamav/libclamunrar/unpack30.cpp:404,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:413,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:423,1
    - Dst: Add
      Src: /src/clamav/libclamunrar/unpack30.cpp:428,1
    - Dst: RarVM::ReadData
      Src: /src/clamav/libclamunrar/unpack30.cpp:434,1
    - Dst: RarVM::ReadData
      Src: /src/clamav/libclamunrar/unpack30.cpp:440,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:451,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack30.cpp:458,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:463,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:464,1
    - Dst: RarVM::ReadData
      Src: /src/clamav/libclamunrar/unpack30.cpp:467,1
    - Dst: RarVM::ReadData
      Src: /src/clamav/libclamunrar/unpack30.cpp:472,1
    - Dst: Overflow
      Src: /src/clamav/libclamunrar/unpack30.cpp:478,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:480,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:481,1
    - Dst: Prepare
      Src: /src/clamav/libclamunrar/unpack30.cpp:483,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 3
    argNames:
    - FirstByte
    - Code
    - CodeSize
    argTypes:
    - uint
    - byte*
    - uint
    constantsTouched: []
    func_position:
      end: 488
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 488
    functionName: Unpack::AddVMCode
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 2
    functionsReached:
    - memset
    - fgetbits
    - UnpackFilter30::UnpackFilter30
    - InitBitInput
    - faddbits
    - Size
    - Add
    - Push
    - Prepare
    - RarVM::ReadData
    - Overflow
    - memcpy
    - Unpack::InitFilters30
    - Min
    - Unpack::Init
    linkageType: ''
    returnType: bool
    signature: bool Unpack::AddVMCode(uint FirstByte,byte *Code,uint CodeSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/clamav/libclamunrar/unpack30.cpp:505,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 516
    functionName: Unpack::UnpReadBuf30
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 2
    functionsReached:
    - memmove
    linkageType: ''
    returnType: bool
    signature: bool Unpack::UnpReadBuf30()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:523,1
    - Dst: Unpack::UnpWriteArea
      Src: /src/clamav/libclamunrar/unpack30.cpp:545,1
    - Dst: SetMemory
      Src: /src/clamav/libclamunrar/unpack30.cpp:553,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unpack30.cpp:556,1
    - Dst: SetMemory
      Src: /src/clamav/libclamunrar/unpack30.cpp:557,1
    - Dst: SetMemory
      Src: /src/clamav/libclamunrar/unpack30.cpp:558,1
    - Dst: Unpack::ExecuteCode
      Src: /src/clamav/libclamunrar/unpack30.cpp:564,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:571,1
    - Dst: SetMemory
      Src: /src/clamav/libclamunrar/unpack30.cpp:581,1
    - Dst: Unpack::ExecuteCode
      Src: /src/clamav/libclamunrar/unpack30.cpp:586,1
    - Dst: UnpWrite
      Src: /src/clamav/libclamunrar/unpack30.cpp:594,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unpack30.cpp:598,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:604,1
    - Dst: Unpack::UnpWriteArea
      Src: /src/clamav/libclamunrar/unpack30.cpp:616,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 618
    functionName: Unpack::UnpWriteBuf30
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 1
    functionsReached:
    - UnpWrite
    - SetMemory
    - Size
    - uint
    - Unpack::ExecuteCode
    - Unpack::UnpWriteArea
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpWriteBuf30()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Execute
      Src: /src/clamav/libclamunrar/unpack30.cpp:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Prg
    argTypes:
    - VM_PreparedProgram*
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: Unpack::ExecuteCode
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 1
    functionsReached:
    - Execute
    linkageType: ''
    returnType: void
    signature: void Unpack::ExecuteCode(VM_PreparedProgram *Prg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpReadBuf30
      Src: /src/clamav/libclamunrar/unpack30.cpp:633,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:635,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:636,1
    - Dst: DecodeInit
      Src: /src/clamav/libclamunrar/unpack30.cpp:640,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack30.cpp:648,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:649,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:653,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:654,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:657,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:658,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack30.cpp:664,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack30.cpp:672,1
    - Dst: Unpack::UnpReadBuf30
      Src: /src/clamav/libclamunrar/unpack30.cpp:678,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack30.cpp:680,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:692,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:693,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:697,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:698,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:714,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:715,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:719,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack30.cpp:720,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack30.cpp:729,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack30.cpp:730,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack30.cpp:731,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack30.cpp:732,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpack30.cpp:733,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 735
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 735
    functionName: Unpack::ReadTables30
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 2
    functionsReached:
    - memset
    - fgetbits
    - Unpack::DecodeNumber
    - Unpack::UnpReadBuf30
    - DecodeInit
    - faddbits
    - Unpack::MakeDecodeTables
    - ASIZE
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadTables30()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack30.cpp:743,1
    - Dst: Unpack::InitFilters30
      Src: /src/clamav/libclamunrar/unpack30.cpp:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 748
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 748
    functionName: Unpack::UnpInitData30
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 0
    functionsReached:
    - Unpack::InitFilters30
    - memset
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpInitData30(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftReset
      Src: /src/clamav/libclamunrar/unpack30.cpp:755,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:758,1
    - Dst: SoftReset
      Src: /src/clamav/libclamunrar/unpack30.cpp:760,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack30.cpp:762,1
    - Dst: SoftReset
      Src: /src/clamav/libclamunrar/unpack30.cpp:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 765
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 765
    functionName: Unpack::InitFilters30
    functionSourceFile: /src/clamav/libclamunrar/unpack30.cpp
    functionUses: 2
    functionsReached:
    - SoftReset
    - Size
    linkageType: ''
    returnType: void
    signature: void Unpack::InitFilters30(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVersionEx
      Src: /src/clamav/libclamunrar/isnt.cpp:11,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 23
    functionName: WinNT
    functionSourceFile: /src/clamav/libclamunrar/isnt.cpp
    functionUses: 0
    functionsReached:
    - GetVersionEx
    linkageType: ''
    returnType: DWORD
    signature: DWORD WinNT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CoCreateInstance
      Src: /src/clamav/libclamunrar/isnt.cpp:35,1
    - Dst: FAILED
      Src: /src/clamav/libclamunrar/isnt.cpp:38,1
    - Dst: IWbemLocator*::ConnectServer
      Src: /src/clamav/libclamunrar/isnt.cpp:43,1
    - Dst: _bstr_t
      Src: /src/clamav/libclamunrar/isnt.cpp:43,1
    - Dst: FAILED
      Src: /src/clamav/libclamunrar/isnt.cpp:45,1
    - Dst: IWbemLocator*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:47,1
    - Dst: CoSetProxyBlanket
      Src: /src/clamav/libclamunrar/isnt.cpp:51,1
    - Dst: FAILED
      Src: /src/clamav/libclamunrar/isnt.cpp:54,1
    - Dst: IWbemServices*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:56,1
    - Dst: IWbemLocator*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:57,1
    - Dst: IWbemServices*::ExecQuery
      Src: /src/clamav/libclamunrar/isnt.cpp:62,1
    - Dst: bstr_t
      Src: /src/clamav/libclamunrar/isnt.cpp:62,1
    - Dst: bstr_t
      Src: /src/clamav/libclamunrar/isnt.cpp:62,1
    - Dst: FAILED
      Src: /src/clamav/libclamunrar/isnt.cpp:65,1
    - Dst: IWbemServices*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:67,1
    - Dst: IWbemLocator*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:68,1
    - Dst: IEnumWbemClassObject*::Next
      Src: /src/clamav/libclamunrar/isnt.cpp:78,1
    - Dst: IWbemClassObject*::Get
      Src: /src/clamav/libclamunrar/isnt.cpp:85,1
    - Dst: wcsstr
      Src: /src/clamav/libclamunrar/isnt.cpp:86,1
    - Dst: VariantClear
      Src: /src/clamav/libclamunrar/isnt.cpp:87,1
    - Dst: IWbemClassObject*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:89,1
    - Dst: IWbemServices*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:92,1
    - Dst: IWbemLocator*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:93,1
    - Dst: IEnumWbemClassObject*::Release
      Src: /src/clamav/libclamunrar/isnt.cpp:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 97
    functionName: WMI_IsWindows10
    functionSourceFile: /src/clamav/libclamunrar/isnt.cpp
    functionUses: 0
    functionsReached:
    - IWbemClassObject*::Get
    - bstr_t
    - wcsstr
    - IEnumWbemClassObject*::Release
    - CoSetProxyBlanket
    - IWbemServices*::ExecQuery
    - IWbemClassObject*::Release
    - _bstr_t
    - IWbemServices*::Release
    - VariantClear
    - IWbemLocator*::Release
    - IEnumWbemClassObject*::Next
    - FAILED
    - CoCreateInstance
    - IWbemLocator*::ConnectServer
    linkageType: ''
    returnType: bool
    signature: bool WMI_IsWindows10()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVersionEx
      Src: /src/clamav/libclamunrar/isnt.cpp:108,1
    - Dst: WMI_IsWindows10
      Src: /src/clamav/libclamunrar/isnt.cpp:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: IsWindows11OrGreater
    functionSourceFile: /src/clamav/libclamunrar/isnt.cpp
    functionUses: 0
    functionsReached:
    - GetVersionEx
    - WMI_IsWindows10
    linkageType: ''
    returnType: bool
    signature: bool IsWindows11OrGreater()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:6,1
    - Dst: IsDriveDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:8,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - Path
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 9
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 9
    functionName: PointToName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsPathDiv
    - IsDriveDiv
    linkageType: ''
    returnType: wchar
    signature: wchar * PointToName(const wchar *Path)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Path
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: PointToLastChar
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar * PointToLastChar(const wchar *Path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:25,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:25,1
    - Dst: IsDriveDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:32,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:36,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:36,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:40,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:47,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:66,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:66,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:67,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 30
    argCount: 3
    argNames:
    - SrcPath
    - DestPath
    - DestSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 70
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 70
    functionName: ConvertPath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - wcsncpyz
    - IsPathDiv
    - IsDriveDiv
    linkageType: ''
    returnType: wchar
    signature: wchar * ConvertPath(const wchar *SrcPath,wchar *DestPath,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/pathfn.cpp:75,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - FullName
    - Name
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: SetName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsncpyz
    - PointToName
    linkageType: ''
    returnType: void
    signature: void SetName(wchar *FullName,const wchar *Name,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:84,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:89,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - Name
    - NewExt
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: SetExt
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsncatz
    - GetExt
    linkageType: ''
    returnType: void
    signature: void SetExt(wchar *Name,const wchar *NewExt,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:102,1
    - Dst: SetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - SFXName
    - MaxSize
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: SetSFXExt
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - SetExt
    linkageType: ''
    returnType: void
    signature: void SetSFXExt(wchar *SFXName,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsrchr
      Src: /src/clamav/libclamunrar/pathfn.cpp:115,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/pathfn.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: GetExt
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 1
    functionsReached:
    - PointToName
    - wcsrchr
    linkageType: ''
    returnType: wchar
    signature: wchar *GetExt(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:122,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/pathfn.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - Name
    - Ext
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: CmpExt
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsicomp
    - GetExt
    linkageType: ''
    returnType: bool
    signature: bool CmpExt(const wchar *Name,const wchar *Ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcspbrk
      Src: /src/clamav/libclamunrar/pathfn.cpp:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: IsWildcard
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcspbrk
    linkageType: ''
    returnType: bool
    signature: bool IsWildcard(const wchar *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: IsPathDiv
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsPathDiv(int Ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: IsDriveDiv
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDriveDiv(int Ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: etoupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:162,1
    - Dst: IsDriveDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - Path
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: IsDriveLetter
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsDriveDiv
    - etoupperw
    linkageType: ''
    returnType: bool
    signature: bool IsDriveLetter(const wchar *Path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDriveLetter
      Src: /src/clamav/libclamunrar/pathfn.cpp:169,1
    - Dst: etoupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - Path
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: GetPathDisk
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsDriveLetter
    - etoupperw
    linkageType: ''
    returnType: int
    signature: int GetPathDisk(const wchar *Path)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - Path
    - MaxLength
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: AddEndSlash
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddEndSlash(wchar *Path,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:192,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:192,1
    - Dst: IsDriveLetter
      Src: /src/clamav/libclamunrar/pathfn.cpp:194,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/pathfn.cpp:195,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:195,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:196,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:196,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - Path
    - Name
    - Pathname
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: MakeName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsDriveLetter
    - wcsncpyz
    - wcsncatz
    - ASIZE
    - AddEndSlash
    linkageType: ''
    returnType: void
    signature: void MakeName(const wchar *Path,const wchar *Name,wchar *Pathname,size_t
      MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpy
      Src: /src/clamav/libclamunrar/pathfn.cpp:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - FullName
    - Path
    - MaxLength
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: GetFilePath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsncpy
    linkageType: ''
    returnType: void
    signature: void GetFilePath(const wchar *FullName,wchar *Path,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/pathfn.cpp:216,1
    - Dst: IsDriveDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - Path
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: RemoveNameFromPath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsDriveDiv
    - PointToName
    linkageType: ''
    returnType: void
    signature: void RemoveNameFromPath(wchar *Path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHGetMalloc
      Src: /src/clamav/libclamunrar/pathfn.cpp:227,1
    - Dst: SHGetSpecialFolderLocation
      Src: /src/clamav/libclamunrar/pathfn.cpp:231,1
    - Dst: SHGetPathFromIDList
      Src: /src/clamav/libclamunrar/pathfn.cpp:232,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/pathfn.cpp:234,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:235,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/pathfn.cpp:236,1
    - Dst: MakeDir
      Src: /src/clamav/libclamunrar/pathfn.cpp:238,1
    - Dst: LPMALLOC::Free
      Src: /src/clamav/libclamunrar/pathfn.cpp:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - Path
    - MaxSize
    - Create
    argTypes:
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: GetAppDataPath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - SHGetPathFromIDList
    - LPMALLOC::Free
    - SHGetMalloc
    - FileExist
    - MakeDir
    - wcsncatz
    - AddEndSlash
    - SHGetSpecialFolderLocation
    linkageType: ''
    returnType: bool
    signature: bool GetAppDataPath(wchar *Path,size_t MaxSize,bool Create)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyEx
      Src: /src/clamav/libclamunrar/pathfn.cpp:252,1
    - Dst: RegQueryValueEx
      Src: /src/clamav/libclamunrar/pathfn.cpp:256,1
    - Dst: RegCloseKey
      Src: /src/clamav/libclamunrar/pathfn.cpp:257,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/pathfn.cpp:260,1
    - Dst: GetAppDataPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:261,1
    - Dst: GetModuleFileName
      Src: /src/clamav/libclamunrar/pathfn.cpp:263,1
    - Dst: RemoveNameFromPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - Path
    - MaxSize
    - Create
    argTypes:
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 266
    functionName: GetRarDataPath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - RegQueryValueEx
    - RemoveNameFromPath
    - RegCloseKey
    - FileExist
    - RegOpenKeyEx
    - GetAppDataPath
    - GetModuleFileName
    linkageType: ''
    returnType: void
    signature: void GetRarDataPath(wchar *Path,size_t MaxSize,bool Create)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/pathfn.cpp:281,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:283,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:287,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:289,1
    - Dst: GetRarDataPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:295,1
    - Dst: GetModuleFileName
      Src: /src/clamav/libclamunrar/pathfn.cpp:298,1
    - Dst: RemoveNameFromPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - Number
    - Path
    - MaxSize
    - Create
    argTypes:
    - uint
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 305
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 305
    functionName: EnumConfigPaths
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - CharToWide
    - RemoveNameFromPath
    - wcsncpyz
    - ASIZE
    - GetModuleFileName
    - GetRarDataPath
    linkageType: ''
    returnType: bool
    signature: bool EnumConfigPaths(uint Number,wchar *Path,size_t MaxSize,bool Create)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumConfigPaths
      Src: /src/clamav/libclamunrar/pathfn.cpp:313,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/pathfn.cpp:315,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:316,1
    - Dst: WildFileExist
      Src: /src/clamav/libclamunrar/pathfn.cpp:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - Name
    - FullName
    - MaxSize
    - CheckExist
    - Create
    argTypes:
    - wchar*
    - wchar*
    - size_t
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 5
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: GetConfigName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - EnumConfigPaths
    - AddEndSlash
    - wcsncatz
    - WildFileExist
    linkageType: ''
    returnType: void
    signature: void GetConfigName(const wchar *Name,wchar *FullName,size_t MaxSize,bool
      CheckExist,bool Create)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/pathfn.cpp:329,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:335,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:338,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:343,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:350,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:354,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - ArcName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 362
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 362
    functionName: GetVolNumPart
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsDigit
    - PointToName
    - wcschr
    - wcslen
    linkageType: ''
    returnType: wchar
    signature: wchar * GetVolNumPart(const wchar *ArcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:368,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:370,1
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:371,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/pathfn.cpp:374,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/pathfn.cpp:374,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:375,1
    - Dst: GetVolNumPart
      Src: /src/clamav/libclamunrar/pathfn.cpp:388,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:398,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:401,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:409,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:409,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:410,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:413,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 3
    argNames:
    - ArcName
    - MaxLength
    - OldNumbering
    argTypes:
    - wchar*
    - uint
    - bool
    constantsTouched: []
    func_position:
      end: 426
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 426
    functionName: NextVolumeName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsicomp
    - GetExt
    - wcsncpyz
    - GetVolNumPart
    - wcsncatz
    - IsDigit
    - wcslen
    linkageType: ''
    returnType: void
    signature: void NextVolumeName(wchar *ArcName,uint MaxLength,bool OldNumbering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:438,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:441,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:456,1
    - Dst: wcspbrk
      Src: /src/clamav/libclamunrar/pathfn.cpp:460,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 461
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 461
    functionName: IsNameUsable
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcspbrk
    - IsPathDiv
    - wcschr
    linkageType: ''
    returnType: bool
    signature: bool IsNameUsable(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:470,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:489,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:497,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:498,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:498,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 15
    argCount: 2
    argNames:
    - Name
    - Extended
    argTypes:
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 503
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 503
    functionName: MakeNameUsable
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsPathDiv
    - wcschr
    linkageType: ''
    returnType: void
    signature: void MakeNameUsable(wchar *Name,bool Extended)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - SrcName
    - DestName
    - MaxLength
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 512
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 512
    functionName: UnixSlashToDos
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnixSlashToDos(const char *SrcName,char *DestName,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - SrcName
    - DestName
    - MaxLength
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: DosSlashToUnix
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DosSlashToUnix(const char *SrcName,char *DestName,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - SrcName
    - DestName
    - MaxLength
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: UnixSlashToDos
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnixSlashToDos(const wchar *SrcName,wchar *DestName,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - SrcName
    - DestName
    - MaxLength
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 539
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 539
    functionName: DosSlashToUnix
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DosSlashToUnix(const wchar *SrcName,wchar *DestName,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFullPathName
      Src: /src/clamav/libclamunrar/pathfn.cpp:553,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:553,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:554,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:557,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:557,1
    - Dst: GetFullPathName
      Src: /src/clamav/libclamunrar/pathfn.cpp:558,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:558,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:560,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:561,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:564,1
    - Dst: IsFullPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:567,1
    - Dst: getcwd
      Src: /src/clamav/libclamunrar/pathfn.cpp:572,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:572,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/pathfn.cpp:574,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/pathfn.cpp:575,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:577,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:579,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - Src
    - Dest
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 581
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 581
    functionName: ConvertNameToFull
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - getcwd
    - IsFullPath
    - wcsncpyz
    - GetWinLongPath
    - GetFullPathName
    - wcsncatz
    - ASIZE
    - AddEndSlash
    - CharToWide
    linkageType: ''
    returnType: void
    signature: void ConvertNameToFull(const wchar *Src,wchar *Dest,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDriveLetter
      Src: /src/clamav/libclamunrar/pathfn.cpp:593,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:593,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - Path
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 597
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 597
    functionName: IsFullPath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 1
    functionsReached:
    - IsDriveLetter
    - IsPathDiv
    linkageType: ''
    returnType: bool
    signature: bool IsFullPath(const wchar *Path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFullPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:602,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - Path
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: IsFullRootPath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsPathDiv
    - IsFullPath
    linkageType: ''
    returnType: bool
    signature: bool IsFullRootPath(const wchar *Path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDriveLetter
      Src: /src/clamav/libclamunrar/pathfn.cpp:609,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:610,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:614,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:618,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:621,1
    - Dst: wcsncpy
      Src: /src/clamav/libclamunrar/pathfn.cpp:624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - Path
    - Root
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 628
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 628
    functionName: GetPathRoot
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - IsDriveLetter
    - wcsncpy
    - swprintf
    - wcschr
    - wcslen
    linkageType: ''
    returnType: void
    signature: void GetPathRoot(const wchar *Path,wchar *Root,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsrchr
      Src: /src/clamav/libclamunrar/pathfn.cpp:634,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/pathfn.cpp:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Name
    - Truncate
    argTypes:
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: ParseVersionFileName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - atoiw
    - wcsrchr
    linkageType: ''
    returnType: int
    signature: int ParseVersionFileName(wchar *Name,bool Truncate)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:650,1
    - Dst: GetVolNumPart
      Src: /src/clamav/libclamunrar/pathfn.cpp:657,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:658,1
    - Dst: SetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:673,1
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:674,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/pathfn.cpp:676,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:682,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:682,1
    - Dst: SetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:683,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:683,1
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/pathfn.cpp:684,1
    - Dst: FindFile::SetMask
      Src: /src/clamav/libclamunrar/pathfn.cpp:685,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/pathfn.cpp:687,1
    - Dst: Archive::Archive
      Src: /src/clamav/libclamunrar/pathfn.cpp:689,1
    - Dst: Archive::Open
      Src: /src/clamav/libclamunrar/pathfn.cpp:690,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/pathfn.cpp:690,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:692,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - VolName
    - FirstName
    - MaxSize
    - NewNumbering
    argTypes:
    - wchar*
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 698
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 698
    functionName: VolNameToFirstName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - FindFile::FindFile
    - FindFile::Next
    - GetExt
    - wcsncpyz
    - FileExist
    - Archive::Archive
    - Archive::IsArchive
    - GetVolNumPart
    - FindFile::SetMask
    - ASIZE
    - IsDigit
    - Archive::Open
    - SetExt
    linkageType: ''
    returnType: wchar
    signature: wchar * VolNameToFirstName(const wchar *VolName,wchar *FirstName,size_t
      MaxSize,bool NewNumbering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:713,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:713,1
    - Dst: GetDigits
      Src: /src/clamav/libclamunrar/pathfn.cpp:741,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:743,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:749,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:749,1
    - Dst: wmemmove
      Src: /src/clamav/libclamunrar/pathfn.cpp:751,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:751,1
    - Dst: wmemset
      Src: /src/clamav/libclamunrar/pathfn.cpp:752,1
    - Dst: Max
      Src: /src/clamav/libclamunrar/pathfn.cpp:754,1
    - Dst: RarTime::RarTime
      Src: /src/clamav/libclamunrar/pathfn.cpp:760,1
    - Dst: RarTime::SetCurrentTime
      Src: /src/clamav/libclamunrar/pathfn.cpp:761,1
    - Dst: RarTime::GetLocal
      Src: /src/clamav/libclamunrar/pathfn.cpp:763,1
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/pathfn.cpp:765,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:768,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/pathfn.cpp:768,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:768,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:771,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:771,1
    - Dst: IsLeapYear
      Src: /src/clamav/libclamunrar/pathfn.cpp:779,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:788,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:789,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:790,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:791,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:792,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:793,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:794,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:795,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:796,1
    - Dst: sprintf
      Src: /src/clamav/libclamunrar/pathfn.cpp:797,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/pathfn.cpp:804,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:815,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:815,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:823,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/pathfn.cpp:830,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:830,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:850,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:850,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:852,1
    - Dst: GetMonthName
      Src: /src/clamav/libclamunrar/pathfn.cpp:852,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:852,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:853,1
    - Dst: GetFilePath
      Src: /src/clamav/libclamunrar/pathfn.cpp:872,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:872,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/pathfn.cpp:873,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:873,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:874,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:874,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:875,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/pathfn.cpp:875,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:875,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:876,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:879,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:880,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 102
    argCount: 5
    argNames:
    - ArcName
    - MaxSize
    - GenerateMask
    - ArcNumber
    - ArcNumPresent
    argTypes:
    - wchar*
    - size_t
    - wchar*
    - uint
    - bool
    constantsTouched: []
    func_position:
      end: 881
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 881
    functionName: GenArcName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wmemset
    - GetExt
    - GetMonthName
    - RarTime::RarTime
    - sprintf
    - wcsncpyz
    - toupperw
    - RarTime::SetCurrentTime
    - Max
    - RarTime::GetLocal
    - PointToName
    - memset
    - wcsncatz
    - IsLeapYear
    - ASIZE
    - GetFilePath
    - wcschr
    - wcslen
    - wmemmove
    - AddEndSlash
    - GetDigits
    linkageType: ''
    returnType: void
    signature: void GenArcName(wchar *ArcName,size_t MaxSize,const wchar *GenerateMask,uint
      ArcNumber,bool &ArcNumPresent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:891,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:891,1
    - Dst: GenArcName
      Src: /src/clamav/libclamunrar/pathfn.cpp:895,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:895,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/pathfn.cpp:899,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:906,1
    - Dst: NullToEmpty
      Src: /src/clamav/libclamunrar/pathfn.cpp:906,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:906,1
    - Dst: GenArcName
      Src: /src/clamav/libclamunrar/pathfn.cpp:907,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:907,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:913,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - ArcName
    - MaxSize
    - GenerateMask
    - Archiving
    argTypes:
    - wchar*
    - size_t
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 914
      start: 884
    functionDepth: 4
    functionLinenumber: 884
    functionLinenumberEnd: 914
    functionName: GenerateArchiveName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsncpyz
    - GenArcName
    - FileExist
    - NullToEmpty
    - ASIZE
    linkageType: ''
    returnType: void
    signature: void GenerateArchiveName(wchar *ArcName,size_t MaxSize,const wchar
      *GenerateMask,bool Archiving)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpy
      Src: /src/clamav/libclamunrar/pathfn.cpp:923,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/pathfn.cpp:927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - Name
    - NameW
    - DestW
    - DestSize
    argTypes:
    - char*
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 936
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 936
    functionName: GetWideName
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsncpy
    - CharToWide
    linkageType: ''
    returnType: wchar
    signature: wchar * GetWideName(const char *Name,const wchar *NameW,wchar *DestW,size_t
      DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFullPath
      Src: /src/clamav/libclamunrar/pathfn.cpp:951,1
    - Dst: IsDriveLetter
      Src: /src/clamav/libclamunrar/pathfn.cpp:953,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:957,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:958,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:966,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:967,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:968,1
    - Dst: GetCurrentDirectory
      Src: /src/clamav/libclamunrar/pathfn.cpp:977,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:977,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:978,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:981,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:985,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:987,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:988,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/pathfn.cpp:993,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:993,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/pathfn.cpp:994,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:996,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:997,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:999,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/pathfn.cpp:1002,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - Src
    - Dest
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 1007
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 1007
    functionName: GetWinLongPath
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 1
    functionsReached:
    - IsDriveLetter
    - IsFullPath
    - wcsncpyz
    - IsPathDiv
    - wcsncatz
    - ASIZE
    - GetCurrentDirectory
    - AddEndSlash
    - wcslen
    linkageType: ''
    returnType: bool
    signature: bool GetWinLongPath(const wchar *Src,wchar *Dest,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WinNT
      Src: /src/clamav/libclamunrar/pathfn.cpp:1014,1
    - Dst: FoldString
      Src: /src/clamav/libclamunrar/pathfn.cpp:1015,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:1015,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:1017,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - Name
    - NameSize
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 1020
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1020
    functionName: ConvertToPrecomposed
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - wcsncpyz
    - WinNT
    - FoldString
    linkageType: ''
    returnType: void
    signature: void ConvertToPrecomposed(wchar *Name,size_t NameSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:1029,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:1033,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:1047,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:1052,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/pathfn.cpp:1056,1
    - Dst: IsWindows11OrGreater
      Src: /src/clamav/libclamunrar/pathfn.cpp:1064,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/pathfn.cpp:1064,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/pathfn.cpp:1068,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/pathfn.cpp:1073,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/pathfn.cpp:1073,1
    - Dst: memmove
      Src: /src/clamav/libclamunrar/pathfn.cpp:1075,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/pathfn.cpp:1078,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/pathfn.cpp:1079,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 37
    argCount: 2
    argNames:
    - Name
    - MaxSize
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 1083
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1083
    functionName: MakeNameCompatible
    functionSourceFile: /src/clamav/libclamunrar/pathfn.cpp
    functionUses: 0
    functionsReached:
    - wcsncpyz
    - toupperw
    - IsWindows11OrGreater
    - IsPathDiv
    - ASIZE
    - uiMsg
    - IsDigit
    - memmove
    linkageType: ''
    returnType: void
    signature: void MakeNameCompatible(wchar *Name,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Show
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ComprDataIO::EnableShowProgress
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EnableShowProgress(bool Show)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Size
    argTypes:
    - int64
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: ComprDataIO::SetPackedSizeToRead
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPackedSizeToRead(int64 Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: ComprDataIO::SetTestMode
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetTestMode(bool Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Skip
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: ComprDataIO::SetSkipUnpCRC
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSkipUnpCRC(bool Skip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ComprDataIO::SetNoFileHeader
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetNoFileHeader(bool Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Cmd
    argTypes:
    - CmdAdd*
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: ComprDataIO::SetCommand
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCommand(CmdAdd *Cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hd
    - Pos
    argTypes:
    - FileHeader*
    - int64*
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: ComprDataIO::SetSubHeader
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSubHeader(FileHeader *hd,int64 *Pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Cmd
    argTypes:
    - wchar
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: ComprDataIO::SetCurrentCommand
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCurrentCommand(wchar Cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:3,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 5
    functionName: FragmentedWindow::FragmentedWindow
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void FragmentedWindow::FragmentedWindow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FragmentedWindow::Reset
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: FragmentedWindow::~FragmentedWindow()
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 0
    functionsReached:
    - FragmentedWindow::Reset
    linkageType: ''
    returnType: void
    signature: void FragmentedWindow::~FragmentedWindow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:16,1
    - Dst: free
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: FragmentedWindow::Reset
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - free
    linkageType: ''
    returnType: void
    signature: void FragmentedWindow::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FragmentedWindow::Reset
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:27,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:31,1
    - Dst: malloc
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:44,1
    - Dst: std::bad_alloc
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:50,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:54,1
    - Dst: std::bad_alloc
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - WinSize
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 63
    functionName: FragmentedWindow::Init
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 0
    functionsReached:
    - memset
    - std::bad_alloc
    - ASIZE
    - malloc
    - FragmentedWindow::Reset
    linkageType: ''
    returnType: void
    signature: void FragmentedWindow::Init(size_t WinSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - Item
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: '& FragmentedWindow::operator [](size_t Item)'
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    linkageType: ''
    returnType: byte
    signature: byte & FragmentedWindow::operator [](size_t Item)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - Length
    - Distance
    - UnpPtr
    - MaxWinMask
    argTypes:
    - uint
    - uint
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: FragmentedWindow::CopyString
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FragmentedWindow::CopyString(uint Length,uint Distance,size_t
      &UnpPtr,size_t MaxWinMask)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - Dest
    - WinPos
    - Size
    argTypes:
    - byte*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: FragmentedWindow::CopyData
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FragmentedWindow::CopyData(byte *Dest,size_t WinPos,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:99,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack50frag.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - StartPos
    - RequiredSize
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: FragmentedWindow::GetBlockSize
    functionSourceFile: /src/clamav/libclamunrar/unpack50frag.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - Min
    linkageType: ''
    returnType: size_t
    signature: size_t FragmentedWindow::GetBlockSize(size_t StartPos,size_t RequiredSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCRC32
      Src: /src/clamav/libclamunrar/crypt2.cpp:31,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/crypt2.cpp:34,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt2.cpp:34,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt2.cpp:42,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/crypt2.cpp:46,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/crypt2.cpp:47,1
    - Dst: CryptData::Swap20
      Src: /src/clamav/libclamunrar/crypt2.cpp:49,1
    - Dst: CryptData::EncryptBlock20
      Src: /src/clamav/libclamunrar/crypt2.cpp:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - Password
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 59
    functionName: CryptData::SetKey20
    functionSourceFile: /src/clamav/libclamunrar/crypt2.cpp
    functionUses: 0
    functionsReached:
    - byte
    - InitCRC32
    - CryptData::EncryptBlock20
    - CryptData::Swap20
    - ASIZE
    - memcpy
    - strncpyz
    linkageType: ''
    returnType: void
    signature: void CryptData::SetKey20(const char *Password)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:65,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:66,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:67,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:68,1
    - Dst: rotls
      Src: /src/clamav/libclamunrar/crypt2.cpp:71,1
    - Dst: substLong
      Src: /src/clamav/libclamunrar/crypt2.cpp:72,1
    - Dst: rotls
      Src: /src/clamav/libclamunrar/crypt2.cpp:73,1
    - Dst: substLong
      Src: /src/clamav/libclamunrar/crypt2.cpp:74,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:80,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:81,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:82,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:83,1
    - Dst: CryptData::UpdKeys20
      Src: /src/clamav/libclamunrar/crypt2.cpp:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - Buf
    argTypes:
    - byte*
    constantsTouched: []
    func_position:
      end: 85
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 85
    functionName: CryptData::EncryptBlock20
    functionSourceFile: /src/clamav/libclamunrar/crypt2.cpp
    functionUses: 1
    functionsReached:
    - substLong
    - rotls
    - CryptData::UpdKeys20
    - RawPut4
    - RawGet4
    linkageType: ''
    returnType: void
    signature: void CryptData::EncryptBlock20(byte *Buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:92,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:93,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:94,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/crypt2.cpp:95,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt2.cpp:96,1
    - Dst: rotls
      Src: /src/clamav/libclamunrar/crypt2.cpp:99,1
    - Dst: substLong
      Src: /src/clamav/libclamunrar/crypt2.cpp:100,1
    - Dst: rotls
      Src: /src/clamav/libclamunrar/crypt2.cpp:101,1
    - Dst: substLong
      Src: /src/clamav/libclamunrar/crypt2.cpp:102,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:108,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:109,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:110,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt2.cpp:111,1
    - Dst: CryptData::UpdKeys20
      Src: /src/clamav/libclamunrar/crypt2.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - Buf
    argTypes:
    - byte*
    constantsTouched: []
    func_position:
      end: 113
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 113
    functionName: CryptData::DecryptBlock20
    functionSourceFile: /src/clamav/libclamunrar/crypt2.cpp
    functionUses: 0
    functionsReached:
    - substLong
    - rotls
    - CryptData::UpdKeys20
    - RawPut4
    - memcpy
    - RawGet4
    linkageType: ''
    returnType: void
    signature: void CryptData::DecryptBlock20(byte *Buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - Buf
    argTypes:
    - byte*
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: CryptData::UpdKeys20
    functionSourceFile: /src/clamav/libclamunrar/crypt2.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CryptData::UpdKeys20(byte *Buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Ch1
    - Ch2
    argTypes:
    - byte*
    - byte*
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: CryptData::Swap20
    functionSourceFile: /src/clamav/libclamunrar/crypt2.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CryptData::Swap20(byte *Ch1,byte *Ch2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::GetWinFT
      Src: /src/clamav/libclamunrar/timefn.cpp:7,1
    - Dst: WinNT
      Src: /src/clamav/libclamunrar/timefn.cpp:10,1
    - Dst: FileTimeToLocalFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:13,1
    - Dst: FileTimeToSystemTime
      Src: /src/clamav/libclamunrar/timefn.cpp:21,1
    - Dst: SystemTimeToTzSpecificLocalTime
      Src: /src/clamav/libclamunrar/timefn.cpp:22,1
    - Dst: SystemTimeToFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:23,1
    - Dst: SystemTimeToFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:27,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:28,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:29,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:30,1
    - Dst: FileTimeToSystemTime
      Src: /src/clamav/libclamunrar/timefn.cpp:36,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/timefn.cpp:47,1
    - Dst: IsLeapYear
      Src: /src/clamav/libclamunrar/timefn.cpp:50,1
    - Dst: RarTime::GetUnix
      Src: /src/clamav/libclamunrar/timefn.cpp:53,1
    - Dst: localtime
      Src: /src/clamav/libclamunrar/timefn.cpp:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - lt
    argTypes:
    - RarLocalTime*
    constantsTouched: []
    func_position:
      end: 67
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 67
    functionName: RarTime::GetLocal
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached:
    - localtime
    - FileTimeToSystemTime
    - RarTime::GetWinFT
    - WinNT
    - INT32TO64
    - SystemTimeToFileTime
    - IsLeapYear
    - RarTime::GetUnix
    - ASIZE
    - FileTimeToLocalFileTime
    - SystemTimeToTzSpecificLocalTime
    linkageType: ''
    returnType: void
    signature: void RarTime::GetLocal(RarLocalTime *lt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTimeToFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:83,1
    - Dst: WinNT
      Src: /src/clamav/libclamunrar/timefn.cpp:87,1
    - Dst: LocalFileTimeToFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:90,1
    - Dst: FileTimeToSystemTime
      Src: /src/clamav/libclamunrar/timefn.cpp:96,1
    - Dst: TzSpecificLocalTimeToSystemTime
      Src: /src/clamav/libclamunrar/timefn.cpp:97,1
    - Dst: SystemTimeToFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:98,1
    - Dst: SystemTimeToFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:102,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:103,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:104,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:105,1
    - Dst: RarTime::SetWinFT
      Src: /src/clamav/libclamunrar/timefn.cpp:110,1
    - Dst: RarTime::Reset
      Src: /src/clamav/libclamunrar/timefn.cpp:113,1
    - Dst: RarTime::SetUnix
      Src: /src/clamav/libclamunrar/timefn.cpp:124,1
    - Dst: mktime
      Src: /src/clamav/libclamunrar/timefn.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - lt
    argTypes:
    - RarLocalTime*
    constantsTouched: []
    func_position:
      end: 127
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 127
    functionName: RarTime::SetLocal
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 0
    functionsReached:
    - TzSpecificLocalTimeToSystemTime
    - LocalFileTimeToFileTime
    - RarTime::Reset
    - FileTimeToSystemTime
    - mktime
    - WinNT
    - INT32TO64
    - SystemTimeToFileTime
    - RarTime::SetUnix
    - RarTime::SetWinFT
    linkageType: ''
    returnType: void
    signature: void RarTime::SetLocal(RarLocalTime *lt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::GetWin
      Src: /src/clamav/libclamunrar/timefn.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - FILETIME*
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: RarTime::GetWinFT
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached:
    - RarTime::GetWin
    linkageType: ''
    returnType: void
    signature: void RarTime::GetWinFT(FILETIME *ft)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::SetWin
      Src: /src/clamav/libclamunrar/timefn.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - FILETIME*
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: RarTime::SetWinFT
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached:
    - RarTime::SetWin
    linkageType: ''
    returnType: void
    signature: void RarTime::SetWinFT(FILETIME *ft)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: RarTime::GetWin
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64
    signature: uint64 RarTime::GetWin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - WinTime
    argTypes:
    - uint64
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: RarTime::SetWin
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RarTime::SetWin(uint64 WinTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time_t
      Src: /src/clamav/libclamunrar/timefn.cpp:166,1
    - Dst: RarTime::GetUnixNS
      Src: /src/clamav/libclamunrar/timefn.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: RarTime::GetUnix
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached:
    - time_t
    - RarTime::GetUnixNS
    linkageType: ''
    returnType: time_t
    signature: time_t RarTime::GetUnix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::SetUnixNS
      Src: /src/clamav/libclamunrar/timefn.cpp:173,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/timefn.cpp:173,1
    - Dst: RarTime::SetUnixNS
      Src: /src/clamav/libclamunrar/timefn.cpp:178,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/timefn.cpp:178,1
    - Dst: uint32
      Src: /src/clamav/libclamunrar/timefn.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ut
    argTypes:
    - time_t
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: RarTime::SetUnix
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached:
    - uint64
    - uint32
    - RarTime::SetUnixNS
    linkageType: ''
    returnType: void
    signature: void RarTime::SetUnix(time_t ut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: RarTime::GetUnixNS
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached:
    - INT32TO64
    linkageType: ''
    returnType: uint64
    signature: uint64 RarTime::GetUnixNS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/timefn.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - uint64
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: RarTime::SetUnixNS
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 1
    functionsReached:
    - INT32TO64
    linkageType: ''
    returnType: void
    signature: void RarTime::SetUnixNS(uint64 ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::GetLocal
      Src: /src/clamav/libclamunrar/timefn.cpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: RarTime::GetDos
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 0
    functionsReached:
    - RarTime::GetLocal
    linkageType: ''
    returnType: uint
    signature: uint RarTime::GetDos()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::SetLocal
      Src: /src/clamav/libclamunrar/timefn.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - DosTime
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: RarTime::SetDos
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 0
    functionsReached:
    - RarTime::SetLocal
    linkageType: ''
    returnType: void
    signature: void RarTime::SetDos(uint DosTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::IsSet
      Src: /src/clamav/libclamunrar/timefn.cpp:227,1
    - Dst: RarTime::GetLocal
      Src: /src/clamav/libclamunrar/timefn.cpp:230,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/timefn.cpp:232,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/timefn.cpp:234,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/timefn.cpp:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - DateStr
    - MaxSize
    - FullMS
    argTypes:
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: RarTime::GetText
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 0
    functionsReached:
    - RarTime::GetLocal
    - wcsncpyz
    - RarTime::IsSet
    - swprintf
    linkageType: ''
    returnType: void
    signature: void RarTime::GetText(wchar *DateStr,size_t MaxSize,bool FullMS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/timefn.cpp:248,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/timefn.cpp:250,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/timefn.cpp:253,1
    - Dst: RarTime::SetLocal
      Src: /src/clamav/libclamunrar/timefn.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - TimeText
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: RarTime::SetIsoText
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - IsDigit
    - memset
    - RarTime::SetLocal
    linkageType: ''
    returnType: void
    signature: void RarTime::SetIsoText(const wchar *TimeText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/timefn.cpp:277,1
    - Dst: etoupperw
      Src: /src/clamav/libclamunrar/timefn.cpp:281,1
    - Dst: RarTime::SetCurrentTime
      Src: /src/clamav/libclamunrar/timefn.cpp:299,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/timefn.cpp:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - TimeText
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 301
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 301
    functionName: RarTime::SetAgeText
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 0
    functionsReached:
    - uint64
    - IsDigit
    - RarTime::SetCurrentTime
    - etoupperw
    linkageType: ''
    returnType: void
    signature: void RarTime::SetAgeText(const wchar *TimeText)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTime
      Src: /src/clamav/libclamunrar/timefn.cpp:310,1
    - Dst: SystemTimeToFileTime
      Src: /src/clamav/libclamunrar/timefn.cpp:311,1
    - Dst: RarTime::SetWinFT
      Src: /src/clamav/libclamunrar/timefn.cpp:312,1
    - Dst: time
      Src: /src/clamav/libclamunrar/timefn.cpp:315,1
    - Dst: RarTime::SetUnix
      Src: /src/clamav/libclamunrar/timefn.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: RarTime::SetCurrentTime
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 2
    functionsReached:
    - time
    - GetSystemTime
    - SystemTimeToFileTime
    - RarTime::SetUnix
    - RarTime::SetWinFT
    linkageType: ''
    returnType: void
    signature: void RarTime::SetCurrentTime()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ns
    argTypes:
    - int64
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: RarTime::Adjust
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RarTime::Adjust(int64 ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiGetMonthName
      Src: /src/clamav/libclamunrar/timefn.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Month
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: GetMonthName
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 2
    functionsReached:
    - uiGetMonthName
    linkageType: ''
    returnType: wchar
    signature: wchar *GetMonthName(int Month)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - Year
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: IsLeapYear
    functionSourceFile: /src/clamav/libclamunrar/timefn.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLeapYear(int Year)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/uiconsole.cpp:9,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/uiconsole.cpp:10,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/uiconsole.cpp:11,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uiconsole.cpp:11,1
    - Dst: FindData::mtime::GetText
      Src: /src/clamav/libclamunrar/uiconsole.cpp:12,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uiconsole.cpp:12,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:16,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:17,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:17,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/uiconsole.cpp:21,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uiconsole.cpp:21,1
    - Dst: RarTime*::GetText
      Src: /src/clamav/libclamunrar/uiconsole.cpp:22,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uiconsole.cpp:22,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:24,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:24,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:26,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:26,1
    - Dst: Ask
      Src: /src/clamav/libclamunrar/uiconsole.cpp:33,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:33,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:48,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:48,1
    - Dst: getwstr
      Src: /src/clamav/libclamunrar/uiconsole.cpp:49,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - Name
    - MaxNameSize
    - FileSize
    - FileTime
    - Flags
    argTypes:
    - wchar*
    - size_t
    - int64
    - RarTime*
    - uint
    constantsTouched: []
    func_position:
      end: 55
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 55
    functionName: uiAskReplace
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - memset
    - eprintf
    - FindData::mtime::GetText
    - St
    - Ask
    - getwstr
    - RarTime*::GetText
    - FindFile::FastFind
    - itoa
    - ASIZE
    - mprintf
    linkageType: ''
    returnType: UIASKREP_RESULT
    signature: UIASKREP_RESULT uiAskReplace(wchar *Name,size_t MaxNameSize,int64 FileSize,RarTime
      *FileTime,uint Flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:62,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Extract
    - ArcName
    argTypes:
    - bool
    - wchar*
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: uiStartArchiveExtract
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - St
    - mprintf
    linkageType: ''
    returnType: void
    signature: void uiStartArchiveExtract(bool Extract,const wchar *ArcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - FileName
    - Extract
    - Test
    - Skip
    argTypes:
    - wchar*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: uiStartFileExtract
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uiStartFileExtract(const wchar *FileName,bool Extract,bool Test,bool
      Skip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - CurFileSize
    - TotalFileSize
    - CurSize
    - TotalSize
    argTypes:
    - int64
    - int64
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: uiExtractProgress
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - mprintf
    linkageType: ''
    returnType: void
    signature: void uiExtractProgress(int64 CurFileSize,int64 TotalFileSize,int64
      CurSize,int64 TotalSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Command
    - CurSize
    - TotalSize
    argTypes:
    - char*
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: uiProcessProgress
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - mprintf
    linkageType: ''
    returnType: void
    signature: void uiProcessProgress(const char *Command,int64 CurSize,int64 TotalSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:108,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:111,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:111,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:114,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:114,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:117,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:117,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:120,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:120,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:123,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:123,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:126,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:127,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:127,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:130,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:130,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:133,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:133,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:136,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:136,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:139,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:139,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:142,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:143,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:143,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:146,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:146,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:150,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:150,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:153,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:153,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:156,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:156,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:160,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:160,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:163,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:163,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:166,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:166,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:167,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:170,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:170,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:173,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:173,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:176,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:176,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:179,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:179,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:180,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:183,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:183,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:186,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:187,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:187,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:190,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:190,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:193,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:193,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:196,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:196,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:199,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:199,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:202,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:202,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:205,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:205,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:208,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:208,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:211,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:211,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:216,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uiconsole.cpp:216,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:216,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:217,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:222,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:222,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:225,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:225,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:229,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:229,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:232,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:232,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:235,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:235,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:238,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:238,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:241,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:241,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:244,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:244,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:247,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:247,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:250,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:250,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:251,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:255,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:255,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:258,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:258,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:262,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:262,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:265,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:265,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:266,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:270,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:270,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:273,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:273,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:276,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:276,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:281,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:281,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:286,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:286,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:289,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:289,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:292,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:292,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:295,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:295,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:298,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:298,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:302,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:302,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:305,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:306,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:306,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:310,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:310,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:314,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:314,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:317,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:317,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:320,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:320,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:323,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:323,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:326,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:326,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:329,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:329,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:332,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:332,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:335,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:335,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:338,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:338,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:341,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:341,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:342,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:345,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:345,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:350,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:354,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:354,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:357,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:357,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:360,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:360,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:363,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:363,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:366,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:366,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:369,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:369,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:372,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:372,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:375,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:375,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:378,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:378,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:381,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:381,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:384,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:384,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:385,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:388,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:388,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:394,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:394,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 272
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 397
    functionName: uiMsgStore::Msg
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - eprintf
    - St
    - Log
    - ASIZE
    - swprintf
    - mprintf
    linkageType: ''
    returnType: void
    signature: void uiMsgStore::Msg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetConsolePassword
      Src: /src/clamav/libclamunrar/uiconsole.cpp:406,1
    - Dst: SecPassword*::IsSet
      Src: /src/clamav/libclamunrar/uiconsole.cpp:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - Type
    - FileName
    - Password
    - CheckPwd
    argTypes:
    - UIPASSWORD_TYPE
    - wchar*
    - SecPassword*
    - CheckPassword*
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: uiGetPassword
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - SecPassword*::IsSet
    - GetConsolePassword
    linkageType: ''
    returnType: bool
    signature: "bool uiGetPassword(UIPASSWORD_TYPE Type,const wchar *FileName,\n                   SecPassword
      *Password,CheckPassword *CheckPwd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: uiIsGlobalPasswordSet
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uiIsGlobalPasswordSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MonoClock
      Src: /src/clamav/libclamunrar/uiconsole.cpp:421,1
    - Dst: MessageBeep
      Src: /src/clamav/libclamunrar/uiconsole.cpp:424,1
    - Dst: putwchar
      Src: /src/clamav/libclamunrar/uiconsole.cpp:426,1
    - Dst: MonoClock
      Src: /src/clamav/libclamunrar/uiconsole.cpp:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - Type
    argTypes:
    - UIALARM_TYPE
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: uiAlarm
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - MessageBeep
    - MonoClock
    - putwchar
    linkageType: ''
    returnType: void
    signature: void uiAlarm(UIALARM_TYPE Type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:438,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:438,1
    - Dst: Ask
      Src: /src/clamav/libclamunrar/uiconsole.cpp:439,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - VolName
    - MaxSize
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: uiAskNextVolume
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - eprintf
    - Ask
    - St
    linkageType: ''
    returnType: bool
    signature: bool uiAskNextVolume(wchar *VolName,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:445,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - FileName
    - Ignore
    - All
    - Retry
    - Quit
    argTypes:
    - wchar*
    - bool
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 452
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 452
    functionName: uiAskRepeatRead
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - eprintf
    - St
    linkageType: ''
    returnType: void
    signature: void uiAskRepeatRead(const wchar *FileName,bool &Ignore,bool &All,bool
      &Retry,bool &Quit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:457,1
    - Dst: Log
      Src: /src/clamav/libclamunrar/uiconsole.cpp:458,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:458,1
    - Dst: Ask
      Src: /src/clamav/libclamunrar/uiconsole.cpp:459,1
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - FileName
    - DiskFull
    argTypes:
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: uiAskRepeatWrite
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - St
    - Ask
    - Log
    - mprintf
    linkageType: ''
    returnType: bool
    signature: bool uiAskRepeatWrite(const wchar *FileName,bool DiskFull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: St
      Src: /src/clamav/libclamunrar/uiconsole.cpp:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Month
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: uiGetMonthName
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 1
    functionsReached:
    - St
    linkageType: ''
    returnType: wchar
    signature: wchar *uiGetMonthName(int Month)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/uiconsole.cpp:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 484
    functionName: uiEolAfterMsg
    functionSourceFile: /src/clamav/libclamunrar/uiconsole.cpp
    functionUses: 0
    functionsReached:
    - mprintf
    linkageType: ''
    returnType: void
    signature: void uiEolAfterMsg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickOpen::Init
      Src: /src/clamav/libclamunrar/qopen.cpp:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 7
    functionName: QuickOpen::QuickOpen
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 0
    functionsReached:
    - QuickOpen::Init
    linkageType: ''
    returnType: void
    signature: void QuickOpen::QuickOpen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickOpen::Close
      Src: /src/clamav/libclamunrar/qopen.cpp:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: QuickOpen::~QuickOpen()
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 0
    functionsReached:
    - QuickOpen::Close
    linkageType: ''
    returnType: void
    signature: void QuickOpen::~QuickOpen()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickOpen::Close
      Src: /src/clamav/libclamunrar/qopen.cpp:20,1
    - Dst: byte::byte
      Src: /src/clamav/libclamunrar/qopen.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - Arc
    - WriteMode
    argTypes:
    - Archive*
    - bool
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: QuickOpen::Init
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 1
    functionsReached:
    - byte::byte
    - QuickOpen::Close
    linkageType: ''
    returnType: void
    signature: void QuickOpen::Init(Archive *Arc,bool WriteMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: QuickOpen::Close
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void QuickOpen::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickOpen::Tell
      Src: /src/clamav/libclamunrar/qopen.cpp:67,1
    - Dst: QuickOpen::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:71,1
    - Dst: SetProhibitQOpen
      Src: /src/clamav/libclamunrar/qopen.cpp:80,1
    - Dst: SetProhibitQOpen
      Src: /src/clamav/libclamunrar/qopen.cpp:82,1
    - Dst: GetHeaderType
      Src: /src/clamav/libclamunrar/qopen.cpp:84,1
    - Dst: SubHead::CmpName
      Src: /src/clamav/libclamunrar/qopen.cpp:85,1
    - Dst: QuickOpen::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:87,1
    - Dst: QuickOpen::Tell
      Src: /src/clamav/libclamunrar/qopen.cpp:91,1
    - Dst: QuickOpen::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:93,1
    - Dst: GetCommandData
      Src: /src/clamav/libclamunrar/qopen.cpp:100,1
    - Dst: CommandData*::Password::IsSet
      Src: /src/clamav/libclamunrar/qopen.cpp:102,1
    - Dst: SetCryptKeys
      Src: /src/clamav/libclamunrar/qopen.cpp:103,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/qopen.cpp:117,1
    - Dst: QuickOpen::ReadBuffer
      Src: /src/clamav/libclamunrar/qopen.cpp:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - BlockPos
    argTypes:
    - uint64
    constantsTouched: []
    func_position:
      end: 121
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 121
    functionName: QuickOpen::Load
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 0
    functionsReached:
    - SubHead::CmpName
    - GetCommandData
    - GetHeaderType
    - Reset
    - CommandData*::Password::IsSet
    - QuickOpen::Tell
    - SetProhibitQOpen
    - QuickOpen::Seek
    - SetCryptKeys
    - QuickOpen::ReadBuffer
    linkageType: ''
    returnType: void
    signature: void QuickOpen::Load(uint64 BlockPos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/qopen.cpp:129,1
    - Dst: QuickOpen::ReadNext
      Src: /src/clamav/libclamunrar/qopen.cpp:130,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:137,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/qopen.cpp:141,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/qopen.cpp:143,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:152,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - Data
    - Size
    - Result
    argTypes:
    - void*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 166
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 166
    functionName: QuickOpen::Read
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 0
    functionsReached:
    - File::Seek
    - QuickOpen::ReadNext
    - memcpy
    - Size
    linkageType: ''
    returnType: bool
    signature: bool QuickOpen::Read(void *Data,size_t Size,size_t &Result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickOpen::Load
      Src: /src/clamav/libclamunrar/qopen.cpp:179,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:189,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/qopen.cpp:190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - Offset
    - Method
    argTypes:
    - int64
    - int
    constantsTouched: []
    func_position:
      end: 194
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 194
    functionName: QuickOpen::Seek
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 1
    functionsReached:
    - File::Seek
    - QuickOpen::Load
    - File::Tell
    linkageType: ''
    returnType: bool
    signature: bool QuickOpen::Seek(int64 Offset,int Method)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - Pos
    argTypes:
    - int64*
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: QuickOpen::Tell
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool QuickOpen::Tell(int64 *Pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickOpen::Tell
      Src: /src/clamav/libclamunrar/qopen.cpp:208,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:209,1
    - Dst: File::Read
      Src: /src/clamav/libclamunrar/qopen.cpp:216,1
    - Dst: DecryptBlock
      Src: /src/clamav/libclamunrar/qopen.cpp:223,1
    - Dst: QuickOpen::Seek
      Src: /src/clamav/libclamunrar/qopen.cpp:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 231
    functionName: QuickOpen::ReadBuffer
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 1
    functionsReached:
    - File::Read
    - File::Seek
    - DecryptBlock
    - QuickOpen::Tell
    - QuickOpen::Seek
    linkageType: ''
    returnType: uint
    signature: uint QuickOpen::ReadBuffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/qopen.cpp:241,1
    - Dst: QuickOpen::ReadBuffer
      Src: /src/clamav/libclamunrar/qopen.cpp:244,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/qopen.cpp:249,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/qopen.cpp:252,1
    - Dst: RawRead::GetVSize
      Src: /src/clamav/libclamunrar/qopen.cpp:253,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/qopen.cpp:254,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/qopen.cpp:268,1
    - Dst: QuickOpen::ReadBuffer
      Src: /src/clamav/libclamunrar/qopen.cpp:275,1
    - Dst: RawRead::GetCRC50
      Src: /src/clamav/libclamunrar/qopen.cpp:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - Raw
    argTypes:
    - RawRead
    constantsTouched: []
    func_position:
      end: 281
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 281
    functionName: QuickOpen::ReadRaw
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 0
    functionsReached:
    - RawRead::GetCRC50
    - RawRead::GetVSize
    - RawRead::Read
    - RawRead::Get4
    - RawRead::GetV
    - memcpy
    - QuickOpen::ReadBuffer
    linkageType: ''
    returnType: bool
    signature: bool QuickOpen::ReadRaw(RawRead &Raw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuickOpen::ReadRaw
      Src: /src/clamav/libclamunrar/qopen.cpp:288,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/qopen.cpp:290,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/qopen.cpp:291,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/qopen.cpp:295,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/qopen.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: QuickOpen::ReadNext
    functionSourceFile: /src/clamav/libclamunrar/qopen.cpp
    functionUses: 1
    functionsReached:
    - Alloc
    - QuickOpen::ReadRaw
    - RawRead::GetB
    - RawRead::GetV
    linkageType: ''
    returnType: bool
    signature: bool QuickOpen::ReadNext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:6,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmdmix.cpp:6,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:16,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdmix.cpp:16,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmdmix.cpp:16,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:18,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdmix.cpp:18,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/cmdmix.cpp:20,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdmix.cpp:20,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/cmdmix.cpp:23,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmdmix.cpp:23,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdmix.cpp:23,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/cmdmix.cpp:26,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmdmix.cpp:26,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdmix.cpp:26,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:30,1
    - Dst: exit
      Src: /src/clamav/libclamunrar/cmdmix.cpp:31,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:33,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmdmix.cpp:33,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 36
    functionName: CommandData::OutTitle
    functionSourceFile: /src/clamav/libclamunrar/cmdmix.cpp
    functionUses: 0
    functionsReached:
    - St
    - exit
    - wcsncatz
    - ASIZE
    - swprintf
    - mprintf
    linkageType: ''
    returnType: void
    signature: void CommandData::OutTitle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/cmdmix.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i1
    - i2
    argTypes:
    - MSGID
    - MSGID
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: CmpMSGID
    functionSourceFile: /src/clamav/libclamunrar/cmdmix.cpp
    functionUses: 0
    functionsReached:
    - wcscmp
    linkageType: ''
    returnType: bool
    signature: bool CmpMSGID(MSGID i1,MSGID i2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData::OutTitle
      Src: /src/clamav/libclamunrar/cmdmix.cpp:54,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdmix.cpp:75,1
    - Dst: CmpMSGID
      Src: /src/clamav/libclamunrar/cmdmix.cpp:78,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdmix.cpp:86,1
    - Dst: CmpMSGID
      Src: /src/clamav/libclamunrar/cmdmix.cpp:87,1
    - Dst: CmpMSGID
      Src: /src/clamav/libclamunrar/cmdmix.cpp:96,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:98,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmdmix.cpp:98,1
    - Dst: CmpMSGID
      Src: /src/clamav/libclamunrar/cmdmix.cpp:103,1
    - Dst: CmpMSGID
      Src: /src/clamav/libclamunrar/cmdmix.cpp:107,1
    - Dst: CmpMSGID
      Src: /src/clamav/libclamunrar/cmdmix.cpp:111,1
    - Dst: CmpMSGID
      Src: /src/clamav/libclamunrar/cmdmix.cpp:115,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:119,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmdmix.cpp:119,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmdmix.cpp:121,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/cmdmix.cpp:122,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 28
    argCount: 1
    argNames:
    - ExitCode
    argTypes:
    - RAR_EXIT
    constantsTouched: []
    func_position:
      end: 124
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 124
    functionName: CommandData::OutHelp
    functionSourceFile: /src/clamav/libclamunrar/cmdmix.cpp
    functionUses: 0
    functionsReached:
    - St
    - Exit
    - CommandData::OutTitle
    - ASIZE
    - CmpMSGID
    - mprintf
    linkageType: ''
    returnType: void
    signature: void CommandData::OutHelp(RAR_EXIT ExitCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Priority
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: ThreadPool::SetPriority
    functionSourceFile: /src/clamav/libclamunrar/threadpool.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPriority(int Priority)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData*::GetArcName
      Src: /src/clamav/libclamunrar/list.cpp:19,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:19,1
    - Dst: CommandData*::Password::Clean
      Src: /src/clamav/libclamunrar/list.cpp:22,1
    - Dst: Archive::WOpen
      Src: /src/clamav/libclamunrar/list.cpp:25,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/list.cpp:32,1
    - Dst: Archive::ViewComment
      Src: /src/clamav/libclamunrar/list.cpp:37,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:38,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:38,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:40,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:40,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:43,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:45,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:45,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:47,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:47,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:54,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:55,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:55,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:58,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:58,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:60,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:60,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:62,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:62,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:64,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:64,1
    - Dst: Archive::MainHead::OrigName::empty
      Src: /src/clamav/libclamunrar/list.cpp:66,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:67,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:67,1
    - Dst: Archive::MainHead::OrigName::c_str
      Src: /src/clamav/libclamunrar/list.cpp:67,1
    - Dst: Archive::MainHead::OrigTime::IsSet
      Src: /src/clamav/libclamunrar/list.cpp:68,1
    - Dst: Archive::MainHead::OrigTime::GetText
      Src: /src/clamav/libclamunrar/list.cpp:71,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:71,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:72,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:72,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:75,1
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/list.cpp:80,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/list.cpp:82,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/list.cpp:83,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/list.cpp:89,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:89,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:89,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:93,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:93,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:95,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:95,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:96,1
    - Dst: CommandData*::IsProcessFile
      Src: /src/clamav/libclamunrar/list.cpp:103,1
    - Dst: ListFileHeader
      Src: /src/clamav/libclamunrar/list.cpp:106,1
    - Dst: ListFileHeader
      Src: /src/clamav/libclamunrar/list.cpp:119,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/list.cpp:123,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/list.cpp:129,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:129,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/list.cpp:132,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:132,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:136,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:137,1
    - Dst: ToPercentUnlim
      Src: /src/clamav/libclamunrar/list.cpp:138,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:143,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:144,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:150,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:153,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:153,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/list.cpp:159,1
    - Dst: MergeArchive
      Src: /src/clamav/libclamunrar/list.cpp:160,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/list.cpp:161,1
    - Dst: CommandData*::ArcNames::ItemsCount
      Src: /src/clamav/libclamunrar/list.cpp:168,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:169,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:169,1
    - Dst: CommandData*::Password::Clean
      Src: /src/clamav/libclamunrar/list.cpp:177,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/list.cpp:182,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:182,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/list.cpp:183,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:183,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:186,1
    - Dst: ToPercentUnlim
      Src: /src/clamav/libclamunrar/list.cpp:187,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:189,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 110
    argCount: 1
    argNames:
    - Cmd
    argTypes:
    - CommandData*
    constantsTouched: []
    func_position:
      end: 191
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 191
    functionName: ListArchive
    functionSourceFile: /src/clamav/libclamunrar/list.cpp
    functionUses: 0
    functionsReached:
    - Archive::WOpen
    - Archive::ViewComment
    - MergeArchive
    - Archive::SeekToNext
    - Archive::MainHead::OrigTime::IsSet
    - CommandData*::GetArcName
    - Archive::MainHead::OrigName::c_str
    - Wait
    - CommandData*::IsProcessFile
    - St
    - itoa
    - Archive::MainHead::OrigName::empty
    - swprintf
    - Archive::GetHeaderType
    - mprintf
    - CommandData*::ArcNames::ItemsCount
    - ListFileHeader
    - CommandData*::Password::Clean
    - ASIZE
    - Archive::MainHead::OrigTime::GetText
    - ToPercentUnlim
    - Archive::IsArchive
    - Archive::Seek
    - Archive::ReadHeader
    linkageType: ''
    returnType: void
    signature: void ListArchive(CommandData *Cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:205,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:205,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:207,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:211,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:211,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:213,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:227,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/list.cpp:233,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:233,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/list.cpp:235,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:235,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/list.cpp:236,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:236,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/list.cpp:240,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:240,1
    - Dst: ListFileAttr
      Src: /src/clamav/libclamunrar/list.cpp:242,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:242,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/list.cpp:247,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:247,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/list.cpp:250,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:250,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/list.cpp:253,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:253,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/list.cpp:255,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:255,1
    - Dst: ToPercentUnlim
      Src: /src/clamav/libclamunrar/list.cpp:255,1
    - Dst: FileHeader::mtime::GetText
      Src: /src/clamav/libclamunrar/list.cpp:258,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:258,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:262,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:262,1
    - Dst: Archive::SubHead::CmpName
      Src: /src/clamav/libclamunrar/list.cpp:266,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:268,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:268,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:268,1
    - Dst: GetStreamNameNTFS
      Src: /src/clamav/libclamunrar/list.cpp:270,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:270,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:271,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:271,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:275,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:281,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:283,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:285,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:287,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:289,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:291,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:291,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/list.cpp:300,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:300,1
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/list.cpp:305,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/list.cpp:309,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:309,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:310,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:310,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:313,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:313,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:317,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:317,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:318,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:318,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:319,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:319,1
    - Dst: FileHeader::mtime::IsSet
      Src: /src/clamav/libclamunrar/list.cpp:325,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:326,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:326,1
    - Dst: FileHeader::ctime::IsSet
      Src: /src/clamav/libclamunrar/list.cpp:327,1
    - Dst: FileHeader::ctime::GetText
      Src: /src/clamav/libclamunrar/list.cpp:329,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:329,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:330,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:330,1
    - Dst: FileHeader::atime::IsSet
      Src: /src/clamav/libclamunrar/list.cpp:332,1
    - Dst: FileHeader::atime::GetText
      Src: /src/clamav/libclamunrar/list.cpp:334,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:334,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:335,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:335,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:337,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:337,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:339,1
    - Dst: BinToHex
      Src: /src/clamav/libclamunrar/list.cpp:345,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:345,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:346,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/list.cpp:359,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:363,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:363,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:365,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:365,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:373,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:373,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:375,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:375,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:377,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:377,1
    - Dst: ParseVersionFileName
      Src: /src/clamav/libclamunrar/list.cpp:382,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:384,1
    - Dst: St
      Src: /src/clamav/libclamunrar/list.cpp:384,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:389,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:391,1
    - Dst: GetWide
      Src: /src/clamav/libclamunrar/list.cpp:391,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:394,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:395,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:397,1
    - Dst: GetWide
      Src: /src/clamav/libclamunrar/list.cpp:397,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:400,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:403,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:407,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:410,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:412,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:417,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:422,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:425,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/list.cpp:427,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 144
    argCount: 7
    argNames:
    - Arc
    - hd
    - TitleShown
    - Verbose
    - Technical
    - Bare
    - DisableNames
    argTypes:
    - Archive
    - FileHeader
    - bool
    - bool
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 428
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 428
    functionName: ListFileHeader
    functionSourceFile: /src/clamav/libclamunrar/list.cpp
    functionUses: 1
    functionsReached:
    - FileHeader::atime::IsSet
    - GetStreamNameNTFS
    - FileHeader::mtime::GetText
    - FileHeader::ctime::IsSet
    - strncpyz
    - St
    - wcsncpyz
    - BinToHex
    - itoa
    - ListFileAttr
    - Archive::SubHead::CmpName
    - swprintf
    - mprintf
    - FileHeader::atime::GetText
    - FileHeader::ctime::GetText
    - ASIZE
    - CharToWide
    - ToPercentUnlim
    - FileHeader::mtime::IsSet
    - GetWide
    - ParseVersionFileName
    - Archive::Read
    linkageType: ''
    returnType: void
    signature: void ListFileHeader(Archive &Arc,FileHeader &hd,bool &TitleShown,bool
      Verbose,bool Technical,bool Bare,bool DisableNames)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/list.cpp:456,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/list.cpp:478,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/list.cpp:490,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - A
    - HostType
    - AttrStr
    - AttrSize
    argTypes:
    - uint
    - HOST_SYSTEM_TYPE
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 493
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 493
    functionName: ListFileAttr
    functionSourceFile: /src/clamav/libclamunrar/list.cpp
    functionUses: 1
    functionsReached:
    - wcsncpyz
    - swprintf
    linkageType: ''
    returnType: void
    signature: void ListFileAttr(uint A,HOST_SYSTEM_TYPE HostType,wchar *AttrStr,size_t
      AttrSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpInitData
      Src: /src/clamav/libclamunrar/unpack50.cpp:7,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:8,1
    - Dst: Unpack::ReadBlockHeader
      Src: /src/clamav/libclamunrar/unpack50.cpp:14,1
    - Dst: Unpack::ReadTables
      Src: /src/clamav/libclamunrar/unpack50.cpp:15,1
    - Dst: Unpack::ReadBlockHeader
      Src: /src/clamav/libclamunrar/unpack50.cpp:38,1
    - Dst: Unpack::ReadTables
      Src: /src/clamav/libclamunrar/unpack50.cpp:38,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:41,1
    - Dst: Unpack::UnpWriteBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:47,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50.cpp:57,1
    - Dst: Unpack::SlotToLength
      Src: /src/clamav/libclamunrar/unpack50.cpp:68,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50.cpp:70,1
    - Dst: getbits32
      Src: /src/clamav/libclamunrar/unpack50.cpp:88,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:89,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50.cpp:91,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:96,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:97,1
    - Dst: Unpack::InsertOldDist
      Src: /src/clamav/libclamunrar/unpack50.cpp:112,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50.cpp:115,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50.cpp:117,1
    - Dst: Unpack::ReadFilter
      Src: /src/clamav/libclamunrar/unpack50.cpp:123,1
    - Dst: Unpack::AddFilter
      Src: /src/clamav/libclamunrar/unpack50.cpp:123,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50.cpp:131,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50.cpp:133,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50.cpp:144,1
    - Dst: Unpack::SlotToLength
      Src: /src/clamav/libclamunrar/unpack50.cpp:145,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50.cpp:148,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50.cpp:150,1
    - Dst: Unpack::UnpWriteBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:154,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 97
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 155
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 155
    functionName: Unpack::Unpack5
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 0
    functionsReached:
    - Unpack::UnpReadBuf
    - Unpack::UnpWriteBuf
    - Unpack::SlotToLength
    - Unpack::ReadTables
    - getbits32
    - Unpack::CopyString
    - Unpack::AddFilter
    - Unpack::DecodeNumber
    - Unpack::InsertOldDist
    - Unpack::ReadBlockHeader
    - Unpack::ReadFilter
    - Unpack::UnpInitData
    - getbits
    - addbits
    linkageType: ''
    returnType: void
    signature: void Unpack::Unpack5(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:160,1
    - Dst: BitInput::addbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:161,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:166,1
    - Dst: BitInput::addbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - Inp
    argTypes:
    - BitInput
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: Unpack::ReadFilterData
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 0
    functionsReached:
    - BitInput::fgetbits
    - BitInput::addbits
    linkageType: ''
    returnType: uint
    signature: uint Unpack::ReadFilterData(BitInput &Inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:176,1
    - Dst: Unpack::ReadFilterData
      Src: /src/clamav/libclamunrar/unpack50.cpp:179,1
    - Dst: Unpack::ReadFilterData
      Src: /src/clamav/libclamunrar/unpack50.cpp:180,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:184,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:185,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:189,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - Inp
    - Filter
    argTypes:
    - BitInput
    - UnpackFilter
    constantsTouched: []
    func_position:
      end: 194
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 194
    functionName: Unpack::ReadFilter
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 1
    functionsReached:
    - Unpack::ReadFilterData
    - Unpack::UnpReadBuf
    - BitInput::faddbits
    - BitInput::fgetbits
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadFilter(BitInput &Inp,UnpackFilter &Filter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack50.cpp:199,1
    - Dst: Unpack::UnpWriteBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:201,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack50.cpp:202,1
    - Dst: Unpack::InitFilters
      Src: /src/clamav/libclamunrar/unpack50.cpp:203,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unpack50.cpp:211,1
    - Dst: Push
      Src: /src/clamav/libclamunrar/unpack50.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - Filter
    argTypes:
    - UnpackFilter
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: Unpack::AddFilter
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpWriteBuf
    - Unpack::InitFilters
    - Size
    - Push
    - uint
    linkageType: ''
    returnType: bool
    signature: bool Unpack::AddFilter(UnpackFilter &Filter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/clamav/libclamunrar/unpack50.cpp:232,1
    - Dst: UnpRead
      Src: /src/clamav/libclamunrar/unpack50.cpp:240,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack50.cpp:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 252
    functionName: Unpack::UnpReadBuf
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 2
    functionsReached:
    - Min
    - memmove
    - UnpRead
    linkageType: ''
    returnType: bool
    signature: bool Unpack::UnpReadBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack50.cpp:261,1
    - Dst: Unpack::UnpWriteArea
      Src: /src/clamav/libclamunrar/unpack50.cpp:296,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/unpack50.cpp:306,1
    - Dst: CopyData
      Src: /src/clamav/libclamunrar/unpack50.cpp:311,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpack50.cpp:313,1
    - Dst: CopyData
      Src: /src/clamav/libclamunrar/unpack50.cpp:320,1
    - Dst: CopyData
      Src: /src/clamav/libclamunrar/unpack50.cpp:321,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpack50.cpp:325,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpack50.cpp:326,1
    - Dst: Unpack::ApplyFilter
      Src: /src/clamav/libclamunrar/unpack50.cpp:330,1
    - Dst: UnpWrite
      Src: /src/clamav/libclamunrar/unpack50.cpp:335,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack50.cpp:352,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack50.cpp:368,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/unpack50.cpp:376,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/unpack50.cpp:376,1
    - Dst: Unpack::UnpWriteArea
      Src: /src/clamav/libclamunrar/unpack50.cpp:381,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack50.cpp:388,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 395
    functionName: Unpack::UnpWriteBuf
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 2
    functionsReached:
    - Unpack::ApplyFilter
    - UnpWrite
    - Size
    - Alloc
    - memcpy
    - CopyData
    - Min
    - Unpack::UnpWriteArea
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpWriteBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/unpack50.cpp:419,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/unpack50.cpp:426,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/unpack50.cpp:430,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unpack50.cpp:452,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unpack50.cpp:452,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/unpack50.cpp:467,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - Data
    - DataSize
    - Flt
    argTypes:
    - byte*
    - uint
    - UnpackFilter*
    constantsTouched: []
    func_position:
      end: 483
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 483
    functionName: Unpack::ApplyFilter
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 1
    functionsReached:
    - uint
    - Alloc
    - RawPut4
    - RawGet4
    linkageType: ''
    returnType: byte
    signature: byte * Unpack::ApplyFilter(byte *Data,uint DataSize,UnpackFilter *Flt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpWriteData
      Src: /src/clamav/libclamunrar/unpack50.cpp:499,1
    - Dst: Unpack::UnpWriteData
      Src: /src/clamav/libclamunrar/unpack50.cpp:507,1
    - Dst: Unpack::UnpWriteData
      Src: /src/clamav/libclamunrar/unpack50.cpp:508,1
    - Dst: Unpack::UnpWriteData
      Src: /src/clamav/libclamunrar/unpack50.cpp:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - StartPtr
    - EndPtr
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 512
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 512
    functionName: Unpack::UnpWriteArea
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 2
    functionsReached:
    - Unpack::UnpWriteData
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpWriteArea(size_t StartPtr,size_t EndPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnpWrite
      Src: /src/clamav/libclamunrar/unpack50.cpp:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: Unpack::UnpWriteData
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 1
    functionsReached:
    - UnpWrite
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpWriteData(byte *Data,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: Unpack::UnpInitData50
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpInitData50(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:540,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:542,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:544,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:545,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:555,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:556,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:561,1
    - Dst: BitInput::addbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:562,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/unpack50.cpp:566,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack50.cpp:571,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - Inp
    - Header
    argTypes:
    - BitInput
    - UnpackBlockHeader
    constantsTouched: []
    func_position:
      end: 576
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 576
    functionName: Unpack::ReadBlockHeader
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpReadBuf
    - byte
    - BitInput::fgetbits
    - BitInput::addbits
    - BitInput::faddbits
    - Min
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadBlockHeader(BitInput &Inp,UnpackBlockHeader &Header)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:585,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:591,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:592,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:595,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:596,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack50.cpp:602,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack50.cpp:611,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack50.cpp:618,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50.cpp:620,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:632,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:633,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:637,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:638,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:661,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:662,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:666,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/unpack50.cpp:667,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack50.cpp:676,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack50.cpp:677,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack50.cpp:678,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack50.cpp:679,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 3
    argNames:
    - Inp
    - Header
    - Tables
    argTypes:
    - BitInput
    - UnpackBlockHeader
    - UnpackBlockTables
    constantsTouched: []
    func_position:
      end: 681
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 681
    functionName: Unpack::ReadTables
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpReadBuf
    - Unpack::DecodeNumber
    - BitInput::fgetbits
    - BitInput::faddbits
    - Unpack::MakeDecodeTables
    - ASIZE
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadTables(BitInput &Inp,UnpackBlockHeader &Header,UnpackBlockTables
      &Tables)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftReset
      Src: /src/clamav/libclamunrar/unpack50.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 687
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 687
    functionName: Unpack::InitFilters
    functionSourceFile: /src/clamav/libclamunrar/unpack50.cpp
    functionUses: 1
    functionsReached:
    - SoftReset
    linkageType: ''
    returnType: void
    signature: void Unpack::InitFilters()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptData::Clean
      Src: /src/clamav/libclamunrar/crypt.hpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: CryptData::KDF5CacheItem
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached:
    - CryptData::Clean
    linkageType: ''
    returnType: void
    signature: void KDF5CacheItem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clean
      Src: /src/clamav/libclamunrar/crypt.hpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~KDF5CacheItem()
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached:
    - Clean
    linkageType: ''
    returnType: void
    signature: void ~KDF5CacheItem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:39,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:40,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:41,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:42,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: CryptData::Clean
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 1
    functionsReached:
    - cleandata
    linkageType: ''
    returnType: void
    signature: void Clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptData::Clean
      Src: /src/clamav/libclamunrar/crypt.hpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: CryptData::KDF3CacheItem
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached:
    - CryptData::Clean
    linkageType: ''
    returnType: void
    signature: void KDF3CacheItem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clean
      Src: /src/clamav/libclamunrar/crypt.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: ~KDF3CacheItem()
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached:
    - Clean
    linkageType: ''
    returnType: void
    signature: void ~KDF3CacheItem()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:60,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:61,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:62,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.hpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: CryptData::Clean
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 2
    functionsReached:
    - cleandata
    linkageType: ''
    returnType: void
    signature: void Clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: RarCheckPassword::RarCheckPassword
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RarCheckPassword()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: ~RarCheckPassword()
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RarCheckPassword()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptData::CryptData
      Src: /src/clamav/libclamunrar/crypt.hpp:142,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt.hpp:143,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt.hpp:144,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt.hpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - Salt
    - InitV
    - Lg2Count
    - PswCheck
    argTypes:
    - byte*
    - byte*
    - uint
    - byte*
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: RarCheckPassword::Set
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached:
    - memcpy
    - CryptData::CryptData
    linkageType: ''
    returnType: void
    signature: void Set(byte *Salt,byte *InitV,uint Lg2Count,byte *PswCheck)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: RarCheckPassword::IsSet
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: RarCheckPassword::GetConfidence
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CONFIDENCE
    signature: CONFIDENCE GetConfidence()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetCryptKeys
      Src: /src/clamav/libclamunrar/crypt.hpp:156,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/crypt.hpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Password
    argTypes:
    - SecPassword*
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: RarCheckPassword::Check
    functionSourceFile: /src/clamav/libclamunrar/crypt.hpp
    functionUses: 0
    functionsReached:
    - memcmp
    - SetCryptKeys
    linkageType: ''
    returnType: bool
    signature: bool Check(SecPassword *Password)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnpackThreadDataList*::D::UnpackPtr::UnpackDecode
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: THREAD_PROC
    functionSourceFile: /src/clamav/libclamunrar/unpack50mt.cpp
    functionUses: 0
    functionsReached:
    - UnpackThreadDataList*::D::UnpackPtr::UnpackDecode
    linkageType: ''
    returnType: void
    signature: void THREAD_PROC(UnpackDecodeThread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: byte::byte
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:30,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:31,1
    - Dst: UnpackThreadData::UnpackThreadData
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:36,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:37,1
    - Dst: malloc
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:47,1
    - Dst: MemoryError
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 53
    functionName: Unpack::InitMT
    functionSourceFile: /src/clamav/libclamunrar/unpack50mt.cpp
    functionUses: 0
    functionsReached:
    - memset
    - byte::byte
    - MemoryError
    - malloc
    - UnpackThreadData::UnpackThreadData
    linkageType: ''
    returnType: void
    signature: void Unpack::InitMT()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::InitMT
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:58,1
    - Dst: Unpack::UnpInitData
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:59,1
    - Dst: UnpackThreadData*::Inp::SetExternalBuffer
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:115,1
    - Dst: UnpackThreadData*::Inp::InitBitInput
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:116,1
    - Dst: Unpack::ReadBlockHeader
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:136,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:182,1
    - Dst: Unpack::UnpackDecode
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:186,1
    - Dst: AddTask
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:188,1
    - Dst: Unpack::UnpackDecode
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:191,1
    - Dst: WaitDone
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:199,1
    - Dst: Unpack::ProcessDecoded
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:207,1
    - Dst: Unpack::UnpackLargeBlock
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:208,1
    - Dst: memmove
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:223,1
    - Dst: memmove
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:272,1
    - Dst: Unpack::UnpWriteBuf
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:281,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 119
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 285
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 285
    functionName: Unpack::Unpack5MT
    functionSourceFile: /src/clamav/libclamunrar/unpack50mt.cpp
    functionUses: 0
    functionsReached:
    - Unpack::UnpWriteBuf
    - Unpack::InitMT
    - Unpack::ProcessDecoded
    - UnpackThreadData*::Inp::InitBitInput
    - Unpack::UnpackDecode
    - Unpack::ReadBlockHeader
    - UnpackThreadData*::Inp::SetExternalBuffer
    - AddTask
    - Unpack::UnpInitData
    - WaitDone
    - Unpack::UnpackLargeBlock
    - memmove
    - Min
    linkageType: ''
    returnType: void
    signature: void Unpack::Unpack5MT(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::ReadTables
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:294,1
    - Dst: MemoryError
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:336,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:342,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:348,1
    - Dst: Unpack::SlotToLength
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:363,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:365,1
    - Dst: UnpackThreadData::Inp::getbits32
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:383,1
    - Dst: UnpackThreadData::Inp::addbits
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:384,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:386,1
    - Dst: UnpackThreadData::Inp::getbits
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:391,1
    - Dst: UnpackThreadData::Inp::addbits
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:392,1
    - Dst: Unpack::ReadFilter
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:415,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:438,1
    - Dst: Unpack::SlotToLength
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:439,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 97
    argCount: 1
    argNames:
    - D
    argTypes:
    - UnpackThreadData
    constantsTouched: []
    func_position:
      end: 444
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 444
    functionName: Unpack::UnpackDecode
    functionSourceFile: /src/clamav/libclamunrar/unpack50mt.cpp
    functionUses: 1
    functionsReached:
    - Unpack::SlotToLength
    - UnpackThreadData::Inp::getbits
    - Unpack::ReadTables
    - MemoryError
    - Unpack::DecodeNumber
    - UnpackThreadData::Inp::addbits
    - UnpackThreadData::Inp::getbits32
    - Unpack::ReadFilter
    - ASIZE
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpackDecode(UnpackThreadData &D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpWriteBuf
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:456,1
    - Dst: Unpack::InsertOldDist
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:477,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:479,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:489,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:495,1
    - Dst: Unpack::AddFilter
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:510,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - D
    argTypes:
    - UnpackThreadData
    constantsTouched: []
    func_position:
      end: 515
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 515
    functionName: Unpack::ProcessDecoded
    functionSourceFile: /src/clamav/libclamunrar/unpack50mt.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpWriteBuf
    - Unpack::InsertOldDist
    - Unpack::CopyString
    - Unpack::AddFilter
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ProcessDecoded(UnpackThreadData &D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::ReadTables
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:525,1
    - Dst: Unpack::UnpWriteBuf
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:564,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:569,1
    - Dst: Unpack::SlotToLength
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:577,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:579,1
    - Dst: UnpackThreadData::Inp::getbits32
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:597,1
    - Dst: UnpackThreadData::Inp::addbits
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:598,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:600,1
    - Dst: UnpackThreadData::Inp::getbits32
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:605,1
    - Dst: UnpackThreadData::Inp::addbits
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:606,1
    - Dst: Unpack::InsertOldDist
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:621,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:623,1
    - Dst: Unpack::ReadFilter
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:629,1
    - Dst: Unpack::AddFilter
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:629,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:636,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:647,1
    - Dst: Unpack::SlotToLength
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:648,1
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack50mt.cpp:650,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 84
    argCount: 1
    argNames:
    - D
    argTypes:
    - UnpackThreadData
    constantsTouched: []
    func_position:
      end: 655
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 655
    functionName: Unpack::UnpackLargeBlock
    functionSourceFile: /src/clamav/libclamunrar/unpack50mt.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpWriteBuf
    - Unpack::SlotToLength
    - Unpack::ReadTables
    - Unpack::AddFilter
    - Unpack::CopyString
    - Unpack::DecodeNumber
    - Unpack::InsertOldDist
    - UnpackThreadData::Inp::addbits
    - UnpackThreadData::Inp::getbits32
    - Unpack::ReadFilter
    linkageType: ''
    returnType: bool
    signature: bool Unpack::UnpackLargeBlock(UnpackThreadData &D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToPercentUnlim
      Src: /src/clamav/libclamunrar/smallfn.cpp:7,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - N1
    - N2
    argTypes:
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 8
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 8
    functionName: ToPercent
    functionSourceFile: /src/clamav/libclamunrar/smallfn.cpp
    functionUses: 0
    functionsReached:
    - ToPercentUnlim
    linkageType: ''
    returnType: int
    signature: int ToPercent(int64 N1,int64 N2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - N1
    - N2
    argTypes:
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: ToPercentUnlim
    functionSourceFile: /src/clamav/libclamunrar/smallfn.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ToPercentUnlim(int64 N1,int64 N2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetACLPrivileges
      Src: /src/clamav/libclamunrar/win32acl.cpp:10,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:14,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32acl.cpp:15,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:21,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32acl.cpp:22,1
    - Dst: ComprDataIO::ComprDataIO
      Src: /src/clamav/libclamunrar/win32acl.cpp:26,1
    - Dst: Unpack::Init
      Src: /src/clamav/libclamunrar/win32acl.cpp:28,1
    - Dst: ComprDataIO::SetUnpackToMemory
      Src: /src/clamav/libclamunrar/win32acl.cpp:31,1
    - Dst: ComprDataIO::SetPackedSizeToRead
      Src: /src/clamav/libclamunrar/win32acl.cpp:32,1
    - Dst: ComprDataIO::EnableShowProgress
      Src: /src/clamav/libclamunrar/win32acl.cpp:33,1
    - Dst: ComprDataIO::SetFiles
      Src: /src/clamav/libclamunrar/win32acl.cpp:34,1
    - Dst: ComprDataIO::UnpHash::Init
      Src: /src/clamav/libclamunrar/win32acl.cpp:35,1
    - Dst: Unpack::SetDestSize
      Src: /src/clamav/libclamunrar/win32acl.cpp:36,1
    - Dst: Unpack::DoUnpack
      Src: /src/clamav/libclamunrar/win32acl.cpp:37,1
    - Dst: ComprDataIO::UnpHash::GetCRC32
      Src: /src/clamav/libclamunrar/win32acl.cpp:39,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:41,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32acl.cpp:42,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:56,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/win32acl.cpp:57,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:58,1
    - Dst: IsUserAdmin
      Src: /src/clamav/libclamunrar/win32acl.cpp:59,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:60,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32acl.cpp:61,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - Arc
    - FileName
    argTypes:
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 63
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 63
    functionName: ExtractACL20
    functionSourceFile: /src/clamav/libclamunrar/win32acl.cpp
    functionUses: 0
    functionsReached:
    - ComprDataIO::EnableShowProgress
    - ComprDataIO::ComprDataIO
    - SysErrMsg
    - ComprDataIO::SetPackedSizeToRead
    - ComprDataIO::UnpHash::Init
    - GetLastError
    - ComprDataIO::SetFiles
    - ComprDataIO::SetUnpackToMemory
    - Unpack::SetDestSize
    - ComprDataIO::UnpHash::GetCRC32
    - SetACLPrivileges
    - Unpack::DoUnpack
    - uiMsg
    - SetErrorCode
    - Unpack::Init
    - IsUserAdmin
    linkageType: ''
    returnType: void
    signature: void ExtractACL20(Archive &Arc,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::ReadSubData
      Src: /src/clamav/libclamunrar/win32acl.cpp:70,1
    - Dst: SetACLPrivileges
      Src: /src/clamav/libclamunrar/win32acl.cpp:73,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/win32acl.cpp:85,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32acl.cpp:85,1
    - Dst: SetFileSecurity
      Src: /src/clamav/libclamunrar/win32acl.cpp:86,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:91,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/win32acl.cpp:92,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:93,1
    - Dst: IsUserAdmin
      Src: /src/clamav/libclamunrar/win32acl.cpp:94,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32acl.cpp:95,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32acl.cpp:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - Arc
    - FileName
    argTypes:
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 98
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 98
    functionName: ExtractACL
    functionSourceFile: /src/clamav/libclamunrar/win32acl.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - SysErrMsg
    - SetFileSecurity
    - GetLastError
    - GetWinLongPath
    - SetACLPrivileges
    - ASIZE
    - Archive::ReadSubData
    - SetErrorCode
    - IsUserAdmin
    linkageType: ''
    returnType: void
    signature: void ExtractACL(Archive &Arc,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetPrivilege
      Src: /src/clamav/libclamunrar/win32acl.cpp:107,1
    - Dst: SetPrivilege
      Src: /src/clamav/libclamunrar/win32acl.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: SetACLPrivileges
    functionSourceFile: /src/clamav/libclamunrar/win32acl.cpp
    functionUses: 2
    functionsReached:
    - SetPrivilege
    linkageType: ''
    returnType: void
    signature: void SetACLPrivileges()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcessToken
      Src: /src/clamav/libclamunrar/win32acl.cpp:120,1
    - Dst: GetCurrentProcess
      Src: /src/clamav/libclamunrar/win32acl.cpp:120,1
    - Dst: LookupPrivilegeValue
      Src: /src/clamav/libclamunrar/win32acl.cpp:126,1
    - Dst: AdjustTokenPrivileges
      Src: /src/clamav/libclamunrar/win32acl.cpp:127,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/win32acl.cpp:128,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/win32acl.cpp:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - PrivName
    argTypes:
    - LPCTSTR
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: SetPrivilege
    functionSourceFile: /src/clamav/libclamunrar/win32acl.cpp
    functionUses: 1
    functionsReached:
    - GetCurrentProcess
    - GetLastError
    - OpenProcessToken
    - AdjustTokenPrivileges
    - CloseHandle
    - LookupPrivilegeValue
    linkageType: ''
    returnType: bool
    signature: bool SetPrivilege(LPCTSTR PrivName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - StringId
    argTypes:
    - MSGID
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: St
    functionSourceFile: /src/clamav/libclamunrar/resource.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar * St(MSGID StringId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintfPrepareFmt
      Src: /src/clamav/libclamunrar/resource.cpp:18,1
    - Dst: St
      Src: /src/clamav/libclamunrar/resource.cpp:18,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/resource.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - StringId
    argTypes:
    - MSGID
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: StF
    functionSourceFile: /src/clamav/libclamunrar/resource.cpp
    functionUses: 0
    functionsReached:
    - St
    - PrintfPrepareFmt
    - ASIZE
    linkageType: ''
    returnType: wchar
    signature: wchar *StF(MSGID StringId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: charnext
      Src: /src/clamav/libclamunrar/unicode.hpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: charnext
    functionSourceFile: /src/clamav/libclamunrar/unicode.hpp
    functionUses: 1
    functionsReached:
    - charnext
    linkageType: ''
    returnType: char
    signature: char * charnext(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: IsDBCSMode
    functionSourceFile: /src/clamav/libclamunrar/unicode.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDBCSMode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSEncode::Init
      Src: /src/clamav/libclamunrar/recvol3.cpp:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RecVolNumber
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 12
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: RSEncode::Init
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 1
    functionsReached:
    - RSEncode::Init
    linkageType: ''
    returnType: void
    signature: void Init(int RecVolNumber)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSEncode*::EncodeBuf
      Src: /src/clamav/libclamunrar/recvol3.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: THREAD_PROC
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - RSEncode*::EncodeBuf
    linkageType: ''
    returnType: void
    signature: void THREAD_PROC(RSEncodeThread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSEncode*::DecodeBuf
      Src: /src/clamav/libclamunrar/recvol3.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: THREAD_PROC
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - RSEncode*::DecodeBuf
    linkageType: ''
    returnType: void
    signature: void THREAD_PROC(RSDecodeThread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/recvol3.cpp:41,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/recvol3.cpp:50,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/recvol3.cpp:51,1
    - Dst: ThreadPool::ThreadPool
      Src: /src/clamav/libclamunrar/recvol3.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Cmd
    - TestOnly
    argTypes:
    - CommandData*
    - bool
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: RecVolumes3::RecVolumes3
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - ThreadPool::ThreadPool
    - memset
    - Alloc
    linkageType: ''
    returnType: void
    signature: void RecVolumes3::RecVolumes3(CommandData *Cmd,bool TestOnly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: RecVolumes3::~RecVolumes3()
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    linkageType: ''
    returnType: void
    signature: void RecVolumes3::~RecVolumes3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Encode
      Src: /src/clamav/libclamunrar/recvol3.cpp:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: RSEncode::EncodeBuf
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - Encode
    linkageType: ''
    returnType: void
    signature: void RSEncode::EncodeBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/recvol3.cpp:88,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/recvol3.cpp:93,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/recvol3.cpp:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: IsNewStyleRev
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - IsDigit
    - GetExt
    linkageType: ''
    returnType: bool
    signature: bool IsNewStyleRev(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:105,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:105,1
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/recvol3.cpp:106,1
    - Dst: IsNewStyleRev
      Src: /src/clamav/libclamunrar/recvol3.cpp:111,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/recvol3.cpp:112,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:114,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:114,1
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/recvol3.cpp:116,1
    - Dst: FindFile::SetMask
      Src: /src/clamav/libclamunrar/recvol3.cpp:117,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/recvol3.cpp:119,1
    - Dst: Archive::WOpen
      Src: /src/clamav/libclamunrar/recvol3.cpp:122,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/recvol3.cpp:122,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:124,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:124,1
    - Dst: Archive::WCheckOpen
      Src: /src/clamav/libclamunrar/recvol3.cpp:131,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:135,1
    - Dst: Archive::Close
      Src: /src/clamav/libclamunrar/recvol3.cpp:139,1
    - Dst: VolNameToFirstName
      Src: /src/clamav/libclamunrar/recvol3.cpp:141,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:141,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:143,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:143,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:145,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:145,1
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/recvol3.cpp:154,1
    - Dst: FindFile::SetMask
      Src: /src/clamav/libclamunrar/recvol3.cpp:155,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/recvol3.cpp:159,1
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/recvol3.cpp:167,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:186,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:190,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/recvol3.cpp:192,1
    - Dst: File::TOpen
      Src: /src/clamav/libclamunrar/recvol3.cpp:193,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:194,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/recvol3.cpp:195,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:196,1
    - Dst: File::GetByte
      Src: /src/clamav/libclamunrar/recvol3.cpp:198,1
    - Dst: File::GetByte
      Src: /src/clamav/libclamunrar/recvol3.cpp:201,1
    - Dst: CalcFileSum
      Src: /src/clamav/libclamunrar/recvol3.cpp:203,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:206,1
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/recvol3.cpp:212,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:216,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/recvol3.cpp:221,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/recvol3.cpp:222,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:233,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:238,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:238,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/recvol3.cpp:239,1
    - Dst: File*::TOpen
      Src: /src/clamav/libclamunrar/recvol3.cpp:240,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:245,1
    - Dst: File*::FileLength
      Src: /src/clamav/libclamunrar/recvol3.cpp:252,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:255,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/recvol3.cpp:260,1
    - Dst: Archive::Archive
      Src: /src/clamav/libclamunrar/recvol3.cpp:267,1
    - Dst: Archive*::TOpen
      Src: /src/clamav/libclamunrar/recvol3.cpp:271,1
    - Dst: Archive*::IsArchive
      Src: /src/clamav/libclamunrar/recvol3.cpp:272,1
    - Dst: Archive*::ReadHeader
      Src: /src/clamav/libclamunrar/recvol3.cpp:275,1
    - Dst: Archive*::GetHeaderType
      Src: /src/clamav/libclamunrar/recvol3.cpp:277,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:279,1
    - Dst: CalcFileSum
      Src: /src/clamav/libclamunrar/recvol3.cpp:284,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:288,1
    - Dst: Archive*::SeekToNext
      Src: /src/clamav/libclamunrar/recvol3.cpp:293,1
    - Dst: Archive*::Close
      Src: /src/clamav/libclamunrar/recvol3.cpp:298,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:300,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:300,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/recvol3.cpp:301,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:301,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:303,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:304,1
    - Dst: RenameFile
      Src: /src/clamav/libclamunrar/recvol3.cpp:305,1
    - Dst: Archive*::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:307,1
    - Dst: Archive*::Create
      Src: /src/clamav/libclamunrar/recvol3.cpp:315,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:322,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:323,1
    - Dst: CreateErrorMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:324,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:332,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:332,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:334,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:335,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/recvol3.cpp:338,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:338,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:341,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:345,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:351,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:352,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:356,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol3.cpp:367,1
    - Dst: RSEncode::RSEncode
      Src: /src/clamav/libclamunrar/recvol3.cpp:376,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/recvol3.cpp:378,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/recvol3.cpp:382,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/recvol3.cpp:386,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/recvol3.cpp:391,1
    - Dst: uiProcessProgress
      Src: /src/clamav/libclamunrar/recvol3.cpp:401,1
    - Dst: AddTask
      Src: /src/clamav/libclamunrar/recvol3.cpp:429,1
    - Dst: RSEncode*::DecodeBuf
      Src: /src/clamav/libclamunrar/recvol3.cpp:431,1
    - Dst: RSEncode*::DecodeBuf
      Src: /src/clamav/libclamunrar/recvol3.cpp:433,1
    - Dst: WaitDone
      Src: /src/clamav/libclamunrar/recvol3.cpp:440,1
    - Dst: Write
      Src: /src/clamav/libclamunrar/recvol3.cpp:445,1
    - Dst: File*::Tell
      Src: /src/clamav/libclamunrar/recvol3.cpp:455,1
    - Dst: File*::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:456,1
    - Dst: File*::PutByte
      Src: /src/clamav/libclamunrar/recvol3.cpp:458,1
    - Dst: File*::Close
      Src: /src/clamav/libclamunrar/recvol3.cpp:460,1
    - Dst: Archive::Open
      Src: /src/clamav/libclamunrar/recvol3.cpp:467,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/recvol3.cpp:467,1
    - Dst: Archive::SearchBlock
      Src: /src/clamav/libclamunrar/recvol3.cpp:468,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:470,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:478,1
    - Dst: Archive::Truncate
      Src: /src/clamav/libclamunrar/recvol3.cpp:479,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol3.cpp:485,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol3.cpp:487,1
    - Dst: St
      Src: /src/clamav/libclamunrar/recvol3.cpp:487,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 225
    argCount: 3
    argNames:
    - Cmd
    - Name
    - Silent
    argTypes:
    - CommandData*
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 490
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 490
    functionName: RecVolumes3::Restore
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - Init
    - File*::FileLength
    - File*::PutByte
    - Archive::WOpen
    - GetExt
    - File*::TOpen
    - RSEncode*::DecodeBuf
    - File*::Seek
    - File::GetByte
    - AddTask
    - atoiw
    - Archive*::SeekToNext
    - NextVolumeName
    - File::Tell
    - VolNameToFirstName
    - Archive*::TOpen
    - Wait
    - File*::Tell
    - CreateErrorMsg
    - IsNewStyleRev
    - Archive*::Close
    - wcsncpyz
    - Archive*::IsArchive
    - St
    - Archive::SearchBlock
    - Archive::Close
    - mprintf
    - Archive::Truncate
    - memset
    - File::Seek
    - Archive::Archive
    - RSEncode::RSEncode
    - Archive*::Create
    - CalcFileSum
    - File::TOpen
    - File*::Close
    - wcsncatz
    - RenameFile
    - ASIZE
    - uiMsg
    - IsDigit
    - Archive::Open
    - FindFile::FindFile
    - File::File
    - FindFile::Next
    - Archive*::GetHeaderType
    - Archive*::Seek
    - Archive::WCheckOpen
    - Archive::IsArchive
    - Archive*::ReadHeader
    - Archive::Seek
    - FindFile::SetMask
    - Write
    - WaitDone
    - uiProcessProgress
    linkageType: ''
    returnType: bool
    signature: bool RecVolumes3::Restore(CommandData *Cmd,const wchar *Name,bool Silent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decode
      Src: /src/clamav/libclamunrar/recvol3.cpp:500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 504
    functionName: RSEncode::DecodeBuf
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - Decode
    linkageType: ''
    returnType: void
    signature: void RSEncode::DecodeBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsNewStyleRev
      Src: /src/clamav/libclamunrar/recvol3.cpp:509,1
    - Dst: UnknownMethodMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:511,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol3.cpp:516,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:516,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/recvol3.cpp:518,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/recvol3.cpp:520,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/recvol3.cpp:521,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:523,1
    - Dst: uiStartFileExtract
      Src: /src/clamav/libclamunrar/recvol3.cpp:526,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol3.cpp:528,1
    - Dst: St
      Src: /src/clamav/libclamunrar/recvol3.cpp:528,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol3.cpp:529,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:530,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/recvol3.cpp:531,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/recvol3.cpp:532,1
    - Dst: File::GetByte
      Src: /src/clamav/libclamunrar/recvol3.cpp:535,1
    - Dst: CalcFileSum
      Src: /src/clamav/libclamunrar/recvol3.cpp:538,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol3.cpp:541,1
    - Dst: St
      Src: /src/clamav/libclamunrar/recvol3.cpp:541,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol3.cpp:545,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/recvol3.cpp:546,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/recvol3.cpp:549,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol3.cpp:549,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - Cmd
    - Name
    argTypes:
    - CommandData*
    - wchar*
    constantsTouched: []
    func_position:
      end: 551
      start: 507
    functionDepth: 4
    functionLinenumber: 507
    functionLinenumberEnd: 551
    functionName: RecVolumes3::Test
    functionSourceFile: /src/clamav/libclamunrar/recvol3.cpp
    functionUses: 0
    functionsReached:
    - File::File
    - IsNewStyleRev
    - UnknownMethodMsg
    - wcsncpyz
    - FileExist
    - uiStartFileExtract
    - St
    - File::Seek
    - File::GetByte
    - CalcFileSum
    - File::Open
    - NextVolumeName
    - ASIZE
    - uiMsg
    - SetErrorCode
    - OpenErrorMsg
    - File::Tell
    - mprintf
    linkageType: ''
    returnType: void
    signature: void RecVolumes3::Test(CommandData *Cmd,const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetPrivilege
      Src: /src/clamav/libclamunrar/win32lnk.cpp:37,1
    - Dst: SetPrivilege
      Src: /src/clamav/libclamunrar/win32lnk.cpp:39,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/win32lnk.cpp:48,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32lnk.cpp:48,1
    - Dst: wcsncmp
      Src: /src/clamav/libclamunrar/win32lnk.cpp:55,1
    - Dst: wcscpy
      Src: /src/clamav/libclamunrar/win32lnk.cpp:60,1
    - Dst: IsFullPath
      Src: /src/clamav/libclamunrar/win32lnk.cpp:70,1
    - Dst: IsRelativeSymlinkSafe
      Src: /src/clamav/libclamunrar/win32lnk.cpp:71,1
    - Dst: CreatePath
      Src: /src/clamav/libclamunrar/win32lnk.cpp:74,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/win32lnk.cpp:79,1
    - Dst: IsDir
      Src: /src/clamav/libclamunrar/win32lnk.cpp:80,1
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/win32lnk.cpp:80,1
    - Dst: DelDir
      Src: /src/clamav/libclamunrar/win32lnk.cpp:81,1
    - Dst: DelFile
      Src: /src/clamav/libclamunrar/win32lnk.cpp:83,1
    - Dst: CreateDirectory
      Src: /src/clamav/libclamunrar/win32lnk.cpp:89,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32lnk.cpp:91,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32lnk.cpp:92,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/win32lnk.cpp:98,1
    - Dst: CreateErrorMsg
      Src: /src/clamav/libclamunrar/win32lnk.cpp:101,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/win32lnk.cpp:104,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:111,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:120,1
    - Dst: wcscpy
      Src: /src/clamav/libclamunrar/win32lnk.cpp:121,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:123,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:124,1
    - Dst: wcscpy
      Src: /src/clamav/libclamunrar/win32lnk.cpp:125,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:131,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:141,1
    - Dst: wcscpy
      Src: /src/clamav/libclamunrar/win32lnk.cpp:142,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:144,1
    - Dst: USHORT
      Src: /src/clamav/libclamunrar/win32lnk.cpp:145,1
    - Dst: wcscpy
      Src: /src/clamav/libclamunrar/win32lnk.cpp:146,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/win32lnk.cpp:153,1
    - Dst: CreateErrorMsg
      Src: /src/clamav/libclamunrar/win32lnk.cpp:158,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32lnk.cpp:159,1
    - Dst: DeviceIoControl
      Src: /src/clamav/libclamunrar/win32lnk.cpp:164,1
    - Dst: FIELD_OFFSET
      Src: /src/clamav/libclamunrar/win32lnk.cpp:165,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/win32lnk.cpp:168,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32lnk.cpp:169,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/win32lnk.cpp:171,1
    - Dst: IsUserAdmin
      Src: /src/clamav/libclamunrar/win32lnk.cpp:173,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32lnk.cpp:174,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/win32lnk.cpp:175,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32lnk.cpp:176,1
    - Dst: RemoveDirectory
      Src: /src/clamav/libclamunrar/win32lnk.cpp:179,1
    - Dst: DeleteFile
      Src: /src/clamav/libclamunrar/win32lnk.cpp:181,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/win32lnk.cpp:184,1
    - Dst: File::SetHandle
      Src: /src/clamav/libclamunrar/win32lnk.cpp:185,1
    - Dst: File::SetOpenFileTime
      Src: /src/clamav/libclamunrar/win32lnk.cpp:186,1
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/win32lnk.cpp:190,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/win32lnk.cpp:192,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 3
    argNames:
    - Cmd
    - Name
    - hd
    argTypes:
    - CommandData*
    - wchar*
    - FileHeader*
    constantsTouched: []
    func_position:
      end: 194
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 194
    functionName: CreateReparsePoint
    functionSourceFile: /src/clamav/libclamunrar/win32lnk.cpp
    functionUses: 0
    functionsReached:
    - SysErrMsg
    - IsDir
    - wcscpy
    - DeviceIoControl
    - DeleteFile
    - CreateDirectory
    - CreateErrorMsg
    - GetLastError
    - wcsncpyz
    - GetFileAttr
    - File::SetOpenFileTime
    - DelDir
    - CloseHandle
    - SetErrorCode
    - wcsncmp
    - USHORT
    - IsFullPath
    - FileExist
    - File::Close
    - CreateFile
    - IsRelativeSymlinkSafe
    - ASIZE
    - uiMsg
    - SetPrivilege
    - DelFile
    - FIELD_OFFSET
    - File::File
    - CreatePath
    - File::SetHandle
    - RemoveDirectory
    - SetFileAttr
    - IsUserAdmin
    linkageType: ''
    returnType: bool
    signature: bool CreateReparsePoint(CommandData *Cmd,const wchar *Name,FileHeader
      *hd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 23
    functionName: File::File
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void File::File()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Delete
      Src: /src/clamav/libclamunrar/file.cpp:30,1
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/file.cpp:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: File::~File()
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - File::Close
    - File::Delete
    linkageType: ''
    returnType: void
    signature: void File::~File()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/file.cpp:43,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - SrcFile
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: File::operator = (File &SrcFile)
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - wcsncpyz
    linkageType: ''
    returnType: void
    signature: void File::operator = (File &SrcFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/file.cpp:66,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/file.cpp:71,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/file.cpp:74,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:74,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/file.cpp:76,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/file.cpp:90,1
    - Dst: SetFileTime
      Src: /src/clamav/libclamunrar/file.cpp:99,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/file.cpp:116,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:116,1
    - Dst: flock
      Src: /src/clamav/libclamunrar/file.cpp:124,1
    - Dst: close
      Src: /src/clamav/libclamunrar/file.cpp:126,1
    - Dst: fdopen
      Src: /src/clamav/libclamunrar/file.cpp:138,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/file.cpp:151,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:151,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 2
    argNames:
    - Name
    - Mode
    argTypes:
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 155
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 155
    functionName: File::Open
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - SetFileTime
    - close
    - GetLastError
    - wcsncpyz
    - GetWinLongPath
    - CreateFile
    - WideToChar
    - flock
    - fdopen
    - ASIZE
    linkageType: ''
    returnType: bool
    signature: bool File::Open(const wchar *Name,uint Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::WOpen
      Src: /src/clamav/libclamunrar/file.cpp:161,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/file.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: File::TOpen
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - Exit
    - File::WOpen
    linkageType: ''
    returnType: void
    signature: void File::TOpen(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/file.cpp:169,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/file.cpp:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: File::WOpen
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - File::Open
    - OpenErrorMsg
    linkageType: ''
    returnType: bool
    signature: bool File::WOpen(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointToLastChar
      Src: /src/clamav/libclamunrar/file.cpp:191,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/file.cpp:197,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/file.cpp:202,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:202,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/file.cpp:203,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/file.cpp:208,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:208,1
    - Dst: open
      Src: /src/clamav/libclamunrar/file.cpp:210,1
    - Dst: fopen
      Src: /src/clamav/libclamunrar/file.cpp:212,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/file.cpp:218,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - Name
    - Mode
    argTypes:
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 220
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 220
    functionName: File::Create
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - wcsncpyz
    - open
    - PointToLastChar
    - GetWinLongPath
    - WideToChar
    - CreateFile
    - ASIZE
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool File::Create(const wchar *Name,uint Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::WCreate
      Src: /src/clamav/libclamunrar/file.cpp:226,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/file.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - Name
    - Mode
    argTypes:
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: File::TCreate
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - Exit
    - File::WCreate
    linkageType: ''
    returnType: void
    signature: void File::TCreate(const wchar *Name,uint Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Create
      Src: /src/clamav/libclamunrar/file.cpp:234,1
    - Dst: CreateErrorMsg
      Src: /src/clamav/libclamunrar/file.cpp:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Name
    - Mode
    argTypes:
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: File::WCreate
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - File::Create
    - CreateErrorMsg
    linkageType: ''
    returnType: bool
    signature: bool File::WCreate(const wchar *Name,uint Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/file.cpp:253,1
    - Dst: close
      Src: /src/clamav/libclamunrar/file.cpp:256,1
    - Dst: fclose
      Src: /src/clamav/libclamunrar/file.cpp:258,1
    - Dst: CloseError
      Src: /src/clamav/libclamunrar/file.cpp:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 268
    functionName: File::Close
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 2
    functionsReached:
    - CloseError
    - close
    - fclose
    - CloseHandle
    linkageType: ''
    returnType: bool
    signature: bool File::Close()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/file.cpp:276,1
    - Dst: DelFile
      Src: /src/clamav/libclamunrar/file.cpp:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: File::Delete
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - File::Close
    - DelFile
    linkageType: ''
    returnType: bool
    signature: bool File::Delete()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RenameFile
      Src: /src/clamav/libclamunrar/file.cpp:289,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/file.cpp:292,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - NewName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: File::Rename
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - wcsncpyz
    - RenameFile
    linkageType: ''
    returnType: bool
    signature: bool File::Rename(const wchar *NewName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/clamav/libclamunrar/file.cpp:305,1
    - Dst: dup
      Src: /src/clamav/libclamunrar/file.cpp:311,1
    - Dst: fdopen
      Src: /src/clamav/libclamunrar/file.cpp:313,1
    - Dst: dup
      Src: /src/clamav/libclamunrar/file.cpp:313,1
    - Dst: WriteFile
      Src: /src/clamav/libclamunrar/file.cpp:330,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/file.cpp:330,1
    - Dst: WriteFile
      Src: /src/clamav/libclamunrar/file.cpp:336,1
    - Dst: ferror
      Src: /src/clamav/libclamunrar/file.cpp:343,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/file.cpp:350,1
    - Dst: GetFreeDisk
      Src: /src/clamav/libclamunrar/file.cpp:351,1
    - Dst: SetLastError
      Src: /src/clamav/libclamunrar/file.cpp:352,1
    - Dst: WriteErrorFAT
      Src: /src/clamav/libclamunrar/file.cpp:354,1
    - Dst: AskRepeatWrite
      Src: /src/clamav/libclamunrar/file.cpp:356,1
    - Dst: clearerr
      Src: /src/clamav/libclamunrar/file.cpp:359,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/file.cpp:362,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/file.cpp:362,1
    - Dst: WriteError
      Src: /src/clamav/libclamunrar/file.cpp:365,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 38
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 371
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 371
    functionName: File::Write
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - File::Tell
    - File::Seek
    - clearerr
    - WriteErrorFAT
    - GetStdHandle
    - dup
    - WriteFile
    - AskRepeatWrite
    - fdopen
    - GetFreeDisk
    - Min
    - WriteError
    - SetLastError
    - ferror
    linkageType: ''
    returnType: bool
    signature: bool File::Write(const void *Data,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/file.cpp:382,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/file.cpp:397,1
    - Dst: AskRepeatRead
      Src: /src/clamav/libclamunrar/file.cpp:410,1
    - Dst: ReadError
      Src: /src/clamav/libclamunrar/file.cpp:419,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 444
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 444
    functionName: File::Read
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - File::Seek
    - File::Tell
    - AskRepeatRead
    - ReadError
    linkageType: ''
    returnType: int
    signature: int File::Read(void *Data,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/clamav/libclamunrar/file.cpp:459,1
    - Dst: ReadFile
      Src: /src/clamav/libclamunrar/file.cpp:472,1
    - Dst: File::IsDevice
      Src: /src/clamav/libclamunrar/file.cpp:474,1
    - Dst: File::DirectRead
      Src: /src/clamav/libclamunrar/file.cpp:475,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/file.cpp:476,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/file.cpp:486,1
    - Dst: File::DirectRead
      Src: /src/clamav/libclamunrar/file.cpp:487,1
    - Dst: fflush
      Src: /src/clamav/libclamunrar/file.cpp:501,1
    - Dst: clearerr
      Src: /src/clamav/libclamunrar/file.cpp:504,1
    - Dst: ferror
      Src: /src/clamav/libclamunrar/file.cpp:506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 511
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 511
    functionName: File::DirectRead
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - File::IsDevice
    - GetLastError
    - clearerr
    - GetStdHandle
    - fflush
    - ReadFile
    - File::DirectRead
    - ferror
    linkageType: ''
    returnType: int
    signature: int File::DirectRead(void *Data,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::RawSeek
      Src: /src/clamav/libclamunrar/file.cpp:516,1
    - Dst: SeekError
      Src: /src/clamav/libclamunrar/file.cpp:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - Offset
    - Method
    argTypes:
    - int64
    - int
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: File::Seek
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 7
    functionsReached:
    - SeekError
    - File::RawSeek
    linkageType: ''
    returnType: void
    signature: void File::Seek(int64 Offset,int Method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::IsSeekable
      Src: /src/clamav/libclamunrar/file.cpp:525,1
    - Dst: File::Read
      Src: /src/clamav/libclamunrar/file.cpp:548,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:548,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/file.cpp:557,1
    - Dst: File::FileLength
      Src: /src/clamav/libclamunrar/file.cpp:557,1
    - Dst: SetFilePointer
      Src: /src/clamav/libclamunrar/file.cpp:562,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/file.cpp:563,1
    - Dst: lseek
      Src: /src/clamav/libclamunrar/file.cpp:568,1
    - Dst: fseeko
      Src: /src/clamav/libclamunrar/file.cpp:571,1
    - Dst: fseek
      Src: /src/clamav/libclamunrar/file.cpp:574,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - Offset
    - Method
    argTypes:
    - int64
    - int
    constantsTouched: []
    func_position:
      end: 579
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 579
    functionName: File::RawSeek
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - fseek
    - File::Read
    - lseek
    - GetLastError
    - fseeko
    - File::IsSeekable
    - SetFilePointer
    - ASIZE
    - File::Tell
    - File::FileLength
    linkageType: ''
    returnType: bool
    signature: bool File::RawSeek(int64 Offset,int Method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SeekError
      Src: /src/clamav/libclamunrar/file.cpp:586,1
    - Dst: File::IsSeekable
      Src: /src/clamav/libclamunrar/file.cpp:589,1
    - Dst: SetFilePointer
      Src: /src/clamav/libclamunrar/file.cpp:593,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/file.cpp:594,1
    - Dst: SeekError
      Src: /src/clamav/libclamunrar/file.cpp:596,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/file.cpp:599,1
    - Dst: lseek
      Src: /src/clamav/libclamunrar/file.cpp:602,1
    - Dst: ftello
      Src: /src/clamav/libclamunrar/file.cpp:604,1
    - Dst: ftell
      Src: /src/clamav/libclamunrar/file.cpp:606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 609
    functionName: File::Tell
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 6
    functionsReached:
    - lseek
    - ftell
    - GetLastError
    - SeekError
    - INT32TO64
    - File::IsSeekable
    - SetFilePointer
    - ftello
    linkageType: ''
    returnType: int64
    signature: int64 File::Tell()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::RawSeek
      Src: /src/clamav/libclamunrar/file.cpp:615,1
    - Dst: File::Truncate
      Src: /src/clamav/libclamunrar/file.cpp:617,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/file.cpp:618,1
    - Dst: fallocate
      Src: /src/clamav/libclamunrar/file.cpp:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - Size
    argTypes:
    - int64
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: File::Prealloc
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - File::Seek
    - File::Truncate
    - fallocate
    - File::RawSeek
    linkageType: ''
    returnType: void
    signature: void File::Prealloc(int64 Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Read
      Src: /src/clamav/libclamunrar/file.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 637
    functionName: File::GetByte
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 2
    functionsReached:
    - File::Read
    linkageType: ''
    returnType: byte
    signature: byte File::GetByte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Write
      Src: /src/clamav/libclamunrar/file.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Byte
    argTypes:
    - byte
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: File::PutByte
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - File::Write
    linkageType: ''
    returnType: void
    signature: void File::PutByte(byte Byte)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetEndOfFile
      Src: /src/clamav/libclamunrar/file.cpp:649,1
    - Dst: ftruncate
      Src: /src/clamav/libclamunrar/file.cpp:651,1
    - Dst: File::GetFD
      Src: /src/clamav/libclamunrar/file.cpp:651,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/file.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: File::Truncate
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - SetEndOfFile
    - File::GetFD
    - ftruncate
    - File::Tell
    linkageType: ''
    returnType: bool
    signature: bool File::Truncate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushFileBuffers
      Src: /src/clamav/libclamunrar/file.cpp:659,1
    - Dst: fflush
      Src: /src/clamav/libclamunrar/file.cpp:662,1
    - Dst: fsync
      Src: /src/clamav/libclamunrar/file.cpp:664,1
    - Dst: File::GetFD
      Src: /src/clamav/libclamunrar/file.cpp:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 666
    functionName: File::Flush
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - fsync
    - fflush
    - File::GetFD
    - FlushFileBuffers
    linkageType: ''
    returnType: void
    signature: void File::Flush()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlushFileBuffers
      Src: /src/clamav/libclamunrar/file.cpp:676,1
    - Dst: RarTime*::GetWinFT
      Src: /src/clamav/libclamunrar/file.cpp:683,1
    - Dst: RarTime*::GetWinFT
      Src: /src/clamav/libclamunrar/file.cpp:685,1
    - Dst: RarTime*::GetWinFT
      Src: /src/clamav/libclamunrar/file.cpp:687,1
    - Dst: SetFileTime
      Src: /src/clamav/libclamunrar/file.cpp:688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - ftm
    - ftc
    - fta
    argTypes:
    - RarTime*
    - RarTime*
    - RarTime*
    constantsTouched: []
    func_position:
      end: 690
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 690
    functionName: File::SetOpenFileTime
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - SetFileTime
    - RarTime*::GetWinFT
    - FlushFileBuffers
    linkageType: ''
    returnType: void
    signature: void File::SetOpenFileTime(RarTime *ftm,RarTime *ftc,RarTime *fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::SetCloseFileTimeByName
      Src: /src/clamav/libclamunrar/file.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ftm
    - fta
    argTypes:
    - RarTime*
    - RarTime*
    constantsTouched: []
    func_position:
      end: 704
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 704
    functionName: File::SetCloseFileTime
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - File::SetCloseFileTimeByName
    linkageType: ''
    returnType: void
    signature: void File::SetCloseFileTime(RarTime *ftm,RarTime *fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/file.cpp:715,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/file.cpp:715,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/file.cpp:719,1
    - Dst: long
      Src: /src/clamav/libclamunrar/file.cpp:720,1
    - Dst: RarTime*::GetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:720,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/file.cpp:721,1
    - Dst: long
      Src: /src/clamav/libclamunrar/file.cpp:722,1
    - Dst: RarTime*::GetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:722,1
    - Dst: utimensat
      Src: /src/clamav/libclamunrar/file.cpp:723,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/file.cpp:727,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/file.cpp:729,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/file.cpp:731,1
    - Dst: utime
      Src: /src/clamav/libclamunrar/file.cpp:734,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - Name
    - ftm
    - fta
    argTypes:
    - wchar*
    - RarTime*
    - RarTime*
    constantsTouched: []
    func_position:
      end: 738
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 738
    functionName: File::SetCloseFileTimeByName
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - RarTime*::GetUnix
    - long
    - WideToChar
    - utime
    - ASIZE
    - utimensat
    - RarTime*::GetUnixNS
    linkageType: ''
    returnType: void
    signature: void File::SetCloseFileTimeByName(const wchar *Name,RarTime *ftm,RarTime
      *fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime*::SetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:746,1
    - Dst: RarTime*::SetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:747,1
    - Dst: RarTime*::SetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:748,1
    - Dst: RarTime*::SetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:750,1
    - Dst: RarTime*::SetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:751,1
    - Dst: RarTime*::SetUnixNS
      Src: /src/clamav/libclamunrar/file.cpp:752,1
    - Dst: RarTime*::SetUnix
      Src: /src/clamav/libclamunrar/file.cpp:755,1
    - Dst: RarTime*::SetUnix
      Src: /src/clamav/libclamunrar/file.cpp:756,1
    - Dst: RarTime*::SetUnix
      Src: /src/clamav/libclamunrar/file.cpp:757,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - st
    - ftm
    - ftc
    - fta
    argTypes:
    - struct stat
    - RarTime*
    - RarTime*
    - RarTime*
    constantsTouched: []
    func_position:
      end: 759
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 759
    functionName: File::StatToRarTime
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - RarTime*::SetUnix
    - RarTime*::SetUnixNS
    linkageType: ''
    returnType: void
    signature: void File::StatToRarTime(struct stat &st,RarTime *ftm,RarTime *ftc,RarTime
      *fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileTime
      Src: /src/clamav/libclamunrar/file.cpp:767,1
    - Dst: RarTime*::SetWinFT
      Src: /src/clamav/libclamunrar/file.cpp:768,1
    - Dst: RarTime*::SetWinFT
      Src: /src/clamav/libclamunrar/file.cpp:769,1
    - Dst: RarTime*::SetWinFT
      Src: /src/clamav/libclamunrar/file.cpp:770,1
    - Dst: fstat
      Src: /src/clamav/libclamunrar/file.cpp:773,1
    - Dst: File::GetFD
      Src: /src/clamav/libclamunrar/file.cpp:773,1
    - Dst: File::StatToRarTime
      Src: /src/clamav/libclamunrar/file.cpp:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ftm
    - ftc
    - fta
    argTypes:
    - RarTime*
    - RarTime*
    - RarTime*
    constantsTouched: []
    func_position:
      end: 776
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 776
    functionName: File::GetOpenFileTime
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - GetFileTime
    - File::StatToRarTime
    - fstat
    - File::GetFD
    - RarTime*::SetWinFT
    linkageType: ''
    returnType: void
    signature: void File::GetOpenFileTime(RarTime *ftm,RarTime *ftc,RarTime *fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/file.cpp:781,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/file.cpp:782,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/file.cpp:783,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/file.cpp:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 786
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 786
    functionName: File::FileLength
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - File::Seek
    - File::Tell
    linkageType: ''
    returnType: int64
    signature: int64 File::FileLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileType
      Src: /src/clamav/libclamunrar/file.cpp:794,1
    - Dst: isatty
      Src: /src/clamav/libclamunrar/file.cpp:797,1
    - Dst: File::GetFD
      Src: /src/clamav/libclamunrar/file.cpp:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 799
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 799
    functionName: File::IsDevice
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 1
    functionsReached:
    - File::GetFD
    - isatty
    - GetFileType
    linkageType: ''
    returnType: bool
    signature: bool File::IsDevice()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Wait
      Src: /src/clamav/libclamunrar/file.cpp:811,1
    - Dst: File::Write
      Src: /src/clamav/libclamunrar/file.cpp:827,1
    - Dst: File::Write
      Src: /src/clamav/libclamunrar/file.cpp:832,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - Dest
    - Length
    argTypes:
    - File
    - int64
    constantsTouched: []
    func_position:
      end: 838
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 838
    functionName: File::Copy
    functionSourceFile: /src/clamav/libclamunrar/file.cpp
    functionUses: 0
    functionsReached:
    - File::Write
    - Wait
    linkageType: ''
    returnType: int64
    signature: int64 File::Copy(File &Dest,int64 Length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Open
      Src: /src/clamav/libclamunrar/recvol.cpp:11,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/recvol.cpp:14,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/recvol.cpp:19,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/recvol.cpp:24,1
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/recvol.cpp:25,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/recvol.cpp:25,1
    - Dst: Archive::Close
      Src: /src/clamav/libclamunrar/recvol.cpp:28,1
    - Dst: RecVolumes3::Restore
      Src: /src/clamav/libclamunrar/recvol.cpp:35,1
    - Dst: RecVolumes5::Restore
      Src: /src/clamav/libclamunrar/recvol.cpp:40,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - Cmd
    - Name
    - Silent
    argTypes:
    - CommandData*
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 42
      start: 8
    functionDepth: 5
    functionLinenumber: 8
    functionLinenumberEnd: 42
    functionName: RecVolumesRestore
    functionSourceFile: /src/clamav/libclamunrar/recvol.cpp
    functionUses: 0
    functionsReached:
    - RecVolumes3::Restore
    - Archive::IsArchive
    - Archive::Seek
    - RecVolumes5::Restore
    - memcmp
    - OpenErrorMsg
    - Archive::Read
    - Archive::Open
    - Archive::Close
    linkageType: ''
    returnType: bool
    signature: bool RecVolumesRestore(CommandData *Cmd,const wchar *Name,bool Silent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol.cpp:56,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol.cpp:56,1
    - Dst: VolNameToFirstName
      Src: /src/clamav/libclamunrar/recvol.cpp:58,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol.cpp:58,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol.cpp:60,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol.cpp:60,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol.cpp:62,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol.cpp:62,1
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/recvol.cpp:64,1
    - Dst: FindFile::SetMask
      Src: /src/clamav/libclamunrar/recvol.cpp:65,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/recvol.cpp:68,1
    - Dst: GetVolNumPart
      Src: /src/clamav/libclamunrar/recvol.cpp:70,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/recvol.cpp:74,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol.cpp:82,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol.cpp:82,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/recvol.cpp:91,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/recvol.cpp:92,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/recvol.cpp:94,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol.cpp:97,1
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/recvol.cpp:100,1
    - Dst: RecVolumes5::Test
      Src: /src/clamav/libclamunrar/recvol.cpp:104,1
    - Dst: RecVolumes3::Test
      Src: /src/clamav/libclamunrar/recvol.cpp:109,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - Cmd
    - Arc
    - Name
    argTypes:
    - CommandData*
    - Archive*
    - wchar*
    constantsTouched: []
    func_position:
      end: 111
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 111
    functionName: RecVolumesTest
    functionSourceFile: /src/clamav/libclamunrar/recvol.cpp
    functionUses: 0
    functionsReached:
    - FindFile::FindFile
    - File::File
    - FindFile::Next
    - wcsncpyz
    - File::Close
    - RecVolumes5::Test
    - RecVolumes3::Test
    - GetVolNumPart
    - File::Open
    - FindFile::SetMask
    - ASIZE
    - IsDigit
    - OpenErrorMsg
    - VolNameToFirstName
    - mprintf
    linkageType: ''
    returnType: void
    signature: void RecVolumesTest(CommandData *Cmd,Archive *Arc,const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Rijndael::SetCBCMode
    functionSourceFile: /src/clamav/libclamunrar/rijndael.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCBCMode(bool Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::Reset
      Src: /src/clamav/libclamunrar/strlist.cpp:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: StringList::StringList
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 0
    functionsReached:
    - StringList::Reset
    linkageType: ''
    returnType: void
    signature: void StringList::StringList()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::Rewind
      Src: /src/clamav/libclamunrar/strlist.cpp:11,1
    - Dst: StringList::Reset
      Src: /src/clamav/libclamunrar/strlist.cpp:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: StringList::Reset
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 2
    functionsReached:
    - StringList::Reset
    - StringList::Rewind
    linkageType: ''
    returnType: void
    signature: void StringList::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/strlist.cpp:21,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/strlist.cpp:21,1
    - Dst: StringList::AddString
      Src: /src/clamav/libclamunrar/strlist.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: StringList::AddStringA
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 0
    functionsReached:
    - StringList::AddString
    - CharToWide
    - Array::Size
    linkageType: ''
    returnType: void
    signature: void StringList::AddStringA(const char *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/clamav/libclamunrar/strlist.cpp:32,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/strlist.cpp:32,1
    - Dst: wcscpy
      Src: /src/clamav/libclamunrar/strlist.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: StringList::AddString
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 1
    functionsReached:
    - wcscpy
    - wcslen
    - Add
    linkageType: ''
    returnType: void
    signature: void StringList::AddString(const wchar *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::GetString
      Src: /src/clamav/libclamunrar/strlist.cpp:42,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/strlist.cpp:42,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/strlist.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Str
    - MaxLength
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: StringList::GetStringA
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 0
    functionsReached:
    - WideToChar
    - StringList::GetString
    - Array::Size
    linkageType: ''
    returnType: bool
    signature: bool StringList::GetStringA(char *Str,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::GetString
      Src: /src/clamav/libclamunrar/strlist.cpp:52,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/strlist.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Str
    - MaxLength
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: StringList::GetString
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 2
    functionsReached:
    - wcsncpyz
    - StringList::GetString
    linkageType: ''
    returnType: bool
    signature: bool StringList::GetString(wchar *Str,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::SavePosition
      Src: /src/clamav/libclamunrar/strlist.cpp:62,1
    - Dst: StringList::Rewind
      Src: /src/clamav/libclamunrar/strlist.cpp:63,1
    - Dst: StringList::GetString
      Src: /src/clamav/libclamunrar/strlist.cpp:66,1
    - Dst: StringList::RestorePosition
      Src: /src/clamav/libclamunrar/strlist.cpp:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - Str
    - MaxLength
    - StringNum
    argTypes:
    - wchar*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: StringList::GetString
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 3
    functionsReached:
    - StringList::SavePosition
    - StringList::Rewind
    - StringList::RestorePosition
    - StringList::GetString
    linkageType: ''
    returnType: bool
    signature: bool StringList::GetString(wchar *Str,size_t MaxLength,int StringNum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::GetString
      Src: /src/clamav/libclamunrar/strlist.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: StringList::GetString
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 4
    functionsReached:
    - StringList::GetString
    linkageType: ''
    returnType: wchar
    signature: wchar * StringList::GetString()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/strlist.cpp:87,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/strlist.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar**
    constantsTouched: []
    func_position:
      end: 100
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 100
    functionName: StringList::GetString
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 4
    functionsReached:
    - wcslen
    - Size
    linkageType: ''
    returnType: bool
    signature: bool StringList::GetString(wchar **Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: StringList::Rewind
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringList::Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::SavePosition
      Src: /src/clamav/libclamunrar/strlist.cpp:112,1
    - Dst: StringList::Rewind
      Src: /src/clamav/libclamunrar/strlist.cpp:113,1
    - Dst: StringList::GetString
      Src: /src/clamav/libclamunrar/strlist.cpp:116,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/strlist.cpp:119,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/strlist.cpp:119,1
    - Dst: StringList::RestorePosition
      Src: /src/clamav/libclamunrar/strlist.cpp:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - Str
    - CaseSensitive
    argTypes:
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: StringList::Search
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 0
    functionsReached:
    - wcsicomp
    - wcscmp
    - StringList::SavePosition
    - StringList::RestorePosition
    - StringList::Rewind
    - StringList::GetString
    linkageType: ''
    returnType: bool
    signature: bool StringList::Search(const wchar *Str,bool CaseSensitive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/strlist.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: StringList::SavePosition
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 2
    functionsReached:
    - ASIZE
    linkageType: ''
    returnType: void
    signature: void StringList::SavePosition()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: StringList::RestorePosition
    functionSourceFile: /src/clamav/libclamunrar/strlist.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringList::RestorePosition()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawRead::Reset
      Src: /src/clamav/libclamunrar/rawread.cpp:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 7
    functionName: RawRead::RawRead
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached:
    - RawRead::Reset
    linkageType: ''
    returnType: void
    signature: void RawRead::RawRead()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawRead::Reset
      Src: /src/clamav/libclamunrar/rawread.cpp:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - SrcFile
    argTypes:
    - File*
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: RawRead::RawRead
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached:
    - RawRead::Reset
    linkageType: ''
    returnType: void
    signature: void RawRead::RawRead(File *SrcFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SoftReset
      Src: /src/clamav/libclamunrar/rawread.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: RawRead::Reset
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 2
    functionsReached:
    - SoftReset
    linkageType: ''
    returnType: void
    signature: void RawRead::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/clamav/libclamunrar/rawread.cpp:43,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/rawread.cpp:44,1
    - Dst: DecryptBlock
      Src: /src/clamav/libclamunrar/rawread.cpp:45,1
    - Dst: Add
      Src: /src/clamav/libclamunrar/rawread.cpp:58,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/rawread.cpp:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - Size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: RawRead::Read
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 2
    functionsReached:
    - DecryptBlock
    - RawRead::Read
    - Add
    linkageType: ''
    returnType: size_t
    signature: size_t RawRead::Read(size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Add
      Src: /src/clamav/libclamunrar/rawread.cpp:70,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rawread.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - SrcData
    - Size
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: RawRead::Read
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - Add
    linkageType: ''
    returnType: void
    signature: void RawRead::Read(byte *SrcData,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: RawRead::Get1
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte RawRead::Get1()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: RawRead::Get2
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ushort
    signature: ushort RawRead::Get2()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: RawRead::Get4
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RawRead::Get4()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/rawread.cpp:110,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/rawread.cpp:110,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/rawread.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: RawRead::Get8
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached:
    - INT32TO64
    - RawRead::Get4
    linkageType: ''
    returnType: uint64
    signature: uint64 RawRead::Get8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uint64
      Src: /src/clamav/libclamunrar/rawread.cpp:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: RawRead::GetV
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 2
    functionsReached:
    - uint64
    linkageType: ''
    returnType: uint64
    signature: uint64 RawRead::GetV()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - Pos
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: RawRead::GetVSize
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RawRead::GetVSize(size_t Pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rawread.cpp:146,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/rawread.cpp:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - Field
    - Size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: RawRead::GetB
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: size_t
    signature: size_t RawRead::GetB(void *Field,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawToWide
      Src: /src/clamav/libclamunrar/rawread.cpp:158,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/rawread.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Field
    - Size
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: RawRead::GetW
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached:
    - memset
    - RawToWide
    linkageType: ''
    returnType: void
    signature: void RawRead::GetW(wchar *Field,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/rawread.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ProcessedOnly
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: RawRead::GetCRC15
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached:
    - CRC32
    linkageType: ''
    returnType: uint
    signature: uint RawRead::GetCRC15(bool ProcessedOnly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/rawread.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: RawRead::GetCRC50
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 1
    functionsReached:
    - CRC32
    linkageType: ''
    returnType: uint
    signature: uint RawRead::GetCRC50()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uint64
      Src: /src/clamav/libclamunrar/rawread.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - Data
    - ReadPos
    - DataSize
    - Overflow
    argTypes:
    - byte*
    - uint
    - uint
    - bool
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: RawGetV
    functionSourceFile: /src/clamav/libclamunrar/rawread.cpp
    functionUses: 0
    functionsReached:
    - uint64
    linkageType: ''
    returnType: uint64
    signature: uint64 RawGetV(const byte *Data,uint &ReadPos,uint DataSize,bool &Overflow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_init
      Src: /src/clamav/libclamunrar/crypt5.cpp:12,1
    - Dst: sha256_process
      Src: /src/clamav/libclamunrar/crypt5.cpp:13,1
    - Dst: sha256_done
      Src: /src/clamav/libclamunrar/crypt5.cpp:14,1
    - Dst: sha256_init
      Src: /src/clamav/libclamunrar/crypt5.cpp:36,1
    - Dst: sha256_process
      Src: /src/clamav/libclamunrar/crypt5.cpp:37,1
    - Dst: sha256_process
      Src: /src/clamav/libclamunrar/crypt5.cpp:46,1
    - Dst: sha256_done
      Src: /src/clamav/libclamunrar/crypt5.cpp:49,1
    - Dst: sha256_init
      Src: /src/clamav/libclamunrar/crypt5.cpp:66,1
    - Dst: sha256_process
      Src: /src/clamav/libclamunrar/crypt5.cpp:67,1
    - Dst: sha256_process
      Src: /src/clamav/libclamunrar/crypt5.cpp:76,1
    - Dst: sha256_done
      Src: /src/clamav/libclamunrar/crypt5.cpp:78,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 9
    argNames:
    - Key
    - KeyLength
    - Data
    - DataLength
    - ResDigest
    - ICtxOpt
    - SetIOpt
    - RCtxOpt
    - SetROpt
    argTypes:
    - byte*
    - size_t
    - byte*
    - size_t
    - byte*
    - sha256_context*
    - bool*
    - sha256_context*
    - bool*
    constantsTouched: []
    func_position:
      end: 79
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 79
    functionName: hmac_sha256
    functionSourceFile: /src/clamav/libclamunrar/crypt5.cpp
    functionUses: 0
    functionsReached:
    - sha256_done
    - sha256_process
    - sha256_init
    linkageType: ''
    returnType: void
    signature: "void hmac_sha256(const byte *Key,size_t KeyLength,const byte *Data,\n
      \                       size_t DataLength,byte *ResDigest,\n                        sha256_context
      *ICtxOpt,bool *SetIOpt,\n                        sha256_context *RCtxOpt,bool
      *SetROpt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:91,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/crypt5.cpp:91,1
    - Dst: hmac_sha256
      Src: /src/clamav/libclamunrar/crypt5.cpp:100,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:102,1
    - Dst: hmac_sha256
      Src: /src/clamav/libclamunrar/crypt5.cpp:116,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:117,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:121,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt5.cpp:124,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt5.cpp:125,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt5.cpp:126,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt5.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 8
    argNames:
    - Pwd
    - PwdLength
    - Salt
    - SaltLength
    - Key
    - V1
    - V2
    - Count
    argTypes:
    - byte*
    - size_t
    - byte*
    - size_t
    - byte*
    - byte*
    - byte*
    - uint
    constantsTouched: []
    func_position:
      end: 128
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 128
    functionName: pbkdf2
    functionSourceFile: /src/clamav/libclamunrar/crypt5.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - cleandata
    - Min
    - hmac_sha256
    linkageType: ''
    returnType: void
    signature: "void pbkdf2(const byte *Pwd, size_t PwdLength, \n            const
      byte *Salt, size_t SaltLength,\n            byte *Key, byte *V1, byte *V2, uint
      Count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/crypt5.cpp:140,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/crypt5.cpp:142,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt5.cpp:148,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/crypt5.cpp:152,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:154,1
    - Dst: SecHideData
      Src: /src/clamav/libclamunrar/crypt5.cpp:155,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:157,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:158,1
    - Dst: WideToUtf
      Src: /src/clamav/libclamunrar/crypt5.cpp:167,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt5.cpp:167,1
    - Dst: pbkdf2
      Src: /src/clamav/libclamunrar/crypt5.cpp:169,1
    - Dst: strlen
      Src: /src/clamav/libclamunrar/crypt5.cpp:169,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt5.cpp:170,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt5.cpp:172,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:175,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:176,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:177,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:178,1
    - Dst: SecHideData
      Src: /src/clamav/libclamunrar/crypt5.cpp:179,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:182,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/crypt5.cpp:185,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt5.cpp:188,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/crypt5.cpp:194,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt5.cpp:196,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 8
    argNames:
    - Encrypt
    - Password
    - PwdW
    - Salt
    - InitV
    - Lg2Cnt
    - HashKey
    - PswCheck
    argTypes:
    - bool
    - SecPassword*
    - wchar*
    - byte*
    - byte*
    - uint
    - byte*
    - byte*
    constantsTouched: []
    func_position:
      end: 197
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 197
    functionName: CryptData::SetKey50
    functionSourceFile: /src/clamav/libclamunrar/crypt5.cpp
    functionUses: 0
    functionsReached:
    - Init
    - memset
    - strlen
    - SecHideData
    - WideToUtf
    - pbkdf2
    - ASIZE
    - memcmp
    - cleandata
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CryptData::SetKey50(bool Encrypt,SecPassword *Password,const
      wchar *PwdW,\n     const byte *Salt,const byte *InitV,uint Lg2Cnt,byte *HashKey,\n
      \    byte *PswCheck)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/crypt5.cpp:205,1
    - Dst: hmac_sha256
      Src: /src/clamav/libclamunrar/crypt5.cpp:207,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt5.cpp:209,1
    - Dst: hmac_sha256
      Src: /src/clamav/libclamunrar/crypt5.cpp:215,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt5.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - Value
    - Key
    argTypes:
    - HashValue*
    - byte*
    constantsTouched: []
    func_position:
      end: 218
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 218
    functionName: ConvertHashToMAC
    functionSourceFile: /src/clamav/libclamunrar/crypt5.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - RawPut4
    - memcpy
    - hmac_sha256
    linkageType: ''
    returnType: void
    signature: void ConvertHashToMAC(HashValue *Value,byte *Key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestPBKDF2
      Src: /src/clamav/libclamunrar/crypt5.cpp:223,1
    - Dst: exit
      Src: /src/clamav/libclamunrar/crypt5.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 223
    functionName: TestKDF
    functionSourceFile: /src/clamav/libclamunrar/crypt5.cpp
    functionUses: 0
    functionsReached:
    - exit
    - TestPBKDF2
    linkageType: ''
    returnType: void
    signature: void TestKDF()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pbkdf2
      Src: /src/clamav/libclamunrar/crypt5.cpp:229,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crypt5.cpp:231,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/crypt5.cpp:231,1
    - Dst: pbkdf2
      Src: /src/clamav/libclamunrar/crypt5.cpp:233,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crypt5.cpp:235,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/crypt5.cpp:235,1
    - Dst: pbkdf2
      Src: /src/clamav/libclamunrar/crypt5.cpp:237,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crypt5.cpp:239,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/crypt5.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: TestPBKDF2
    functionSourceFile: /src/clamav/libclamunrar/crypt5.cpp
    functionUses: 1
    functionsReached:
    - memcmp
    - pbkdf2
    - mprintf
    linkageType: ''
    returnType: void
    signature: void TestPBKDF2()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - CRCTab
    argTypes:
    - uint*
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: InitCRC32
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitCRC32(uint *CRCTab)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCRC32
      Src: /src/clamav/libclamunrar/crc.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: InitTables
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 0
    functionsReached:
    - InitCRC32
    linkageType: ''
    returnType: void
    signature: void InitTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitTables
      Src: /src/clamav/libclamunrar/crc.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: CallInitCRC
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 0
    functionsReached:
    - InitTables
    linkageType: ''
    returnType: void
    signature: void CallInitCRC()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - StartCRC
    - Addr
    - Size
    argTypes:
    - uint
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 95
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 95
    functionName: CRC32
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint CRC32(uint StartCRC,const void *Addr,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - StartCRC
    - Addr
    - Size
    argTypes:
    - ushort
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: Checksum14
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ushort
    signature: ushort Checksum14(ushort StartCRC,const void *Addr,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/crc.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - CRCTab
    argTypes:
    - uint64*
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: InitCRC64
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 0
    functionsReached:
    - INT32TO64
    linkageType: ''
    returnType: void
    signature: void InitCRC64(uint64 *CRCTab)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCRC64
      Src: /src/clamav/libclamunrar/crc.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: InitTables64
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 0
    functionsReached:
    - InitCRC64
    linkageType: ''
    returnType: void
    signature: void InitTables64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitTables64
      Src: /src/clamav/libclamunrar/crc.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: CallInitCRC64
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 0
    functionsReached:
    - InitTables64
    linkageType: ''
    returnType: void
    signature: void CallInitCRC64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:161,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:161,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:161,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:161,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:162,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:162,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:162,1
    - Dst: uint64
      Src: /src/clamav/libclamunrar/crc.cpp:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - StartCRC
    - Addr
    - Size
    argTypes:
    - uint64
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 180
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 180
    functionName: CRC64
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 1
    functionsReached:
    - uint64
    linkageType: ''
    returnType: uint64
    signature: uint64 CRC64(uint64 StartCRC,const void *Addr,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestCRC
      Src: /src/clamav/libclamunrar/crc.cpp:185,1
    - Dst: exit
      Src: /src/clamav/libclamunrar/crc.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: TestCRCStruct
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 0
    functionsReached:
    - exit
    - TestCRC
    linkageType: ''
    returnType: void
    signature: void TestCRCStruct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/crc.cpp:192,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:193,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:195,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/crc.cpp:197,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:198,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:200,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/crc.cpp:204,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:205,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:207,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/crc.cpp:211,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/crc.cpp:215,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:218,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:220,1
    - Dst: CRC64
      Src: /src/clamav/libclamunrar/crc.cpp:222,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:223,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:225,1
    - Dst: CRC64
      Src: /src/clamav/libclamunrar/crc.cpp:227,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:228,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:230,1
    - Dst: CRC64
      Src: /src/clamav/libclamunrar/crc.cpp:234,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:235,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:237,1
    - Dst: CRC64
      Src: /src/clamav/libclamunrar/crc.cpp:241,1
    - Dst: CRC64
      Src: /src/clamav/libclamunrar/crc.cpp:245,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:248,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:250,1
    - Dst: byte::byte
      Src: /src/clamav/libclamunrar/crc.cpp:253,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/crc.cpp:254,1
    - Dst: clock
      Src: /src/clamav/libclamunrar/crc.cpp:256,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/crc.cpp:260,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:262,1
    - Dst: clock
      Src: /src/clamav/libclamunrar/crc.cpp:262,1
    - Dst: clock
      Src: /src/clamav/libclamunrar/crc.cpp:264,1
    - Dst: CRC64
      Src: /src/clamav/libclamunrar/crc.cpp:267,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/crc.cpp:269,1
    - Dst: clock
      Src: /src/clamav/libclamunrar/crc.cpp:269,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 270
    functionName: TestCRC
    functionSourceFile: /src/clamav/libclamunrar/crc.cpp
    functionUses: 1
    functionsReached:
    - memset
    - byte::byte
    - CRC32
    - CRC64
    - clock
    - mprintf
    linkageType: ''
    returnType: void
    signature: void TestCRC()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/win32stm.cpp:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - StreamName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 17
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 17
    functionName: IsNtfsReservedStream
    functionSourceFile: /src/clamav/libclamunrar/win32stm.cpp
    functionUses: 0
    functionsReached:
    - wcsicomp
    linkageType: ''
    returnType: bool
    signature: bool IsNtfsReservedStream(const wchar *StreamName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32stm.cpp:26,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32stm.cpp:27,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32stm.cpp:33,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32stm.cpp:34,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/win32stm.cpp:43,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:43,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/win32stm.cpp:44,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:44,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/win32stm.cpp:47,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:47,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/win32stm.cpp:48,1
    - Dst: strlen
      Src: /src/clamav/libclamunrar/win32stm.cpp:48,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:48,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32stm.cpp:51,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32stm.cpp:52,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/win32stm.cpp:57,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:57,1
    - Dst: ConvertPath
      Src: /src/clamav/libclamunrar/win32stm.cpp:58,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:58,1
    - Dst: IsNtfsReservedStream
      Src: /src/clamav/libclamunrar/win32stm.cpp:61,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/win32stm.cpp:64,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:64,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/win32stm.cpp:70,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/win32stm.cpp:72,1
    - Dst: File::WCreate
      Src: /src/clamav/libclamunrar/win32stm.cpp:73,1
    - Dst: ComprDataIO::ComprDataIO
      Src: /src/clamav/libclamunrar/win32stm.cpp:75,1
    - Dst: Unpack::Init
      Src: /src/clamav/libclamunrar/win32stm.cpp:77,1
    - Dst: ComprDataIO::SetPackedSizeToRead
      Src: /src/clamav/libclamunrar/win32stm.cpp:79,1
    - Dst: ComprDataIO::EnableShowProgress
      Src: /src/clamav/libclamunrar/win32stm.cpp:80,1
    - Dst: ComprDataIO::SetFiles
      Src: /src/clamav/libclamunrar/win32stm.cpp:81,1
    - Dst: ComprDataIO::UnpHash::Init
      Src: /src/clamav/libclamunrar/win32stm.cpp:82,1
    - Dst: Unpack::SetDestSize
      Src: /src/clamav/libclamunrar/win32stm.cpp:83,1
    - Dst: Unpack::DoUnpack
      Src: /src/clamav/libclamunrar/win32stm.cpp:84,1
    - Dst: ComprDataIO::UnpHash::GetCRC32
      Src: /src/clamav/libclamunrar/win32stm.cpp:86,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32stm.cpp:88,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32stm.cpp:89,1
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/win32stm.cpp:92,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/win32stm.cpp:94,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/win32stm.cpp:95,1
    - Dst: SetFileTime
      Src: /src/clamav/libclamunrar/win32stm.cpp:96,1
    - Dst: File::GetHandle
      Src: /src/clamav/libclamunrar/win32stm.cpp:96,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/win32stm.cpp:99,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - Arc
    - FileName
    argTypes:
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 100
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 100
    functionName: ExtractStreams20
    functionSourceFile: /src/clamav/libclamunrar/win32stm.cpp
    functionUses: 0
    functionsReached:
    - SetFileTime
    - File::WCreate
    - Unpack::DoUnpack
    - wcsncpyz
    - File::Open
    - ConvertPath
    - SetErrorCode
    - Unpack::Init
    - ComprDataIO::ComprDataIO
    - File::Close
    - Unpack::SetDestSize
    - wcsncatz
    - ASIZE
    - uiMsg
    - CharToWide
    - wcslen
    - IsNtfsReservedStream
    - File::File
    - ComprDataIO::EnableShowProgress
    - ComprDataIO::SetPackedSizeToRead
    - ComprDataIO::UnpHash::Init
    - strlen
    - File::GetHandle
    - ComprDataIO::SetFiles
    - ComprDataIO::UnpHash::GetCRC32
    - SetFileAttr
    linkageType: ''
    returnType: void
    signature: void ExtractStreams20(Archive &Arc,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/win32stm.cpp:112,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:112,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/win32stm.cpp:113,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:113,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/win32stm.cpp:116,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:116,1
    - Dst: GetStreamNameNTFS
      Src: /src/clamav/libclamunrar/win32stm.cpp:119,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:119,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/win32stm.cpp:122,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/win32stm.cpp:123,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/win32stm.cpp:129,1
    - Dst: Archive::ReadSubData
      Src: /src/clamav/libclamunrar/win32stm.cpp:130,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/win32stm.cpp:134,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/win32stm.cpp:134,1
    - Dst: IsNtfsReservedStream
      Src: /src/clamav/libclamunrar/win32stm.cpp:137,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/win32stm.cpp:144,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/win32stm.cpp:145,1
    - Dst: File::WCreate
      Src: /src/clamav/libclamunrar/win32stm.cpp:147,1
    - Dst: Archive::ReadSubData
      Src: /src/clamav/libclamunrar/win32stm.cpp:149,1
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/win32stm.cpp:150,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/win32stm.cpp:154,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/win32stm.cpp:155,1
    - Dst: SetFileTime
      Src: /src/clamav/libclamunrar/win32stm.cpp:156,1
    - Dst: File::GetHandle
      Src: /src/clamav/libclamunrar/win32stm.cpp:156,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/win32stm.cpp:161,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - Arc
    - FileName
    - TestMode
    argTypes:
    - Archive
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 162
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 162
    functionName: ExtractStreams
    functionSourceFile: /src/clamav/libclamunrar/win32stm.cpp
    functionUses: 0
    functionsReached:
    - IsNtfsReservedStream
    - File::File
    - SetFileTime
    - SetFileAttr
    - File::GetHandle
    - wcsncpyz
    - File::Close
    - GetStreamNameNTFS
    - File::WCreate
    - Archive::ReadSubData
    - File::Open
    - wcsncatz
    - ASIZE
    - uiMsg
    - SetErrorCode
    linkageType: ''
    returnType: void
    signature: void ExtractStreams(Archive &Arc,const wchar *FileName,bool TestMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawToWide
      Src: /src/clamav/libclamunrar/win32stm.cpp:173,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/win32stm.cpp:180,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/win32stm.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - Arc
    - StreamName
    - MaxSize
    argTypes:
    - Archive
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 184
    functionName: GetStreamNameNTFS
    functionSourceFile: /src/clamav/libclamunrar/win32stm.cpp
    functionUses: 2
    functionsReached:
    - memcpy
    - RawToWide
    - UtfToWide
    linkageType: ''
    returnType: void
    signature: void GetStreamNameNTFS(Archive &Arc,wchar *StreamName,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetConfigName
      Src: /src/clamav/libclamunrar/filestr.cpp:18,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filestr.cpp:18,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/filestr.cpp:20,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filestr.cpp:20,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/filestr.cpp:22,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/filestr.cpp:30,1
    - Dst: File::SetHandleType
      Src: /src/clamav/libclamunrar/filestr.cpp:35,1
    - Dst: File::Read
      Src: /src/clamav/libclamunrar/filestr.cpp:41,1
    - Dst: Array::Add
      Src: /src/clamav/libclamunrar/filestr.cpp:44,1
    - Dst: Array::Alloc
      Src: /src/clamav/libclamunrar/filestr.cpp:47,1
    - Dst: DetectTextEncoding
      Src: /src/clamav/libclamunrar/filestr.cpp:54,1
    - Dst: Array::Push
      Src: /src/clamav/libclamunrar/filestr.cpp:60,1
    - Dst: OemToCharA
      Src: /src/clamav/libclamunrar/filestr.cpp:63,1
    - Dst: Array::Alloc
      Src: /src/clamav/libclamunrar/filestr.cpp:65,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/filestr.cpp:65,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/filestr.cpp:66,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/filestr.cpp:66,1
    - Dst: Array::Alloc
      Src: /src/clamav/libclamunrar/filestr.cpp:78,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/filestr.cpp:78,1
    - Dst: Array::Push
      Src: /src/clamav/libclamunrar/filestr.cpp:87,1
    - Dst: Array::Alloc
      Src: /src/clamav/libclamunrar/filestr.cpp:88,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/filestr.cpp:88,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/filestr.cpp:89,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/filestr.cpp:89,1
    - Dst: ExpandEnvironmentStrings
      Src: /src/clamav/libclamunrar/filestr.cpp:132,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filestr.cpp:132,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filestr.cpp:133,1
    - Dst: StringList*::AddString
      Src: /src/clamav/libclamunrar/filestr.cpp:135,1
    - Dst: StringList*::AddString
      Src: /src/clamav/libclamunrar/filestr.cpp:139,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 78
    argCount: 8
    argNames:
    - Name
    - List
    - Config
    - AbortOnError
    - SrcCharset
    - Unquote
    - SkipComments
    - ExpandEnvStr
    argTypes:
    - wchar*
    - StringList*
    - bool
    - bool
    - RAR_CHARSET
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 148
      start: 3
    functionDepth: 6
    functionLinenumber: 3
    functionLinenumberEnd: 148
    functionName: ReadTextFile
    functionSourceFile: /src/clamav/libclamunrar/filestr.cpp
    functionUses: 0
    functionsReached:
    - File::File
    - File::Read
    - CharToWide
    - UtfToWide
    - wcsncpyz
    - Exit
    - Array::Alloc
    - StringList*::AddString
    - Array::Add
    - ExpandEnvironmentStrings
    - Array::Size
    - ASIZE
    - GetConfigName
    - DetectTextEncoding
    - OemToCharA
    - Array::Push
    - File::SetHandleType
    linkageType: ''
    returnType: bool
    signature: "bool ReadTextFile(\n  const wchar *Name,\n  StringList *List,\n  bool
      Config,\n  bool AbortOnError,\n  RAR_CHARSET SrcCharset,\n  bool Unquote,\n
      \ bool SkipComments,\n  bool ExpandEnvStr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTextUtf8
      Src: /src/clamav/libclamunrar/filestr.cpp:154,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 8
    argCount: 2
    argNames:
    - Data
    - DataSize
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: DetectTextEncoding
    functionSourceFile: /src/clamav/libclamunrar/filestr.cpp
    functionUses: 1
    functionsReached:
    - IsTextUtf8
    linkageType: ''
    returnType: RAR_CHARSET
    signature: RAR_CHARSET DetectTextEncoding(const byte *Data,size_t DataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/filcreat.cpp:14,1
    - Dst: UpdateExistingShortName
      Src: /src/clamav/libclamunrar/filcreat.cpp:25,1
    - Dst: uiAskReplaceEx
      Src: /src/clamav/libclamunrar/filcreat.cpp:32,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/filcreat.cpp:43,1
    - Dst: File*::Create
      Src: /src/clamav/libclamunrar/filcreat.cpp:51,1
    - Dst: CreatePath
      Src: /src/clamav/libclamunrar/filcreat.cpp:54,1
    - Dst: File*::Create
      Src: /src/clamav/libclamunrar/filcreat.cpp:55,1
    - Dst: DelFile
      Src: /src/clamav/libclamunrar/filcreat.cpp:55,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 8
    argNames:
    - Cmd
    - NewFile
    - Name
    - MaxNameSize
    - UserReject
    - FileSize
    - FileTime
    - WriteOnly
    argTypes:
    - CommandData*
    - File*
    - wchar*
    - size_t
    - bool*
    - int64
    - RarTime*
    - bool
    constantsTouched: []
    func_position:
      end: 56
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 56
    functionName: FileCreate
    functionSourceFile: /src/clamav/libclamunrar/filcreat.cpp
    functionUses: 0
    functionsReached:
    - UpdateExistingShortName
    - CreatePath
    - FileExist
    - Exit
    - uiAskReplaceEx
    - DelFile
    - File*::Create
    linkageType: ''
    returnType: bool
    signature: "bool FileCreate(CommandData *Cmd,File *NewFile,wchar *Name,size_t
      MaxNameSize,\n                bool *UserReject,int64 FileSize,RarTime *FileTime,bool
      WriteOnly)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/filcreat.cpp:63,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/filcreat.cpp:68,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:68,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/filcreat.cpp:68,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/filcreat.cpp:69,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/filcreat.cpp:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - Name
    - MaxNameSize
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: GetAutoRenamedName
    functionSourceFile: /src/clamav/libclamunrar/filcreat.cpp
    functionUses: 0
    functionsReached:
    - uint
    - GetExt
    - wcsncpyz
    - FileExist
    - ASIZE
    - swprintf
    linkageType: ''
    returnType: bool
    signature: bool GetAutoRenamedName(wchar *Name,size_t MaxNameSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLongPathName
      Src: /src/clamav/libclamunrar/filcreat.cpp:90,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:90,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:91,1
    - Dst: GetShortPathName
      Src: /src/clamav/libclamunrar/filcreat.cpp:94,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:94,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:95,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/filcreat.cpp:97,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/filcreat.cpp:98,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/filcreat.cpp:103,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/filcreat.cpp:104,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/filcreat.cpp:104,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/filcreat.cpp:114,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:114,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/filcreat.cpp:117,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/filcreat.cpp:117,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:117,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/filcreat.cpp:120,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/filcreat.cpp:132,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:132,1
    - Dst: SetName
      Src: /src/clamav/libclamunrar/filcreat.cpp:133,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filcreat.cpp:133,1
    - Dst: MoveFile
      Src: /src/clamav/libclamunrar/filcreat.cpp:137,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/filcreat.cpp:144,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/filcreat.cpp:146,1
    - Dst: File::Create
      Src: /src/clamav/libclamunrar/filcreat.cpp:147,1
    - Dst: MoveFile
      Src: /src/clamav/libclamunrar/filcreat.cpp:152,1
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/filcreat.cpp:157,1
    - Dst: File::Delete
      Src: /src/clamav/libclamunrar/filcreat.cpp:158,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 164
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 164
    functionName: UpdateExistingShortName
    functionSourceFile: /src/clamav/libclamunrar/filcreat.cpp
    functionUses: 1
    functionsReached:
    - File::File
    - SetName
    - wcsicomp
    - GetShortPathName
    - GetLongPathName
    - wcsncpyz
    - FileExist
    - MoveFile
    - File::Create
    - File::Close
    - File::Delete
    - ASIZE
    - swprintf
    - PointToName
    linkageType: ''
    returnType: bool
    signature: bool UpdateExistingShortName(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt3.cpp:6,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/crypt3.cpp:9,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt3.cpp:11,1
    - Dst: SecHideData
      Src: /src/clamav/libclamunrar/crypt3.cpp:12,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt3.cpp:13,1
    - Dst: WideToRaw
      Src: /src/clamav/libclamunrar/crypt3.cpp:23,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt3.cpp:26,1
    - Dst: sha1_init
      Src: /src/clamav/libclamunrar/crypt3.cpp:30,1
    - Dst: sha1_process_rar29
      Src: /src/clamav/libclamunrar/crypt3.cpp:35,1
    - Dst: sha1_process
      Src: /src/clamav/libclamunrar/crypt3.cpp:40,1
    - Dst: sha1_done
      Src: /src/clamav/libclamunrar/crypt3.cpp:45,1
    - Dst: sha1_done
      Src: /src/clamav/libclamunrar/crypt3.cpp:50,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt3.cpp:57,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt3.cpp:58,1
    - Dst: SecHideData
      Src: /src/clamav/libclamunrar/crypt3.cpp:59,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/crypt3.cpp:60,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt3.cpp:61,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt3.cpp:63,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/crypt3.cpp:65,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt3.cpp:66,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt3.cpp:67,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - Encrypt
    - Password
    - PwdW
    - Salt
    argTypes:
    - bool
    - SecPassword*
    - wchar*
    - byte*
    constantsTouched: []
    func_position:
      end: 68
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 68
    functionName: CryptData::SetKey30
    functionSourceFile: /src/clamav/libclamunrar/crypt3.cpp
    functionUses: 0
    functionsReached:
    - Init
    - sha1_process_rar29
    - sha1_done
    - SecHideData
    - sha1_process
    - WideToRaw
    - ASIZE
    - memcmp
    - sha1_init
    - memcpy
    - cleandata
    linkageType: ''
    returnType: void
    signature: void CryptData::SetKey30(bool Encrypt,SecPassword *Password,const wchar
      *PwdW,const byte *Salt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: RawGet2
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RawGet2(const void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: RawGet4
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32
    signature: uint32 RawGet4(const void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/rawint.hpp:31,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/rawint.hpp:31,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/rawint.hpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: RawGet8
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 0
    functionsReached:
    - INT32TO64
    - RawGet4
    linkageType: ''
    returnType: uint64
    signature: uint64 RawGet8(const void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Field
    - Data
    argTypes:
    - uint
    - void*
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: RawPut2
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPut2(uint Field,void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Field
    - Data
    argTypes:
    - uint32
    - void*
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: RawPut4
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPut4(uint32 Field,void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - Field
    - Data
    argTypes:
    - uint64
    - void*
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: RawPut8
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPut8(uint64 Field,void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _byteswap_ulong
      Src: /src/clamav/libclamunrar/rawint.hpp:86,1
    - Dst: __builtin_bswap32
      Src: /src/clamav/libclamunrar/rawint.hpp:88,1
    - Dst: uint32
      Src: /src/clamav/libclamunrar/rawint.hpp:90,1
    - Dst: uint32
      Src: /src/clamav/libclamunrar/rawint.hpp:90,1
    - Dst: uint32
      Src: /src/clamav/libclamunrar/rawint.hpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - byte*
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: RawGetBE4
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 0
    functionsReached:
    - _byteswap_ulong
    - __builtin_bswap32
    - uint32
    linkageType: ''
    returnType: uint32
    signature: uint32 RawGetBE4(const byte *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _byteswap_ulong
      Src: /src/clamav/libclamunrar/rawint.hpp:99,1
    - Dst: __builtin_bswap32
      Src: /src/clamav/libclamunrar/rawint.hpp:101,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/rawint.hpp:103,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/rawint.hpp:104,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/rawint.hpp:105,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/rawint.hpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - i
    - mem
    argTypes:
    - uint32
    - byte*
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: RawPutBE4
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 0
    functionsReached:
    - _byteswap_ulong
    - __builtin_bswap32
    - byte
    linkageType: ''
    returnType: void
    signature: void RawPutBE4(uint32 i,byte *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _byteswap_ulong
      Src: /src/clamav/libclamunrar/rawint.hpp:114,1
    - Dst: __builtin_bswap32
      Src: /src/clamav/libclamunrar/rawint.hpp:116,1
    - Dst: rotl32
      Src: /src/clamav/libclamunrar/rawint.hpp:118,1
    - Dst: rotl32
      Src: /src/clamav/libclamunrar/rawint.hpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint32
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: ByteSwap32
    functionSourceFile: /src/clamav/libclamunrar/rawint.hpp
    functionUses: 0
    functionsReached:
    - rotl32
    - _byteswap_ulong
    - __builtin_bswap32
    linkageType: ''
    returnType: uint32
    signature: uint32 ByteSwap32(uint32 i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: Reset
    functionSourceFile: /src/clamav/libclamunrar/headers.hpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/headers.hpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: CmpName
    functionSourceFile: /src/clamav/libclamunrar/headers.hpp
    functionUses: 2
    functionsReached:
    - wcscmp
    linkageType: ''
    returnType: bool
    signature: bool CmpName(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FragmentedWindow::Reset
      Src: /src/clamav/libclamunrar/headers.hpp:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: Reset
    functionSourceFile: /src/clamav/libclamunrar/headers.hpp
    functionUses: 12
    functionsReached:
    - FragmentedWindow::Reset
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/ui.hpp:121,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/ui.hpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - Code
    argTypes:
    - UIMESSAGE_CODE
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: uiMsgStore::uiMsgStore
    functionSourceFile: /src/clamav/libclamunrar/ui.hpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - memset
    linkageType: ''
    returnType: void
    signature: void uiMsgStore(UIMESSAGE_CODE Code)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: '& operator << (const wchar *s)'
    functionSourceFile: /src/clamav/libclamunrar/ui.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uiMsgStore
    signature: uiMsgStore & operator << (const wchar *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: '& operator << (uint n)'
    functionSourceFile: /src/clamav/libclamunrar/ui.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uiMsgStore
    signature: uiMsgStore & operator << (uint n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - Store
    argTypes:
    - uiMsgStore
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: uiMsgBase
    functionSourceFile: /src/clamav/libclamunrar/ui.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiMsgBase(uiMsgStore &Store)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsgBase
      Src: /src/clamav/libclamunrar/ui.hpp:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - Store
    - ' a1'
    argTypes:
    - uiMsgStore
    - T1
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: uiMsgBase
    functionSourceFile: /src/clamav/libclamunrar/ui.hpp
    functionUses: 1
    functionsReached:
    - uiMsgBase
    linkageType: ''
    returnType: void
    signature: void uiMsgBase(uiMsgStore &Store,T1&& a1,TN&&... aN)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsgBase
      Src: /src/clamav/libclamunrar/ui.hpp:172,1
    - Dst: uiMsgStore::Msg
      Src: /src/clamav/libclamunrar/ui.hpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Code
    argTypes:
    - UIMESSAGE_CODE
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: uiMsg
    functionSourceFile: /src/clamav/libclamunrar/ui.hpp
    functionUses: 10
    functionsReached:
    - uiMsgStore::Msg
    - uiMsgBase
    linkageType: ''
    returnType: void
    signature: void uiMsg(UIMESSAGE_CODE Code,TN&&... aN)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: UnpackThreadData
    functionSourceFile: /src/clamav/libclamunrar/unpack.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UnpackThreadData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamunrar/unpack.hpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: ~UnpackThreadData()
    functionSourceFile: /src/clamav/libclamunrar/unpack.hpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ~UnpackThreadData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 380
    functionName: Unpack::IsFileExtracted
    functionSourceFile: /src/clamav/libclamunrar/unpack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFileExtracted()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - DestSize
    argTypes:
    - int64
    constantsTouched: []
    func_position:
      end: 381
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 381
    functionName: Unpack::SetDestSize
    functionSourceFile: /src/clamav/libclamunrar/unpack.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDestSize(int64 DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Suspended
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: Unpack::SetSuspended
    functionSourceFile: /src/clamav/libclamunrar/unpack.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSuspended(bool Suspended)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack.hpp:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 401
    functionName: Unpack::GetChar
    functionSourceFile: /src/clamav/libclamunrar/unpack.hpp
    functionUses: 0
    functionsReached:
    - Unpack::UnpReadBuf
    linkageType: ''
    returnType: uint
    signature: uint GetChar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_pointers
      Src: /src/clamav/libclamunrar/blake2s.hpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: blake2s_state
    functionSourceFile: /src/clamav/libclamunrar/blake2s.hpp
    functionUses: 0
    functionsReached:
    - set_pointers
    linkageType: ''
    returnType: void
    signature: void blake2s_state()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_pointers
      Src: /src/clamav/libclamunrar/blake2s.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - blake2s_state
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: blake2s_state
    functionSourceFile: /src/clamav/libclamunrar/blake2s.hpp
    functionUses: 0
    functionsReached:
    - set_pointers
    linkageType: ''
    returnType: void
    signature: void blake2s_state(blake2s_state &st)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_VALUE
      Src: /src/clamav/libclamunrar/blake2s.hpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: set_pointers
    functionSourceFile: /src/clamav/libclamunrar/blake2s.hpp
    functionUses: 2
    functionsReached:
    - ALIGN_VALUE
    linkageType: ''
    returnType: void
    signature: void set_pointers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/blake2s.hpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: init
    functionSourceFile: /src/clamav/libclamunrar/blake2s.hpp
    functionUses: 80
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/blake2s.hpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - st
    argTypes:
    - blake2s_state
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: '& operator = (blake2s_state &st)'
    functionSourceFile: /src/clamav/libclamunrar/blake2s.hpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: blake2s_state
    signature: blake2s_state & operator = (blake2s_state &st)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: CryptLoader::CryptLoader
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CryptLoader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FreeLibrary
      Src: /src/clamav/libclamunrar/secpassword.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: ~CryptLoader()
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - FreeLibrary
    linkageType: ''
    returnType: void
    signature: void ~CryptLoader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LoadSysLibrary
      Src: /src/clamav/libclamunrar/secpassword.cpp:38,1
    - Dst: GetProcAddress
      Src: /src/clamav/libclamunrar/secpassword.cpp:42,1
    - Dst: GetProcAddress
      Src: /src/clamav/libclamunrar/secpassword.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: CryptLoader::Load
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - LoadSysLibrary
    linkageType: ''
    returnType: void
    signature: void Load()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecPassword::Set
      Src: /src/clamav/libclamunrar/secpassword.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: SecPassword::SecPassword
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - SecPassword::Set
    linkageType: ''
    returnType: void
    signature: void SecPassword::SecPassword()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecPassword::Clean
      Src: /src/clamav/libclamunrar/secpassword.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: SecPassword::~SecPassword()
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - SecPassword::Clean
    linkageType: ''
    returnType: void
    signature: void SecPassword::~SecPassword()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/clamav/libclamunrar/secpassword.cpp:72,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/secpassword.cpp:73,1
    - Dst: size
      Src: /src/clamav/libclamunrar/secpassword.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: SecPassword::Clean
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 1
    functionsReached:
    - size
    - cleandata
    linkageType: ''
    returnType: void
    signature: void SecPassword::Clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecureZeroMemory
      Src: /src/clamav/libclamunrar/secpassword.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: cleandata
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 6
    functionsReached:
    - SecureZeroMemory
    linkageType: ''
    returnType: void
    signature: void cleandata(void *data,size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/secpassword.cpp:106,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/secpassword.cpp:106,1
    - Dst: SecHideData
      Src: /src/clamav/libclamunrar/secpassword.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - Src
    - SrcSize
    - Dst
    - DstSize
    - Encode
    argTypes:
    - wchar*
    - size_t
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: SecPassword::Process
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - SecHideData
    - Min
    linkageType: ''
    returnType: void
    signature: void SecPassword::Process(const wchar *Src,size_t SrcSize,wchar *Dst,size_t
      DstSize,bool Encode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecPassword::Process
      Src: /src/clamav/libclamunrar/secpassword.cpp:115,1
    - Dst: size
      Src: /src/clamav/libclamunrar/secpassword.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Psw
    - MaxSize
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: SecPassword::Get
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - size
    - SecPassword::Process
    linkageType: ''
    returnType: void
    signature: void SecPassword::Get(wchar *Psw,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecPassword::Clean
      Src: /src/clamav/libclamunrar/secpassword.cpp:129,1
    - Dst: SecPassword::Process
      Src: /src/clamav/libclamunrar/secpassword.cpp:134,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/secpassword.cpp:134,1
    - Dst: size
      Src: /src/clamav/libclamunrar/secpassword.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - Psw
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: SecPassword::Set
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 1
    functionsReached:
    - size
    - SecPassword::Clean
    - SecPassword::Process
    - wcslen
    linkageType: ''
    returnType: void
    signature: void SecPassword::Set(const wchar *Psw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecPassword::Get
      Src: /src/clamav/libclamunrar/secpassword.cpp:142,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/secpassword.cpp:142,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/secpassword.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: SecPassword::Length
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - cleandata
    - SecPassword::Get
    linkageType: ''
    returnType: size_t
    signature: size_t SecPassword::Length()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecPassword::Get
      Src: /src/clamav/libclamunrar/secpassword.cpp:156,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/secpassword.cpp:156,1
    - Dst: SecPassword::Get
      Src: /src/clamav/libclamunrar/secpassword.cpp:157,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/secpassword.cpp:157,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/secpassword.cpp:159,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/secpassword.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - psw
    argTypes:
    - SecPassword
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: SecPassword::operator == (SecPassword &psw)
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - cleandata
    - SecPassword::Get
    linkageType: ''
    returnType: bool
    signature: bool SecPassword::operator == (SecPassword &psw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Load
      Src: /src/clamav/libclamunrar/secpassword.cpp:175,1
    - Dst: pCryptProtectMemory
      Src: /src/clamav/libclamunrar/secpassword.cpp:182,1
    - Dst: DWORD
      Src: /src/clamav/libclamunrar/secpassword.cpp:182,1
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/secpassword.cpp:184,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/secpassword.cpp:185,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/secpassword.cpp:186,1
    - Dst: pCryptUnprotectMemory
      Src: /src/clamav/libclamunrar/secpassword.cpp:195,1
    - Dst: DWORD
      Src: /src/clamav/libclamunrar/secpassword.cpp:195,1
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/secpassword.cpp:197,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/secpassword.cpp:198,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/secpassword.cpp:199,1
    - Dst: GetCurrentProcessId
      Src: /src/clamav/libclamunrar/secpassword.cpp:209,1
    - Dst: getpid
      Src: /src/clamav/libclamunrar/secpassword.cpp:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - Data
    - DataSize
    - Encode
    - CrossProcess
    argTypes:
    - void*
    - size_t
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 218
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 218
    functionName: SecHideData
    functionSourceFile: /src/clamav/libclamunrar/secpassword.cpp
    functionUses: 3
    functionsReached:
    - GeneralErrMsg
    - getpid
    - DWORD
    - SysErrMsg
    - Exit
    - Load
    - GetCurrentProcessId
    - pCryptProtectMemory
    - pCryptUnprotectMemory
    linkageType: ''
    returnType: void
    signature: void SecHideData(void *Data,size_t DataSize,bool Encode,bool CrossProcess)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreatePath
      Src: /src/clamav/libclamunrar/ulinks.cpp:5,1
    - Dst: DelFile
      Src: /src/clamav/libclamunrar/ulinks.cpp:10,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/ulinks.cpp:13,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/ulinks.cpp:13,1
    - Dst: symlink
      Src: /src/clamav/libclamunrar/ulinks.cpp:14,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/ulinks.cpp:17,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/ulinks.cpp:20,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/ulinks.cpp:21,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/ulinks.cpp:28,1
    - Dst: RarTime*::IsSet
      Src: /src/clamav/libclamunrar/ulinks.cpp:29,1
    - Dst: long
      Src: /src/clamav/libclamunrar/ulinks.cpp:29,1
    - Dst: RarTime*::GetUnixNS
      Src: /src/clamav/libclamunrar/ulinks.cpp:29,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/ulinks.cpp:30,1
    - Dst: RarTime*::IsSet
      Src: /src/clamav/libclamunrar/ulinks.cpp:31,1
    - Dst: long
      Src: /src/clamav/libclamunrar/ulinks.cpp:31,1
    - Dst: RarTime*::GetUnixNS
      Src: /src/clamav/libclamunrar/ulinks.cpp:31,1
    - Dst: utimensat
      Src: /src/clamav/libclamunrar/ulinks.cpp:32,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/ulinks.cpp:35,1
    - Dst: long
      Src: /src/clamav/libclamunrar/ulinks.cpp:36,1
    - Dst: RarTime*::GetUnixNS
      Src: /src/clamav/libclamunrar/ulinks.cpp:36,1
    - Dst: RarTime*::GetUnix
      Src: /src/clamav/libclamunrar/ulinks.cpp:37,1
    - Dst: long
      Src: /src/clamav/libclamunrar/ulinks.cpp:38,1
    - Dst: RarTime*::GetUnixNS
      Src: /src/clamav/libclamunrar/ulinks.cpp:38,1
    - Dst: lutimes
      Src: /src/clamav/libclamunrar/ulinks.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 5
    argNames:
    - Cmd
    - Target
    - LinkName
    - ftm
    - fta
    argTypes:
    - CommandData*
    - char*
    - wchar*
    - RarTime*
    - RarTime*
    constantsTouched: []
    func_position:
      end: 44
      start: 3
    functionDepth: 2
    functionLinenumber: 3
    functionLinenumberEnd: 44
    functionName: UnixSymlink
    functionSourceFile: /src/clamav/libclamunrar/ulinks.cpp
    functionUses: 0
    functionsReached:
    - CreatePath
    - RarTime*::GetUnix
    - symlink
    - RarTime*::IsSet
    - WideToChar
    - long
    - lutimes
    - ASIZE
    - uiMsg
    - SetErrorCode
    - DelFile
    - utimensat
    - RarTime*::GetUnixNS
    linkageType: ''
    returnType: bool
    signature: bool UnixSymlink(CommandData *Cmd,const char *Target,const wchar *LinkName,RarTime
      *ftm,RarTime *fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - PathA
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: IsFullPath
    functionSourceFile: /src/clamav/libclamunrar/ulinks.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsFullPath(const char *PathA)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/ulinks.cpp:60,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 3
    argNames:
    - Src
    - Dest
    - DestSize
    argTypes:
    - char*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: SafeCharToWide
    functionSourceFile: /src/clamav/libclamunrar/ulinks.cpp
    functionUses: 0
    functionsReached:
    - CharToWide
    linkageType: ''
    returnType: bool
    signature: bool SafeCharToWide(const char *Src,wchar *Dest,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsLink
      Src: /src/clamav/libclamunrar/ulinks.cpp:77,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/ulinks.cpp:80,1
    - Dst: ComprDataIO::UnpRead
      Src: /src/clamav/libclamunrar/ulinks.cpp:82,1
    - Dst: ComprDataIO::UnpHash::Init
      Src: /src/clamav/libclamunrar/ulinks.cpp:86,1
    - Dst: ComprDataIO::UnpHash::Update
      Src: /src/clamav/libclamunrar/ulinks.cpp:87,1
    - Dst: strlen
      Src: /src/clamav/libclamunrar/ulinks.cpp:87,1
    - Dst: ComprDataIO::UnpHash::Result
      Src: /src/clamav/libclamunrar/ulinks.cpp:88,1
    - Dst: ComprDataIO::UnpHash::Cmp
      Src: /src/clamav/libclamunrar/ulinks.cpp:92,1
    - Dst: SafeCharToWide
      Src: /src/clamav/libclamunrar/ulinks.cpp:96,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/ulinks.cpp:96,1
    - Dst: IsFullPath
      Src: /src/clamav/libclamunrar/ulinks.cpp:101,1
    - Dst: IsRelativeSymlinkSafe
      Src: /src/clamav/libclamunrar/ulinks.cpp:102,1
    - Dst: strstr
      Src: /src/clamav/libclamunrar/ulinks.cpp:104,1
    - Dst: UnixSymlink
      Src: /src/clamav/libclamunrar/ulinks.cpp:105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - Cmd
    - DataIO
    - Arc
    - LinkName
    - UpLink
    argTypes:
    - CommandData*
    - ComprDataIO
    - Archive
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 108
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 108
    functionName: ExtractUnixLink30
    functionSourceFile: /src/clamav/libclamunrar/ulinks.cpp
    functionUses: 0
    functionsReached:
    - SafeCharToWide
    - ComprDataIO::UnpHash::Init
    - IsFullPath
    - IsLink
    - strlen
    - strstr
    - UnixSymlink
    - ComprDataIO::UnpHash::Update
    - ComprDataIO::UnpHash::Result
    - IsRelativeSymlinkSafe
    - ASIZE
    - ComprDataIO::UnpRead
    - ComprDataIO::UnpHash::Cmp
    linkageType: ''
    returnType: bool
    signature: "bool ExtractUnixLink30(CommandData *Cmd,ComprDataIO &DataIO,Archive
      &Arc,\n                              const wchar *LinkName,bool &UpLink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/ulinks.cpp:114,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/ulinks.cpp:114,1
    - Dst: strncmp
      Src: /src/clamav/libclamunrar/ulinks.cpp:121,1
    - Dst: strncmp
      Src: /src/clamav/libclamunrar/ulinks.cpp:121,1
    - Dst: DosSlashToUnix
      Src: /src/clamav/libclamunrar/ulinks.cpp:123,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/ulinks.cpp:123,1
    - Dst: SafeCharToWide
      Src: /src/clamav/libclamunrar/ulinks.cpp:127,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/ulinks.cpp:127,1
    - Dst: IsFullPath
      Src: /src/clamav/libclamunrar/ulinks.cpp:132,1
    - Dst: IsRelativeSymlinkSafe
      Src: /src/clamav/libclamunrar/ulinks.cpp:133,1
    - Dst: UnixSymlink
      Src: /src/clamav/libclamunrar/ulinks.cpp:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - Cmd
    - Name
    - hd
    argTypes:
    - CommandData*
    - wchar*
    - FileHeader*
    constantsTouched: []
    func_position:
      end: 136
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 136
    functionName: ExtractUnixLink50
    functionSourceFile: /src/clamav/libclamunrar/ulinks.cpp
    functionUses: 0
    functionsReached:
    - SafeCharToWide
    - IsFullPath
    - UnixSymlink
    - WideToChar
    - IsRelativeSymlinkSafe
    - DosSlashToUnix
    - ASIZE
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool ExtractUnixLink50(CommandData *Cmd,const wchar *Name,FileHeader
      *hd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: mprintf
    functionSourceFile: /src/clamav/libclamunrar/consio.hpp
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mprintf(const wchar *fmt,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: eprintf
    functionSourceFile: /src/clamav/libclamunrar/consio.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void eprintf(const wchar *fmt,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: Alarm
    functionSourceFile: /src/clamav/libclamunrar/consio.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Alarm()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - AskStr
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: Ask
    functionSourceFile: /src/clamav/libclamunrar/consio.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Ask(const wchar *AskStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: getwstr
    functionSourceFile: /src/clamav/libclamunrar/consio.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool getwstr(wchar *str,size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: StringList::ItemsCount
    functionSourceFile: /src/clamav/libclamunrar/strlist.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ItemsCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/strlist.hpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: StringList::GetCharCount
    functionSourceFile: /src/clamav/libclamunrar/strlist.hpp
    functionUses: 0
    functionsReached:
    - Size
    linkageType: ''
    returnType: size_t
    signature: size_t GetCharCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: QuickOpen::Unload
    functionSourceFile: /src/clamav/libclamunrar/qopen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Unload()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: BitInput::InitBitInput
    functionSourceFile: /src/clamav/libclamunrar/getbits.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitBitInput()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - Bits
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: BitInput::addbits
    functionSourceFile: /src/clamav/libclamunrar/getbits.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void addbits(uint Bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ByteSwap32
      Src: /src/clamav/libclamunrar/getbits.hpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: BitInput::getbits
    functionSourceFile: /src/clamav/libclamunrar/getbits.hpp
    functionUses: 0
    functionsReached:
    - ByteSwap32
    linkageType: ''
    returnType: uint
    signature: uint getbits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ByteSwap32
      Src: /src/clamav/libclamunrar/getbits.hpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: BitInput::getbits32
    functionSourceFile: /src/clamav/libclamunrar/getbits.hpp
    functionUses: 0
    functionsReached:
    - ByteSwap32
    linkageType: ''
    returnType: uint
    signature: uint getbits32()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - IncPtr
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: BitInput::Overflow
    functionSourceFile: /src/clamav/libclamunrar/getbits.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Overflow(uint IncPtr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/arcread.cpp:11,1
    - Dst: Archive::ReadHeader14
      Src: /src/clamav/libclamunrar/arcread.cpp:21,1
    - Dst: Archive::ReadHeader15
      Src: /src/clamav/libclamunrar/arcread.cpp:25,1
    - Dst: Archive::ReadHeader50
      Src: /src/clamav/libclamunrar/arcread.cpp:28,1
    - Dst: Archive::BrokenHeaderMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:37,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 45
    functionName: Archive::ReadHeader
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 1
    functionsReached:
    - Archive::ReadHeader14
    - Archive::Tell
    - Archive::ReadHeader50
    - Archive::ReadHeader15
    - Archive::BrokenHeaderMsg
    linkageType: ''
    returnType: size_t
    signature: size_t Archive::ReadHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/arcread.cpp:51,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/arcread.cpp:52,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/arcread.cpp:55,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/arcread.cpp:56,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/arcread.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - HeaderType
    argTypes:
    - HEADER_TYPE
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: Archive::SearchBlock
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 1
    functionsReached:
    - Archive::ReadHeader
    - Archive::SeekToNext
    - Wait
    - Archive::GetHeaderType
    linkageType: ''
    returnType: size_t
    signature: size_t Archive::SearchBlock(HEADER_TYPE HeaderType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/arcread.cpp:67,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/arcread.cpp:67,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/arcread.cpp:70,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/arcread.cpp:71,1
    - Dst: CmpName
      Src: /src/clamav/libclamunrar/arcread.cpp:71,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/arcread.cpp:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - Type
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: Archive::SearchSubBlock
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached:
    - Archive::GetHeaderType
    - CmpName
    - Archive::SeekToNext
    - Archive::ReadHeader
    - Wait
    linkageType: ''
    returnType: size_t
    signature: size_t Archive::SearchSubBlock(const wchar *Type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/arcread.cpp:84,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/arcread.cpp:85,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/arcread.cpp:87,1
    - Dst: CmpName
      Src: /src/clamav/libclamunrar/arcread.cpp:87,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/arcread.cpp:89,1
    - Dst: Archive::SearchSubBlock
      Src: /src/clamav/libclamunrar/arcread.cpp:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: Archive::SearchRR
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached:
    - Archive::SearchSubBlock
    - Archive::Tell
    - CmpName
    - Archive::Seek
    - Archive::GetHeaderType
    linkageType: ''
    returnType: size_t
    signature: size_t Archive::SearchRR()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileLength
      Src: /src/clamav/libclamunrar/arcread.cpp:98,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:108,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: Archive::UnexpEndArcMsg
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached:
    - FileLength
    - uiMsg
    - SetErrorCode
    linkageType: ''
    returnType: void
    signature: void Archive::UnexpEndArcMsg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:116,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Archive::BrokenHeaderMsg
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 1
    functionsReached:
    - uiMsg
    - SetErrorCode
    linkageType: ''
    returnType: void
    signature: void Archive::BrokenHeaderMsg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:124,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Name
    - Info
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Archive::UnkEncVerMsg
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - SetErrorCode
    linkageType: ''
    returnType: void
    signature: void Archive::UnkEncVerMsg(const wchar *Name,const wchar *Info)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - v1
    - v2
    - f
    argTypes:
    - int64
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: SafeAdd
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64
    signature: int64 SafeAdd(int64 v1,int64 v2,int64 f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::RequestArcPassword
      Src: /src/clamav/libclamunrar/arcread.cpp:151,1
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:154,1
    - Dst: Archive::UnexpEndArcMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:156,1
    - Dst: SetCryptKeys
      Src: /src/clamav/libclamunrar/arcread.cpp:159,1
    - Dst: RawRead::SetCrypt
      Src: /src/clamav/libclamunrar/arcread.cpp:160,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:164,1
    - Dst: RawRead::Size
      Src: /src/clamav/libclamunrar/arcread.cpp:165,1
    - Dst: Archive::UnexpEndArcMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:167,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:171,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:173,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:175,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:176,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:178,1
    - Dst: Archive::BrokenHeaderMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:183,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:204,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:214,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:217,1
    - Dst: Archive::FullHeaderSize
      Src: /src/clamav/libclamunrar/arcread.cpp:219,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:224,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:226,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:227,1
    - Dst: FileHeader*::Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:249,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:268,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:269,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:270,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:273,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:275,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:276,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:278,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:280,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:320,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:321,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/arcread.cpp:332,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/arcread.cpp:333,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:339,1
    - Dst: EncodeFileName::EncodeFileName
      Src: /src/clamav/libclamunrar/arcread.cpp:347,1
    - Dst: EncodeFileName::Decode
      Src: /src/clamav/libclamunrar/arcread.cpp:351,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:353,1
    - Dst: ArcCharToWide
      Src: /src/clamav/libclamunrar/arcread.cpp:357,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:357,1
    - Dst: Archive::ConvertNameCase
      Src: /src/clamav/libclamunrar/arcread.cpp:360,1
    - Dst: Archive::ConvertFileHeader
      Src: /src/clamav/libclamunrar/arcread.cpp:362,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/arcread.cpp:366,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:366,1
    - Dst: FileHeader*::SubData::Alloc
      Src: /src/clamav/libclamunrar/arcread.cpp:377,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:378,1
    - Dst: FileHeader*::CmpName
      Src: /src/clamav/libclamunrar/arcread.cpp:382,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:386,1
    - Dst: FileHeader*::mtime::SetDos
      Src: /src/clamav/libclamunrar/arcread.cpp:387,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:390,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:404,1
    - Dst: RarTime*::SetDos
      Src: /src/clamav/libclamunrar/arcread.cpp:405,1
    - Dst: RarTime*::GetLocal
      Src: /src/clamav/libclamunrar/arcread.cpp:408,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:415,1
    - Dst: RarTime*::SetLocal
      Src: /src/clamav/libclamunrar/arcread.cpp:420,1
    - Dst: SafeAdd
      Src: /src/clamav/libclamunrar/arcread.cpp:424,1
    - Dst: RawRead::GetCRC15
      Src: /src/clamav/libclamunrar/arcread.cpp:427,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:431,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:439,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:450,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:452,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:457,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:458,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:459,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:460,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:464,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:465,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:466,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:467,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:468,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:473,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:475,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:476,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:481,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:482,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:483,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:484,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:488,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:489,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:490,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:491,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:492,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:493,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:494,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:495,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:503,1
    - Dst: RawRead::GetCRC15
      Src: /src/clamav/libclamunrar/arcread.cpp:507,1
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/arcread.cpp:522,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/arcread.cpp:523,1
    - Dst: GetByte
      Src: /src/clamav/libclamunrar/arcread.cpp:526,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:532,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:536,1
    - Dst: RawRead::Size
      Src: /src/clamav/libclamunrar/arcread.cpp:543,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 266
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 544
    functionName: Archive::ReadHeader15
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 1
    functionsReached:
    - RawRead::Read
    - FileHeader*::SubData::Alloc
    - Archive::ConvertFileHeader
    - RarTime*::SetDos
    - RawRead::GetB
    - RawRead::SetCrypt
    - SetCryptKeys
    - Archive::UnexpEndArcMsg
    - RawRead::Get1
    - RarTime*::SetLocal
    - EncodeFileName::EncodeFileName
    - FileHeader*::CmpName
    - RawRead::Size
    - RawRead::GetCRC15
    - FileHeader*::mtime::SetDos
    - SetErrorCode
    - Archive::BrokenHeaderMsg
    - Archive::RequestArcPassword
    - Archive::ConvertNameCase
    - ArcCharToWide
    - Archive::FullHeaderSize
    - FileHeader*::Reset
    - INT32TO64
    - ASIZE
    - uiMsg
    - SafeAdd
    - CharToWide
    - RawRead::Get2
    - Reset
    - EncodeFileName::Decode
    - RarTime*::GetLocal
    - RawRead::Get4
    - Archive::Seek
    - GetByte
    - Archive::Read
    - Archive::Tell
    linkageType: ''
    returnType: size_t
    signature: size_t Archive::ReadHeader15()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:561,1
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:567,1
    - Dst: Archive::UnexpEndArcMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:569,1
    - Dst: RarCheckPassword::RarCheckPassword
      Src: /src/clamav/libclamunrar/arcread.cpp:578,1
    - Dst: RarCheckPassword::Set
      Src: /src/clamav/libclamunrar/arcread.cpp:580,1
    - Dst: Archive::RequestArcPassword
      Src: /src/clamav/libclamunrar/arcread.cpp:584,1
    - Dst: RarCheckPassword::IsSet
      Src: /src/clamav/libclamunrar/arcread.cpp:584,1
    - Dst: SetCryptKeys
      Src: /src/clamav/libclamunrar/arcread.cpp:587,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/arcread.cpp:591,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:597,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:599,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:606,1
    - Dst: Password::Clean
      Src: /src/clamav/libclamunrar/arcread.cpp:607,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:613,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/arcread.cpp:615,1
    - Dst: RawRead::SetCrypt
      Src: /src/clamav/libclamunrar/arcread.cpp:623,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:631,1
    - Dst: Archive::UnexpEndArcMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:633,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:637,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:638,1
    - Dst: RawRead::GetVSize
      Src: /src/clamav/libclamunrar/arcread.cpp:639,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:640,1
    - Dst: Archive::BrokenHeaderMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:644,1
    - Dst: Archive::BrokenHeaderMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:654,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:658,1
    - Dst: RawRead::Size
      Src: /src/clamav/libclamunrar/arcread.cpp:660,1
    - Dst: Archive::UnexpEndArcMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:662,1
    - Dst: RawRead::GetCRC50
      Src: /src/clamav/libclamunrar/arcread.cpp:666,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:668,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:669,1
    - Dst: Archive::BrokenHeaderMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:678,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:681,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:685,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:694,1
    - Dst: Archive::BrokenHeaderMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:697,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:704,1
    - Dst: Archive::FullHeaderSize
      Src: /src/clamav/libclamunrar/arcread.cpp:706,1
    - Dst: SafeAdd
      Src: /src/clamav/libclamunrar/arcread.cpp:708,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:715,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/arcread.cpp:719,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:719,1
    - Dst: Archive::UnkEncVerMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:720,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:723,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:725,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/arcread.cpp:729,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:729,1
    - Dst: Archive::UnkEncVerMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:730,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:734,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:737,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:740,1
    - Dst: sha256_init
      Src: /src/clamav/libclamunrar/arcread.cpp:743,1
    - Dst: sha256_process
      Src: /src/clamav/libclamunrar/arcread.cpp:744,1
    - Dst: sha256_done
      Src: /src/clamav/libclamunrar/arcread.cpp:747,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/arcread.cpp:749,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:756,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:758,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:768,1
    - Dst: Archive::ProcessExtra50
      Src: /src/clamav/libclamunrar/arcread.cpp:774,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/arcread.cpp:785,1
    - Dst: Load
      Src: /src/clamav/libclamunrar/arcread.cpp:786,1
    - Dst: FileHeader*::Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:799,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:807,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:808,1
    - Dst: Max
      Src: /src/clamav/libclamunrar/arcread.cpp:814,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:815,1
    - Dst: FileHeader*::mtime::SetUnix
      Src: /src/clamav/libclamunrar/arcread.cpp:817,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:817,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:823,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:828,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:839,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:859,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/arcread.cpp:862,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:862,1
    - Dst: Archive::ProcessExtra50
      Src: /src/clamav/libclamunrar/arcread.cpp:867,1
    - Dst: Archive::ConvertNameCase
      Src: /src/clamav/libclamunrar/arcread.cpp:872,1
    - Dst: Archive::ConvertFileHeader
      Src: /src/clamav/libclamunrar/arcread.cpp:874,1
    - Dst: FileHeader*::CmpName
      Src: /src/clamav/libclamunrar/arcread.cpp:877,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:882,1
    - Dst: RawRead::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:888,1
    - Dst: RawRead::Size
      Src: /src/clamav/libclamunrar/arcread.cpp:897,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 196
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 898
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 898
    functionName: Archive::ReadHeader50
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 1
    functionsReached:
    - RawRead::GetCRC50
    - Init
    - RawRead::GetVSize
    - RawRead::Read
    - UtfToWide
    - Exit
    - Archive::ConvertFileHeader
    - Load
    - RawRead::GetV
    - memcmp
    - RawRead::GetB
    - RawRead::SetCrypt
    - SetCryptKeys
    - Archive::UnexpEndArcMsg
    - RawRead::Get1
    - FileHeader*::CmpName
    - RawRead::Size
    - RarCheckPassword::RarCheckPassword
    - Max
    - SetErrorCode
    - swprintf
    - Archive::BrokenHeaderMsg
    - Archive::ProcessExtra50
    - sha256_done
    - Archive::RequestArcPassword
    - Archive::ConvertNameCase
    - Archive::FullHeaderSize
    - FileHeader*::Reset
    - FileHeader*::mtime::SetUnix
    - RarCheckPassword::Set
    - ASIZE
    - uiMsg
    - SafeAdd
    - Reset
    - Password::Clean
    - Archive::UnkEncVerMsg
    - RawRead::Get4
    - sha256_init
    - sha256_process
    - RarCheckPassword::IsSet
    - Archive::Read
    linkageType: ''
    returnType: size_t
    signature: size_t Archive::ReadHeader50()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Password::IsSet
      Src: /src/clamav/libclamunrar/arcread.cpp:904,1
    - Dst: Callback
      Src: /src/clamav/libclamunrar/arcread.cpp:911,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:911,1
    - Dst: Callback
      Src: /src/clamav/libclamunrar/arcread.cpp:917,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:917,1
    - Dst: GetWideName
      Src: /src/clamav/libclamunrar/arcread.cpp:919,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:919,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/arcread.cpp:920,1
    - Dst: Password::Set
      Src: /src/clamav/libclamunrar/arcread.cpp:922,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/arcread.cpp:923,1
    - Dst: Password::IsSet
      Src: /src/clamav/libclamunrar/arcread.cpp:925,1
    - Dst: Close
      Src: /src/clamav/libclamunrar/arcread.cpp:927,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/arcread.cpp:929,1
    - Dst: uiGetPassword
      Src: /src/clamav/libclamunrar/arcread.cpp:932,1
    - Dst: Close
      Src: /src/clamav/libclamunrar/arcread.cpp:934,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:935,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/arcread.cpp:936,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - CheckPwd
    argTypes:
    - RarCheckPassword*
    constantsTouched: []
    func_position:
      end: 941
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 941
    functionName: Archive::RequestArcPassword
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 2
    functionsReached:
    - uiMsg
    - Close
    - Password::IsSet
    - Exit
    - Password::Set
    - uiGetPassword
    - ASIZE
    - Callback
    - cleandata
    - GetWideName
    linkageType: ''
    returnType: void
    signature: void Archive::RequestArcPassword(RarCheckPassword *CheckPwd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawRead*::GetPos
      Src: /src/clamav/libclamunrar/arcread.cpp:949,1
    - Dst: RawRead*::SetPos
      Src: /src/clamav/libclamunrar/arcread.cpp:951,1
    - Dst: RawRead*::DataLeft
      Src: /src/clamav/libclamunrar/arcread.cpp:952,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:954,1
    - Dst: RawRead*::DataLeft
      Src: /src/clamav/libclamunrar/arcread.cpp:955,1
    - Dst: RawRead*::DataLeft
      Src: /src/clamav/libclamunrar/arcread.cpp:955,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:958,1
    - Dst: int64
      Src: /src/clamav/libclamunrar/arcread.cpp:960,1
    - Dst: RawRead*::GetPos
      Src: /src/clamav/libclamunrar/arcread.cpp:960,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:973,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:976,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:982,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:990,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:993,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:997,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamunrar/arcread.cpp:1002,1
    - Dst: std::vector::size
      Src: /src/clamav/libclamunrar/arcread.cpp:1003,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/arcread.cpp:1004,1
    - Dst: std::vector::size
      Src: /src/clamav/libclamunrar/arcread.cpp:1004,1
    - Dst: MainHeader*::OrigName::assign
      Src: /src/clamav/libclamunrar/arcread.cpp:1005,1
    - Dst: MainHeader*::OrigTime::SetUnixNS
      Src: /src/clamav/libclamunrar/arcread.cpp:1012,1
    - Dst: RawRead*::Get8
      Src: /src/clamav/libclamunrar/arcread.cpp:1012,1
    - Dst: MainHeader*::OrigTime::SetUnix
      Src: /src/clamav/libclamunrar/arcread.cpp:1014,1
    - Dst: RawRead*::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1014,1
    - Dst: MainHeader*::OrigTime::SetWin
      Src: /src/clamav/libclamunrar/arcread.cpp:1016,1
    - Dst: RawRead*::Get8
      Src: /src/clamav/libclamunrar/arcread.cpp:1016,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1030,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/arcread.cpp:1034,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1034,1
    - Dst: Archive::UnkEncVerMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:1035,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1039,1
    - Dst: RawRead*::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:1042,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/arcread.cpp:1046,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1046,1
    - Dst: Archive::UnkEncVerMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:1047,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1049,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1050,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1053,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1063,1
    - Dst: sha256_init
      Src: /src/clamav/libclamunrar/arcread.cpp:1066,1
    - Dst: sha256_process
      Src: /src/clamav/libclamunrar/arcread.cpp:1067,1
    - Dst: sha256_done
      Src: /src/clamav/libclamunrar/arcread.cpp:1070,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/arcread.cpp:1072,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/arcread.cpp:1076,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1088,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1092,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1099,1
    - Dst: FileHeader*::mtime::SetUnix
      Src: /src/clamav/libclamunrar/arcread.cpp:1103,1
    - Dst: RawRead*::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1103,1
    - Dst: FileHeader*::mtime::SetWin
      Src: /src/clamav/libclamunrar/arcread.cpp:1105,1
    - Dst: RawRead*::Get8
      Src: /src/clamav/libclamunrar/arcread.cpp:1105,1
    - Dst: FileHeader*::ctime::SetUnix
      Src: /src/clamav/libclamunrar/arcread.cpp:1108,1
    - Dst: RawRead*::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1108,1
    - Dst: FileHeader*::ctime::SetWin
      Src: /src/clamav/libclamunrar/arcread.cpp:1110,1
    - Dst: RawRead*::Get8
      Src: /src/clamav/libclamunrar/arcread.cpp:1110,1
    - Dst: FileHeader*::atime::SetUnix
      Src: /src/clamav/libclamunrar/arcread.cpp:1113,1
    - Dst: RawRead*::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1113,1
    - Dst: FileHeader*::atime::SetWin
      Src: /src/clamav/libclamunrar/arcread.cpp:1115,1
    - Dst: RawRead*::Get8
      Src: /src/clamav/libclamunrar/arcread.cpp:1115,1
    - Dst: RawRead*::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1119,1
    - Dst: FileHeader*::mtime::Adjust
      Src: /src/clamav/libclamunrar/arcread.cpp:1120,1
    - Dst: RawRead*::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1121,1
    - Dst: FileHeader*::ctime::Adjust
      Src: /src/clamav/libclamunrar/arcread.cpp:1122,1
    - Dst: RawRead*::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1123,1
    - Dst: FileHeader*::atime::Adjust
      Src: /src/clamav/libclamunrar/arcread.cpp:1124,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1131,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1132,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/arcread.cpp:1138,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1138,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/arcread.cpp:1139,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1139,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1145,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1146,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1152,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1154,1
    - Dst: UnixSlashToDos
      Src: /src/clamav/libclamunrar/arcread.cpp:1158,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1158,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/arcread.cpp:1160,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1160,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1165,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/arcread.cpp:1172,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1172,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1173,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/arcread.cpp:1179,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1179,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1180,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1185,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1187,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1192,1
    - Dst: RawRead*::GetV
      Src: /src/clamav/libclamunrar/arcread.cpp:1194,1
    - Dst: RawRead*::Size
      Src: /src/clamav/libclamunrar/arcread.cpp:1211,1
    - Dst: FileHeader*::SubData::Alloc
      Src: /src/clamav/libclamunrar/arcread.cpp:1217,1
    - Dst: RawRead*::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1218,1
    - Dst: FileHeader*::SubData::Addr
      Src: /src/clamav/libclamunrar/arcread.cpp:1218,1
    - Dst: RawRead*::SetPos
      Src: /src/clamav/libclamunrar/arcread.cpp:1224,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 166
    argCount: 3
    argNames:
    - Raw
    - ExtraSize
    - bb
    argTypes:
    - RawRead*
    - size_t
    - BaseBlock*
    constantsTouched: []
    func_position:
      end: 1226
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 1226
    functionName: Archive::ProcessExtra50
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 1
    functionsReached:
    - UtfToWide
    - FileHeader*::SubData::Alloc
    - std::vector::push_back
    - FileHeader*::ctime::SetWin
    - RawRead*::GetPos
    - RawRead*::Get4
    - FileHeader*::ctime::Adjust
    - std::vector::size
    - RawRead*::Get1
    - memcmp
    - int64
    - FileHeader*::mtime::Adjust
    - FileHeader*::atime::SetUnix
    - RawRead*::Size
    - RawRead*::SetPos
    - FileHeader*::ctime::SetUnix
    - FileHeader*::mtime::SetWin
    - swprintf
    - RawRead*::Get8
    - FileHeader*::atime::SetWin
    - sha256_done
    - FileHeader*::atime::Adjust
    - RawRead*::GetV
    - MainHeader*::OrigTime::SetUnix
    - UnixSlashToDos
    - FileHeader*::SubData::Addr
    - wcsncatz
    - FileHeader*::mtime::SetUnix
    - ASIZE
    - MainHeader*::OrigTime::SetWin
    - MainHeader*::OrigName::assign
    - RawRead*::GetB
    - Archive::UnkEncVerMsg
    - sha256_init
    - sha256_process
    - Min
    - RawRead*::DataLeft
    - MainHeader*::OrigTime::SetUnixNS
    linkageType: ''
    returnType: void
    signature: void Archive::ProcessExtra50(RawRead *Raw,size_t ExtraSize,const BaseBlock
      *bb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:1235,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:1236,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1238,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:1239,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:1242,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:1254,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:1255,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1258,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1259,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:1261,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/arcread.cpp:1262,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/arcread.cpp:1265,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:1266,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:1267,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:1268,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/arcread.cpp:1270,1
    - Dst: mtime::SetDos
      Src: /src/clamav/libclamunrar/arcread.cpp:1284,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/arcread.cpp:1286,1
    - Dst: RawRead::GetB
      Src: /src/clamav/libclamunrar/arcread.cpp:1290,1
    - Dst: IntToExt
      Src: /src/clamav/libclamunrar/arcread.cpp:1292,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1292,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/arcread.cpp:1293,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1293,1
    - Dst: Archive::ConvertNameCase
      Src: /src/clamav/libclamunrar/arcread.cpp:1294,1
    - Dst: Archive::ConvertFileHeader
      Src: /src/clamav/libclamunrar/arcread.cpp:1295,1
    - Dst: RawRead::Size
      Src: /src/clamav/libclamunrar/arcread.cpp:1297,1
    - Dst: RawRead::Size
      Src: /src/clamav/libclamunrar/arcread.cpp:1301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1302
    functionName: Archive::ReadHeader14
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 1
    functionsReached:
    - RawRead::Get2
    - RawRead::Read
    - RawRead::Size
    - mtime::SetDos
    - Reset
    - Archive::ConvertNameCase
    - Archive::ConvertFileHeader
    - RawRead::Get4
    - ASIZE
    - IntToExt
    - RawRead::GetB
    - CharToWide
    - RawRead::Get1
    linkageType: ''
    returnType: size_t
    signature: size_t Archive::ReadHeader14()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsupper
      Src: /src/clamav/libclamunrar/arcread.cpp:1310,1
    - Dst: wcslower
      Src: /src/clamav/libclamunrar/arcread.cpp:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 1313
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1313
    functionName: Archive::ConvertNameCase
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 3
    functionsReached:
    - wcslower
    - wcsupper
    linkageType: ''
    returnType: void
    signature: void Archive::ConvertNameCase(wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1320
    functionName: Archive::IsArcDir
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Archive::IsArcDir()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/clamav/libclamunrar/arcread.cpp:1344,1
    - Dst: umask
      Src: /src/clamav/libclamunrar/arcread.cpp:1347,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1385
    functionName: Archive::ConvertAttributes
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached:
    - umask
    linkageType: ''
    returnType: void
    signature: void Archive::ConvertAttributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConvertToPrecomposed
      Src: /src/clamav/libclamunrar/arcread.cpp:1398,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/arcread.cpp:1398,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 1
    argNames:
    - hd
    argTypes:
    - FileHeader*
    constantsTouched: []
    func_position:
      end: 1435
      start: 1388
    functionDepth: 2
    functionLinenumber: 1388
    functionLinenumberEnd: 1435
    functionName: Archive::ConvertFileHeader
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 3
    functionsReached:
    - ASIZE
    - ConvertToPrecomposed
    linkageType: ''
    returnType: void
    signature: void Archive::ConvertFileHeader(FileHeader *hd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::FullHeaderSize
      Src: /src/clamav/libclamunrar/arcread.cpp:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1446
    functionName: Archive::GetStartPos
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 0
    functionsReached:
    - Archive::FullHeaderSize
    linkageType: ''
    returnType: int64
    signature: int64 Archive::GetStartPos()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:1453,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:1454,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:1459,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/arcread.cpp:1466,1
    - Dst: Unpack::Init
      Src: /src/clamav/libclamunrar/arcread.cpp:1468,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:1477,1
    - Dst: SetTestMode
      Src: /src/clamav/libclamunrar/arcread.cpp:1481,1
    - Dst: Array<byte>*::Alloc
      Src: /src/clamav/libclamunrar/arcread.cpp:1484,1
    - Dst: SetUnpackToMemory
      Src: /src/clamav/libclamunrar/arcread.cpp:1485,1
    - Dst: Password::IsSet
      Src: /src/clamav/libclamunrar/arcread.cpp:1489,1
    - Dst: SetEncryption
      Src: /src/clamav/libclamunrar/arcread.cpp:1490,1
    - Dst: UnpHash::Init
      Src: /src/clamav/libclamunrar/arcread.cpp:1495,1
    - Dst: SetPackedSizeToRead
      Src: /src/clamav/libclamunrar/arcread.cpp:1496,1
    - Dst: EnableShowProgress
      Src: /src/clamav/libclamunrar/arcread.cpp:1497,1
    - Dst: SetFiles
      Src: /src/clamav/libclamunrar/arcread.cpp:1498,1
    - Dst: SetTestMode
      Src: /src/clamav/libclamunrar/arcread.cpp:1499,1
    - Dst: SetSubHeader
      Src: /src/clamav/libclamunrar/arcread.cpp:1501,1
    - Dst: Unpack::SetDestSize
      Src: /src/clamav/libclamunrar/arcread.cpp:1502,1
    - Dst: CmdExtract::UnstoreFile
      Src: /src/clamav/libclamunrar/arcread.cpp:1504,1
    - Dst: Unpack::DoUnpack
      Src: /src/clamav/libclamunrar/arcread.cpp:1506,1
    - Dst: UnpHash::Cmp
      Src: /src/clamav/libclamunrar/arcread.cpp:1508,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arcread.cpp:1510,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/arcread.cpp:1511,1
    - Dst: Array<byte>*::Reset
      Src: /src/clamav/libclamunrar/arcread.cpp:1513,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - UnpData
    - DestFile
    - TestMode
    argTypes:
    - Array<byte>*
    - File*
    - bool
    constantsTouched: []
    func_position:
      end: 1517
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1517
    functionName: Archive::ReadSubData
    functionSourceFile: /src/clamav/libclamunrar/arcread.cpp
    functionUses: 2
    functionsReached:
    - Init
    - EnableShowProgress
    - SetSubHeader
    - Unpack::DoUnpack
    - Array<byte>*::Reset
    - SetUnpackToMemory
    - UnpHash::Init
    - Password::IsSet
    - Array<byte>*::Alloc
    - SetErrorCode
    - SetFiles
    - Unpack::Init
    - SetEncryption
    - Unpack::SetDestSize
    - UnpHash::Cmp
    - uiMsg
    - SetPackedSizeToRead
    - CmdExtract::UnstoreFile
    - SetTestMode
    linkageType: ''
    returnType: bool
    signature: bool Archive::ReadSubData(Array<byte> *UnpData,File *DestFile,bool
      TestMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/sha1.cpp:46,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:58,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:58,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:58,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:58,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:59,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:59,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:59,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:59,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:60,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:60,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:60,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:60,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:61,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:61,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:61,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:61,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:62,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:62,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:62,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:62,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:63,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:63,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:63,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:63,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:64,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:64,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:64,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:64,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:65,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:65,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:65,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:65,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:66,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:66,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:66,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:66,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:67,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:67,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:67,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:67,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:68,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:68,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:68,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:68,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:69,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:69,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:69,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:69,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:70,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:70,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:70,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:70,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:71,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:71,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:71,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:71,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:72,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:72,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:72,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:72,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:73,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:73,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:73,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:73,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:74,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:74,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:74,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:74,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:75,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:75,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:75,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:75,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:76,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:76,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:76,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:76,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:77,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:77,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:77,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:77,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:81,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:82,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:82,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:83,1
    - Dst: R0
      Src: /src/clamav/libclamunrar/sha1.cpp:83,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:85,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:85,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:85,1
    - Dst: R1
      Src: /src/clamav/libclamunrar/sha1.cpp:85,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:88,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:88,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:88,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:89,1
    - Dst: R2
      Src: /src/clamav/libclamunrar/sha1.cpp:89,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:93,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:93,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:93,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:94,1
    - Dst: R3
      Src: /src/clamav/libclamunrar/sha1.cpp:94,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:98,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:98,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:98,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:99,1
    - Dst: R4
      Src: /src/clamav/libclamunrar/sha1.cpp:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 130
    argCount: 4
    argNames:
    - state
    - workspace
    - buffer
    - inplace
    argTypes:
    - uint32[]
    - uint32[]
    - byte[]
    - bool
    constantsTouched: []
    func_position:
      end: 108
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 108
    functionName: SHA1Transform
    functionSourceFile: /src/clamav/libclamunrar/sha1.cpp
    functionUses: 0
    functionsReached:
    - R3
    - R0
    - R1
    - memcpy
    - R2
    - R4
    linkageType: ''
    returnType: void
    signature: void SHA1Transform(uint32 state[5], uint32 workspace[16], const byte
      buffer[64], bool inplace)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - sha1_context*
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: sha1_init
    functionSourceFile: /src/clamav/libclamunrar/sha1.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sha1_init(sha1_context* context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/sha1.cpp:132,1
    - Dst: SHA1Transform
      Src: /src/clamav/libclamunrar/sha1.cpp:134,1
    - Dst: SHA1Transform
      Src: /src/clamav/libclamunrar/sha1.cpp:136,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/sha1.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_context*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 143
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 143
    functionName: sha1_process
    functionSourceFile: /src/clamav/libclamunrar/sha1.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    - SHA1Transform
    linkageType: ''
    returnType: void
    signature: void sha1_process( sha1_context * context, const unsigned char * data,
      size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/sha1.cpp:153,1
    - Dst: SHA1Transform
      Src: /src/clamav/libclamunrar/sha1.cpp:155,1
    - Dst: SHA1Transform
      Src: /src/clamav/libclamunrar/sha1.cpp:158,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/sha1.cpp:160,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/sha1.cpp:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - sha1_context*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 168
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 168
    functionName: sha1_process_rar29
    functionSourceFile: /src/clamav/libclamunrar/sha1.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    - RawPut4
    - SHA1Transform
    linkageType: ''
    returnType: void
    signature: void sha1_process_rar29(sha1_context *context, const unsigned char
      *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Transform
      Src: /src/clamav/libclamunrar/sha1.cpp:188,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/sha1.cpp:189,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha1.cpp:192,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha1.cpp:193,1
    - Dst: SHA1Transform
      Src: /src/clamav/libclamunrar/sha1.cpp:195,1
    - Dst: sha1_init
      Src: /src/clamav/libclamunrar/sha1.cpp:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - context
    - digest
    argTypes:
    - sha1_context*
    - uint32[]
    constantsTouched: []
    func_position:
      end: 202
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 202
    functionName: sha1_done
    functionSourceFile: /src/clamav/libclamunrar/sha1.cpp
    functionUses: 1
    functionsReached:
    - RawPutBE4
    - sha1_init
    - memset
    - SHA1Transform
    linkageType: ''
    returnType: void
    signature: void sha1_done( sha1_context* context, uint32 digest[5])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmp
    argTypes:
    - HashValue
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: operator != (const HashValue &cmp) const
    functionSourceFile: /src/clamav/libclamunrar/hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator != (const HashValue &cmp) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: DataHash::Type
    functionSourceFile: /src/clamav/libclamunrar/hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASH_TYPE
    signature: HASH_TYPE Type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAROptions::Init
      Src: /src/clamav/libclamunrar/options.cpp:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: RAROptions::RAROptions
    functionSourceFile: /src/clamav/libclamunrar/options.cpp
    functionUses: 0
    functionsReached:
    - RAROptions::Init
    linkageType: ''
    returnType: void
    signature: void RAROptions::RAROptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/options.cpp:11,1
    - Dst: GetNumberOfThreads
      Src: /src/clamav/libclamunrar/options.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 27
    functionName: RAROptions::Init
    functionSourceFile: /src/clamav/libclamunrar/options.cpp
    functionUses: 1
    functionsReached:
    - memset
    - GetNumberOfThreads
    linkageType: ''
    returnType: void
    signature: void RAROptions::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rotls
      Src: /src/clamav/libclamunrar/crypt1.cpp:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - Password
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 14
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 14
    functionName: CryptData::SetKey13
    functionSourceFile: /src/clamav/libclamunrar/crypt1.cpp
    functionUses: 0
    functionsReached:
    - rotls
    linkageType: ''
    returnType: void
    signature: void CryptData::SetKey13(const char *Password)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCRC32
      Src: /src/clamav/libclamunrar/crypt1.cpp:19,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/crypt1.cpp:20,1
    - Dst: strlen
      Src: /src/clamav/libclamunrar/crypt1.cpp:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - Password
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: CryptData::SetKey15
    functionSourceFile: /src/clamav/libclamunrar/crypt1.cpp
    functionUses: 0
    functionsReached:
    - InitCRC32
    - strlen
    - CRC32
    linkageType: ''
    returnType: void
    signature: void CryptData::SetKey15(const char *Password)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitCRC32
      Src: /src/clamav/libclamunrar/crypt1.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: CryptData::SetAV15Encryption
    functionSourceFile: /src/clamav/libclamunrar/crypt1.cpp
    functionUses: 0
    functionsReached:
    - InitCRC32
    linkageType: ''
    returnType: void
    signature: void CryptData::SetAV15Encryption()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: CryptData::SetCmt13Encryption
    functionSourceFile: /src/clamav/libclamunrar/crypt1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CryptData::SetCmt13Encryption()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Data
    - Count
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: CryptData::Decrypt13
    functionSourceFile: /src/clamav/libclamunrar/crypt1.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CryptData::Decrypt13(byte *Data,size_t Count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rotrs
      Src: /src/clamav/libclamunrar/crypt1.cpp:73,1
    - Dst: rotrs
      Src: /src/clamav/libclamunrar/crypt1.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - Data
    - Count
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: CryptData::Crypt15
    functionSourceFile: /src/clamav/libclamunrar/crypt1.cpp
    functionUses: 0
    functionsReached:
    - rotrs
    linkageType: ''
    returnType: void
    signature: void CryptData::Crypt15(byte *Data,size_t Count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setr_epi32
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:24,1
    - Dst: _mm_setr_epi32
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:25,1
    - Dst: _mm_set_epi8
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:28,1
    - Dst: _mm_set_epi8
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: blake2s_init_sse
    functionSourceFile: /src/clamav/libclamunrar/blake2s_sse.cpp
    functionUses: 0
    functionsReached:
    - _mm_set_epi8
    - _mm_setr_epi32
    linkageType: ''
    returnType: void
    signature: void blake2s_init_sse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LOAD
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:111,1
    - Dst: LOAD
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:112,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:115,1
    - Dst: LOAD
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:115,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:116,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:117,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:118,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:119,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:120,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:121,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:122,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:123,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:124,1
    - Dst: SSE_ROUND
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:125,1
    - Dst: STORE
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:126,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:126,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:126,1
    - Dst: STORE
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:127,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:127,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/blake2s_sse.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - S
    - block
    argTypes:
    - blake2s_state*
    - byte[]
    constantsTouched: []
    func_position:
      end: 129
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 129
    functionName: blake2s_compress_sse
    functionSourceFile: /src/clamav/libclamunrar/blake2s_sse.cpp
    functionUses: 0
    functionsReached:
    - STORE
    - _mm_xor_si128
    - SSE_ROUND
    - LOAD
    linkageType: ''
    returnType: int
    signature: int blake2s_compress_sse( blake2s_state *S, const byte block[BLAKE2S_BLOCKBYTES]
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: blake2s_set_lastnode
    functionSourceFile: /src/clamav/libclamunrar/blake2s.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blake2s_set_lastnode( blake2s_state *S )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_set_lastnode
      Src: /src/clamav/libclamunrar/blake2s.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: blake2s_set_lastblock
    functionSourceFile: /src/clamav/libclamunrar/blake2s.cpp
    functionUses: 0
    functionsReached:
    - blake2s_set_lastnode
    linkageType: ''
    returnType: void
    signature: void blake2s_set_lastblock( blake2s_state *S )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - inc
    argTypes:
    - blake2s_state*
    - uint32
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: blake2s_increment_counter
    functionSourceFile: /src/clamav/libclamunrar/blake2s.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blake2s_increment_counter( blake2s_state *S, const uint32 inc
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_sse
      Src: /src/clamav/libclamunrar/blake2s.cpp:62,1
    - Dst: blake2s_state*::init
      Src: /src/clamav/libclamunrar/blake2s.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - S
    - node_offset
    - node_depth
    argTypes:
    - blake2s_state*
    - uint32
    - uint32
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: blake2s_init_param
    functionSourceFile: /src/clamav/libclamunrar/blake2s.cpp
    functionUses: 0
    functionsReached:
    - blake2s_init_sse
    - blake2s_state*::init
    linkageType: ''
    returnType: void
    signature: void blake2s_init_param( blake2s_state *S, uint32 node_offset, uint32
      node_depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/blake2s.cpp:92,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:108,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:109,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:110,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:111,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:112,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:113,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:114,1
    - Dst: G
      Src: /src/clamav/libclamunrar/blake2s.cpp:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - S
    - block
    argTypes:
    - blake2s_state*
    - byte[]
    constantsTouched: []
    func_position:
      end: 120
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 120
    functionName: blake2s_compress
    functionSourceFile: /src/clamav/libclamunrar/blake2s.cpp
    functionUses: 0
    functionsReached:
    - G
    - RawGet4
    linkageType: ''
    returnType: void
    signature: void blake2s_compress( blake2s_state *S, const byte block[BLAKE2S_BLOCKBYTES]
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/blake2s.cpp:132,1
    - Dst: blake2s_increment_counter
      Src: /src/clamav/libclamunrar/blake2s.cpp:134,1
    - Dst: blake2s_compress_sse
      Src: /src/clamav/libclamunrar/blake2s.cpp:142,1
    - Dst: blake2s_compress
      Src: /src/clamav/libclamunrar/blake2s.cpp:146,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/blake2s.cpp:149,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/blake2s.cpp:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2s_state*
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 162
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 162
    functionName: blake2s_update
    functionSourceFile: /src/clamav/libclamunrar/blake2s.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - blake2s_compress
    - blake2s_increment_counter
    - blake2s_compress_sse
    linkageType: ''
    returnType: void
    signature: void blake2s_update( blake2s_state *S, const byte *in, size_t inlen
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_increment_counter
      Src: /src/clamav/libclamunrar/blake2s.cpp:169,1
    - Dst: blake2s_compress
      Src: /src/clamav/libclamunrar/blake2s.cpp:170,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/blake2s.cpp:172,1
    - Dst: blake2s_increment_counter
      Src: /src/clamav/libclamunrar/blake2s.cpp:175,1
    - Dst: blake2s_set_lastblock
      Src: /src/clamav/libclamunrar/blake2s.cpp:176,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/blake2s.cpp:177,1
    - Dst: blake2s_compress
      Src: /src/clamav/libclamunrar/blake2s.cpp:178,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/blake2s.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - S
    - digest
    argTypes:
    - blake2s_state*
    - byte*
    constantsTouched: []
    func_position:
      end: 182
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 182
    functionName: blake2s_final
    functionSourceFile: /src/clamav/libclamunrar/blake2s.cpp
    functionUses: 0
    functionsReached:
    - memset
    - blake2s_set_lastblock
    - blake2s_compress
    - RawPut4
    - memcpy
    - blake2s_increment_counter
    linkageType: ''
    returnType: void
    signature: void blake2s_final( blake2s_state *S, byte *digest )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    functionName: File::IsOpened
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsOpened()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Type
    argTypes:
    - FILE_HANDLETYPE
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: File::SetHandleType
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetHandleType(FILE_HANDLETYPE Type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: File::SetLineInputMode
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetLineInputMode(bool Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: File::GetHandleType
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE_HANDLETYPE
    signature: FILE_HANDLETYPE GetHandleType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: File::IsSeekable
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSeekable()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: File::GetHandle
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: FileHandle
    signature: FileHandle GetHandle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/file.hpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Handle
    argTypes:
    - FileHandle
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: File::SetHandle
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 1
    functionsReached:
    - File::Close
    linkageType: ''
    returnType: void
    signature: void SetHandle(FileHandle Handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - FILE_READ_ERROR_MODE
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: File::SetReadErrorMode
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetReadErrorMode(FILE_READ_ERROR_MODE Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Allow
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: File::SetAllowDelete
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetAllowDelete(bool Allow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Allow
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: File::SetExceptions
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetExceptions(bool Allow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Preserve
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: File::SetPreserveAtime
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPreserveAtime(bool Preserve)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: File::IsTruncatedAfterReadError
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTruncatedAfterReadError()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/clamav/libclamunrar/file.hpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: File::GetFD
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 4
    functionsReached:
    - fileno
    linkageType: ''
    returnType: int
    signature: int GetFD()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WinNT
      Src: /src/clamav/libclamunrar/file.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: File::CopyBufferSize
    functionSourceFile: /src/clamav/libclamunrar/file.hpp
    functionUses: 0
    functionsReached:
    - WinNT
    linkageType: ''
    returnType: size_t
    signature: size_t CopyBufferSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData::CommandData
      Src: /src/clamav/libclamunrar/archive.cpp:11,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/archive.cpp:23,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/archive.cpp:34,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/archive.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 1
    argNames:
    - InitCmd
    argTypes:
    - CommandData*
    constantsTouched: []
    func_position:
      end: 53
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 53
    functionName: Archive::Archive
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 2
    functionsReached:
    - Reset
    - CommandData::CommandData
    linkageType: ''
    returnType: void
    signature: void Archive::Archive(CommandData *InitCmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Archive::~Archive()
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Archive::~Archive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/archive.cpp:65,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/archive.cpp:70,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/archive.cpp:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - EnableBroken
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: Archive::CheckArc
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - Exit
    - Archive::IsArchive
    linkageType: ''
    returnType: void
    signature: void Archive::CheckArc(bool EnableBroken)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOpen
      Src: /src/clamav/libclamunrar/archive.cpp:79,1
    - Dst: Archive::CheckArc
      Src: /src/clamav/libclamunrar/archive.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Archive::CheckOpen
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 0
    functionsReached:
    - Archive::CheckArc
    - TOpen
    linkageType: ''
    returnType: void
    signature: void Archive::CheckOpen(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WOpen
      Src: /src/clamav/libclamunrar/archive.cpp:87,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/archive.cpp:89,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/archive.cpp:91,1
    - Dst: Close
      Src: /src/clamav/libclamunrar/archive.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: Archive::WCheckOpen
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 1
    functionsReached:
    - uiMsg
    - WOpen
    - Close
    - Archive::IsArchive
    linkageType: ''
    returnType: bool
    signature: bool Archive::WCheckOpen(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 14
    argCount: 2
    argNames:
    - D
    - Size
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 123
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 123
    functionName: Archive::IsSignature
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RARFORMAT
    signature: RARFORMAT Archive::IsSignature(const byte *D,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDevice
      Src: /src/clamav/libclamunrar/archive.cpp:132,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/archive.cpp:134,1
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/archive.cpp:138,1
    - Dst: Archive::IsSignature
      Src: /src/clamav/libclamunrar/archive.cpp:143,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/archive.cpp:147,1
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/archive.cpp:147,1
    - Dst: Archive::IsSignature
      Src: /src/clamav/libclamunrar/archive.cpp:155,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/archive.cpp:165,1
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/archive.cpp:167,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/archive.cpp:175,1
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/archive.cpp:180,1
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/archive.cpp:199,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/archive.cpp:201,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/archive.cpp:203,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/archive.cpp:220,1
    - Dst: IsSeekable
      Src: /src/clamav/libclamunrar/archive.cpp:234,1
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/archive.cpp:236,1
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/archive.cpp:240,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/archive.cpp:242,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/archive.cpp:260,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/archive.cpp:265,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/archive.cpp:268,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/archive.cpp:268,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 79
    argCount: 1
    argNames:
    - EnableBroken
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 271
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 271
    functionName: Archive::IsArchive
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 6
    functionsReached:
    - Archive::GetHeaderType
    - IsSeekable
    - IsDevice
    - wcsncpyz
    - Archive::SeekToNext
    - Archive::Seek
    - ASIZE
    - Archive::ReadHeader
    - uiMsg
    - Archive::Read
    - Archive::Tell
    - Archive::IsSignature
    linkageType: ''
    returnType: bool
    signature: bool Archive::IsArchive(bool EnableBroken)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/archive.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: Archive::SeekToNext
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 4
    functionsReached:
    - Archive::Seek
    linkageType: ''
    returnType: void
    signature: void Archive::SeekToNext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_VALUE
      Src: /src/clamav/libclamunrar/archive.cpp:291,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/archive.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - Size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: Archive::FullHeaderSize
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 3
    functionsReached:
    - ALIGN_VALUE
    - uint
    linkageType: ''
    returnType: uint
    signature: uint Archive::FullHeaderSize(size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unload
      Src: /src/clamav/libclamunrar/archive.cpp:308,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/archive.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Name
    - Mode
    argTypes:
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: Archive::Open
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 3
    functionsReached:
    - File::Open
    - Unload
    linkageType: ''
    returnType: bool
    signature: bool Archive::Open(const wchar *Name,uint Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Read
      Src: /src/clamav/libclamunrar/archive.cpp:317,1
    - Dst: File::Read
      Src: /src/clamav/libclamunrar/archive.cpp:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: Archive::Read
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 6
    functionsReached:
    - File::Read
    - Archive::Read
    linkageType: ''
    returnType: int
    signature: int Archive::Read(void *Data,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/archive.cpp:325,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/archive.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - Offset
    - Method
    argTypes:
    - int64
    - int
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: Archive::Seek
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 8
    functionsReached:
    - File::Seek
    - Archive::Seek
    linkageType: ''
    returnType: void
    signature: void Archive::Seek(int64 Offset,int Method)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/archive.cpp:333,1
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/archive.cpp:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: Archive::Tell
    functionSourceFile: /src/clamav/libclamunrar/archive.cpp
    functionUses: 5
    functionsReached:
    - File::Tell
    - Archive::Tell
    linkageType: ''
    returnType: int64
    signature: int64 Archive::Tell()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InitializeCriticalSection
      Src: /src/clamav/libclamunrar/threadmisc.cpp:4,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/libclamunrar/threadmisc.cpp:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - CritSection
    argTypes:
    - CRITSECT_HANDLE*
    constantsTouched: []
    func_position:
      end: 9
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 9
    functionName: CriticalSectionCreate
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - InitializeCriticalSection
    - pthread_mutex_init
    linkageType: ''
    returnType: bool
    signature: bool CriticalSectionCreate(CRITSECT_HANDLE *CritSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/clamav/libclamunrar/threadmisc.cpp:15,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/libclamunrar/threadmisc.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - CritSection
    argTypes:
    - CRITSECT_HANDLE*
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: CriticalSectionDelete
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: void CriticalSectionDelete(CRITSECT_HANDLE *CritSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/clamav/libclamunrar/threadmisc.cpp:25,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamunrar/threadmisc.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - CritSection
    argTypes:
    - CRITSECT_HANDLE*
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: CriticalSectionStart
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - EnterCriticalSection
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void CriticalSectionStart(CRITSECT_HANDLE *CritSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/clamav/libclamunrar/threadmisc.cpp:35,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamunrar/threadmisc.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - CritSection
    argTypes:
    - CRITSECT_HANDLE*
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: CriticalSectionEnd
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void CriticalSectionEnd(CRITSECT_HANDLE *CritSection)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/threadmisc.cpp:55,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadmisc.cpp:55,1
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/threadmisc.cpp:56,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/threadmisc.cpp:57,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/threadmisc.cpp:58,1
    - Dst: CreateThread
      Src: /src/clamav/libclamunrar/threadmisc.cpp:63,1
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/threadmisc.cpp:66,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/threadmisc.cpp:67,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/threadmisc.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - Proc
    - Data
    argTypes:
    - NATIVE_THREAD_PTR
    - void*
    constantsTouched: []
    func_position:
      end: 72
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 72
    functionName: ThreadCreate
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - GeneralErrMsg
    - SysErrMsg
    - Exit
    - CreateThread
    - ASIZE
    - swprintf
    linkageType: ''
    returnType: THREAD_HANDLE
    signature: THREAD_HANDLE ThreadCreate(NATIVE_THREAD_PTR Proc,void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/clamav/libclamunrar/threadmisc.cpp:78,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/threadmisc.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hThread
    argTypes:
    - THREAD_HANDLE
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: ThreadClose
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - CloseHandle
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void ThreadClose(THREAD_HANDLE hThread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/clamav/libclamunrar/threadmisc.cpp:88,1
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/threadmisc.cpp:91,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/threadmisc.cpp:91,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/threadmisc.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hHandle
    argTypes:
    - HANDLE
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: CWaitForSingleObject
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - Exit
    - WaitForSingleObject
    - GeneralErrMsg
    - GetLastError
    linkageType: ''
    returnType: void
    signature: void CWaitForSingleObject(HANDLE hHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/threadmisc.cpp:104,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/threadmisc.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cond
    - mutex
    argTypes:
    - pthread_cond_t*
    - pthread_mutex_t*
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: cpthread_cond_wait
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - GeneralErrMsg
    - Exit
    linkageType: ''
    returnType: void
    signature: void cpthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/clamav/libclamunrar/threadmisc.cpp:118,1
    - Dst: sysctlbyname
      Src: /src/clamav/libclamunrar/threadmisc.cpp:123,1
    - Dst: GetProcessAffinityMask
      Src: /src/clamav/libclamunrar/threadmisc.cpp:129,1
    - Dst: GetCurrentProcess
      Src: /src/clamav/libclamunrar/threadmisc.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: GetNumberOfCPU
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 0
    functionsReached:
    - sysconf
    - sysctlbyname
    - GetProcessAffinityMask
    - GetCurrentProcess
    linkageType: ''
    returnType: uint
    signature: uint GetNumberOfCPU()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetNumberOfCPU
      Src: /src/clamav/libclamunrar/threadmisc.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: GetNumberOfThreads
    functionSourceFile: /src/clamav/libclamunrar/threadmisc.cpp
    functionUses: 1
    functionsReached:
    - GetNumberOfCPU
    linkageType: ''
    returnType: uint
    signature: uint GetNumberOfThreads()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/blake2sp.cpp:18,1
    - Dst: blake2s_init_param
      Src: /src/clamav/libclamunrar/blake2sp.cpp:21,1
    - Dst: blake2s_init_param
      Src: /src/clamav/libclamunrar/blake2sp.cpp:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2sp_state*
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: blake2sp_init
    functionSourceFile: /src/clamav/libclamunrar/blake2sp.cpp
    functionUses: 0
    functionsReached:
    - blake2s_init_param
    - memset
    linkageType: ''
    returnType: void
    signature: void blake2sp_init( blake2sp_state *S )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_prefetch
      Src: /src/clamav/libclamunrar/blake2sp.cpp:50,1
    - Dst: blake2s_update
      Src: /src/clamav/libclamunrar/blake2sp.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: Blake2ThreadData::Update
    functionSourceFile: /src/clamav/libclamunrar/blake2sp.cpp
    functionUses: 0
    functionsReached:
    - _mm_prefetch
    - blake2s_update
    linkageType: ''
    returnType: void
    signature: void Blake2ThreadData::Update()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Blake2ThreadData*::Update
      Src: /src/clamav/libclamunrar/blake2sp.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: THREAD_PROC
    functionSourceFile: /src/clamav/libclamunrar/blake2sp.cpp
    functionUses: 0
    functionsReached:
    - Blake2ThreadData*::Update
    linkageType: ''
    returnType: void
    signature: void THREAD_PROC(Blake2Thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/blake2sp.cpp:74,1
    - Dst: blake2s_update
      Src: /src/clamav/libclamunrar/blake2sp.cpp:77,1
    - Dst: blake2sp_state*::ThPool::AddTask
      Src: /src/clamav/libclamunrar/blake2sp.cpp:107,1
    - Dst: Blake2ThreadData*::Update
      Src: /src/clamav/libclamunrar/blake2sp.cpp:109,1
    - Dst: Blake2ThreadData*::Update
      Src: /src/clamav/libclamunrar/blake2sp.cpp:111,1
    - Dst: blake2sp_state*::ThPool::WaitDone
      Src: /src/clamav/libclamunrar/blake2sp.cpp:117,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/blake2sp.cpp:125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2sp_state*
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 128
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 128
    functionName: blake2sp_update
    functionSourceFile: /src/clamav/libclamunrar/blake2sp.cpp
    functionUses: 0
    functionsReached:
    - blake2s_update
    - blake2sp_state*::ThPool::AddTask
    - memcpy
    - Blake2ThreadData*::Update
    - blake2sp_state*::ThPool::WaitDone
    linkageType: ''
    returnType: void
    signature: void blake2sp_update( blake2sp_state *S, const byte *in, size_t inlen
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_update
      Src: /src/clamav/libclamunrar/blake2sp.cpp:143,1
    - Dst: blake2s_final
      Src: /src/clamav/libclamunrar/blake2sp.cpp:146,1
    - Dst: blake2s_update
      Src: /src/clamav/libclamunrar/blake2sp.cpp:150,1
    - Dst: blake2s_final
      Src: /src/clamav/libclamunrar/blake2sp.cpp:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - S
    - digest
    argTypes:
    - blake2sp_state*
    - byte*
    constantsTouched: []
    func_position:
      end: 153
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 153
    functionName: blake2sp_final
    functionSourceFile: /src/clamav/libclamunrar/blake2sp.cpp
    functionUses: 0
    functionsReached:
    - blake2s_final
    - blake2s_update
    linkageType: ''
    returnType: void
    signature: void blake2sp_final( blake2sp_state *S, byte *digest )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData::Init
      Src: /src/clamav/libclamunrar/cmddata.cpp:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: CommandData::CommandData
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - CommandData::Init
    linkageType: ''
    returnType: void
    signature: void CommandData::CommandData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RAROptions::Init
      Src: /src/clamav/libclamunrar/cmddata.cpp:14,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/cmddata.cpp:26,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/cmddata.cpp:27,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/cmddata.cpp:28,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/cmddata.cpp:29,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/cmddata.cpp:30,1
    - Dst: Clean
      Src: /src/clamav/libclamunrar/cmddata.cpp:31,1
    - Dst: clear
      Src: /src/clamav/libclamunrar/cmddata.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: CommandData::Init
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - Reset
    - RAROptions::Init
    - Clean
    - clear
    linkageType: ''
    returnType: void
    signature: void CommandData::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCmdParam
      Src: /src/clamav/libclamunrar/cmddata.cpp:40,1
    - Dst: malloc
      Src: /src/clamav/libclamunrar/cmddata.cpp:44,1
    - Dst: GetCmdParam
      Src: /src/clamav/libclamunrar/cmddata.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - CmdLine
    - Par
    argTypes:
    - wchar*
    - wchar**
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: AllocCmdParam
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - GetCmdParam
    linkageType: ''
    returnType: wchar
    signature: wchar *AllocCmdParam(const wchar *CmdLine,wchar **Par)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCommandLine
      Src: /src/clamav/libclamunrar/cmddata.cpp:60,1
    - Dst: AllocCmdParam
      Src: /src/clamav/libclamunrar/cmddata.cpp:65,1
    - Dst: CommandData::PreprocessArg
      Src: /src/clamav/libclamunrar/cmddata.cpp:69,1
    - Dst: CommandData::ParseArg
      Src: /src/clamav/libclamunrar/cmddata.cpp:71,1
    - Dst: free
      Src: /src/clamav/libclamunrar/cmddata.cpp:72,1
    - Dst: Array::Alloc
      Src: /src/clamav/libclamunrar/cmddata.cpp:78,1
    - Dst: strlen
      Src: /src/clamav/libclamunrar/cmddata.cpp:78,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/cmddata.cpp:79,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/cmddata.cpp:79,1
    - Dst: CommandData::PreprocessArg
      Src: /src/clamav/libclamunrar/cmddata.cpp:81,1
    - Dst: CommandData::ParseArg
      Src: /src/clamav/libclamunrar/cmddata.cpp:83,1
    - Dst: CommandData::ParseDone
      Src: /src/clamav/libclamunrar/cmddata.cpp:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - Preprocess
    - argc
    - argv
    argTypes:
    - bool
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 88
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 88
    functionName: CommandData::ParseCommandLine
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - GetCommandLine
    - AllocCmdParam
    - CommandData::PreprocessArg
    - strlen
    - Array::Alloc
    - CommandData::ParseDone
    - Array::Size
    - free
    - CharToWide
    - CommandData::ParseArg
    linkageType: ''
    returnType: void
    signature: void CommandData::ParseCommandLine(bool Preprocess,int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData::IsSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:95,1
    - Dst: CommandData::ProcessSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:99,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:103,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:103,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:106,1
    - Dst: wcsupper
      Src: /src/clamav/libclamunrar/cmddata.cpp:111,1
    - Dst: SetConsoleMsgStream
      Src: /src/clamav/libclamunrar/cmddata.cpp:115,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:120,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:120,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:128,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:133,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:133,1
    - Dst: AddString
      Src: /src/clamav/libclamunrar/cmddata.cpp:136,1
    - Dst: IsWildcard
      Src: /src/clamav/libclamunrar/cmddata.cpp:142,1
    - Dst: ReadTextFile
      Src: /src/clamav/libclamunrar/cmddata.cpp:146,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:152,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:152,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/cmddata.cpp:153,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:153,1
    - Dst: AddString
      Src: /src/clamav/libclamunrar/cmddata.cpp:156,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 32
    argCount: 1
    argNames:
    - Arg
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 159
      start: 93
    functionDepth: 7
    functionLinenumber: 93
    functionLinenumberEnd: 159
    functionName: CommandData::ParseArg
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - SetConsoleMsgStream
    - AddString
    - wcsncpyz
    - CommandData::ProcessSwitch
    - toupperw
    - IsWildcard
    - CommandData::IsSwitch
    - wcsupper
    - ASIZE
    - ReadTextFile
    - AddEndSlash
    linkageType: ''
    returnType: void
    signature: void CommandData::ParseArg(wchar *Arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ItemsCount
      Src: /src/clamav/libclamunrar/cmddata.cpp:165,1
    - Dst: AddString
      Src: /src/clamav/libclamunrar/cmddata.cpp:166,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:167,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: CommandData::ParseDone
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - toupperw
    - ItemsCount
    - AddString
    linkageType: ''
    returnType: void
    signature: void CommandData::ParseDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamunrar/cmddata.cpp:184,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/cmddata.cpp:185,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/cmddata.cpp:185,1
    - Dst: CommandData::ProcessSwitchesString
      Src: /src/clamav/libclamunrar/cmddata.cpp:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: CommandData::ParseEnvVar
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - strlen
    - CommandData::ProcessSwitchesString
    - CharToWide
    - Array::Size
    linkageType: ''
    returnType: void
    signature: void CommandData::ParseEnvVar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData::IsSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:198,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:203,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:205,1
    - Dst: CommandData::ProcessSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:209,1
    - Dst: InitLogOptions
      Src: /src/clamav/libclamunrar/cmddata.cpp:210,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:212,1
    - Dst: CommandData::ProcessSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:215,1
    - Dst: InitLogOptions
      Src: /src/clamav/libclamunrar/cmddata.cpp:217,1
    - Dst: wcsncpy
      Src: /src/clamav/libclamunrar/cmddata.cpp:222,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:222,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - Arg
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 223
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 223
    functionName: CommandData::PreprocessArg
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - wcsnicomp
    - wcsicomp
    - InitLogOptions
    - CommandData::ProcessSwitch
    - wcsncpy
    - CommandData::IsSwitch
    - ASIZE
    linkageType: ''
    returnType: void
    signature: void CommandData::PreprocessArg(const wchar *Arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StringList::StringList
      Src: /src/clamav/libclamunrar/cmddata.cpp:230,1
    - Dst: ReadTextFile
      Src: /src/clamav/libclamunrar/cmddata.cpp:231,1
    - Dst: StringList::GetString
      Src: /src/clamav/libclamunrar/cmddata.cpp:234,1
    - Dst: IsSpace
      Src: /src/clamav/libclamunrar/cmddata.cpp:236,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:238,1
    - Dst: CommandData::ProcessSwitchesString
      Src: /src/clamav/libclamunrar/cmddata.cpp:239,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:243,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:243,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:244,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:245,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:250,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/cmddata.cpp:251,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:251,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:253,1
    - Dst: CommandData::ProcessSwitchesString
      Src: /src/clamav/libclamunrar/cmddata.cpp:254,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 228
    functionDepth: 7
    functionLinenumber: 228
    functionLinenumberEnd: 258
    functionName: CommandData::ReadConfig
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - wcsnicomp
    - CommandData::ProcessSwitchesString
    - wcsncpyz
    - toupperw
    - StringList::StringList
    - IsSpace
    - ASIZE
    - ReadTextFile
    - swprintf
    - StringList::GetString
    linkageType: ''
    returnType: void
    signature: void CommandData::ReadConfig()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AllocCmdParam
      Src: /src/clamav/libclamunrar/cmddata.cpp:266,1
    - Dst: CommandData::IsSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:268,1
    - Dst: CommandData::ProcessSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:269,1
    - Dst: free
      Src: /src/clamav/libclamunrar/cmddata.cpp:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: CommandData::ProcessSwitchesString
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 2
    functionsReached:
    - AllocCmdParam
    - CommandData::IsSwitch
    - CommandData::ProcessSwitch
    - free
    linkageType: ''
    returnType: void
    signature: void CommandData::ProcessSwitchesString(const wchar *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:280,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:286,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:306,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:307,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:307,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:311,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:311,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:319,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:329,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:339,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:339,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:345,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:351,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:366,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:380,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:398,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:398,1
    - Dst: CommandData::GetExclAttr
      Src: /src/clamav/libclamunrar/cmddata.cpp:405,1
    - Dst: CommandData::GetExclAttr
      Src: /src/clamav/libclamunrar/cmddata.cpp:409,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:417,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:420,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/cmddata.cpp:426,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/cmddata.cpp:427,1
    - Dst: Set
      Src: /src/clamav/libclamunrar/cmddata.cpp:428,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/cmddata.cpp:429,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/cmddata.cpp:429,1
    - Dst: IsSet
      Src: /src/clamav/libclamunrar/cmddata.cpp:432,1
    - Dst: uiGetPassword
      Src: /src/clamav/libclamunrar/cmddata.cpp:434,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/cmddata.cpp:435,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:439,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:444,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:446,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:446,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:449,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:454,1
    - Dst: SetConsoleMsgStream
      Src: /src/clamav/libclamunrar/cmddata.cpp:459,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:462,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:464,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:464,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:467,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:472,1
    - Dst: SetConsoleMsgStream
      Src: /src/clamav/libclamunrar/cmddata.cpp:475,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:478,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:481,1
    - Dst: SetConsoleMsgStream
      Src: /src/clamav/libclamunrar/cmddata.cpp:485,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:505,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:525,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:532,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:543,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:549,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:557,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/cmddata.cpp:559,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:560,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:563,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/cmddata.cpp:565,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:566,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:569,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:591,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:597,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:597,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/cmddata.cpp:601,1
    - Dst: wcspbrk
      Src: /src/clamav/libclamunrar/cmddata.cpp:607,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/cmddata.cpp:608,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:608,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:610,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:610,1
    - Dst: AddString
      Src: /src/clamav/libclamunrar/cmddata.cpp:611,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/cmddata.cpp:620,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:622,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:631,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:639,1
    - Dst: IsWildcard
      Src: /src/clamav/libclamunrar/cmddata.cpp:640,1
    - Dst: ReadTextFile
      Src: /src/clamav/libclamunrar/cmddata.cpp:641,1
    - Dst: StringList*::AddString
      Src: /src/clamav/libclamunrar/cmddata.cpp:643,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:647,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:671,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:677,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:682,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:682,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/cmddata.cpp:683,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:683,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:697,1
    - Dst: uiGetPassword
      Src: /src/clamav/libclamunrar/cmddata.cpp:704,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/cmddata.cpp:705,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/cmddata.cpp:709,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/cmddata.cpp:710,1
    - Dst: Set
      Src: /src/clamav/libclamunrar/cmddata.cpp:711,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/cmddata.cpp:712,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/cmddata.cpp:712,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:717,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:718,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:730,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:734,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:738,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/cmddata.cpp:751,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:753,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/cmddata.cpp:754,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/cmddata.cpp:757,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:759,1
    - Dst: InitSystemOptions
      Src: /src/clamav/libclamunrar/cmddata.cpp:760,1
    - Dst: SetPriority
      Src: /src/clamav/libclamunrar/cmddata.cpp:762,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:768,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/cmddata.cpp:771,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:774,1
    - Dst: ProhibitConsoleInput
      Src: /src/clamav/libclamunrar/cmddata.cpp:792,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:793,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:793,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:796,1
    - Dst: atoilw
      Src: /src/clamav/libclamunrar/cmddata.cpp:797,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:800,1
    - Dst: atoilw
      Src: /src/clamav/libclamunrar/cmddata.cpp:801,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:808,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:823,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:832,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:844,1
    - Dst: SetConsoleRedirectCharset
      Src: /src/clamav/libclamunrar/cmddata.cpp:850,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:857,1
    - Dst: CommandData::SetTimeFilters
      Src: /src/clamav/libclamunrar/cmddata.cpp:866,1
    - Dst: CommandData::SetTimeFilters
      Src: /src/clamav/libclamunrar/cmddata.cpp:869,1
    - Dst: CommandData::SetTimeFilters
      Src: /src/clamav/libclamunrar/cmddata.cpp:872,1
    - Dst: CommandData::SetTimeFilters
      Src: /src/clamav/libclamunrar/cmddata.cpp:875,1
    - Dst: CommandData::SetStoreTimeMode
      Src: /src/clamav/libclamunrar/cmddata.cpp:878,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:887,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:895,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:898,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:904,1
    - Dst: atoiw
      Src: /src/clamav/libclamunrar/cmddata.cpp:905,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:916,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:916,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/cmddata.cpp:917,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:917,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:926,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:926,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:929,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:929,1
    - Dst: CommandData::OutHelp
      Src: /src/clamav/libclamunrar/cmddata.cpp:932,1
    - Dst: CommandData::BadSwitch
      Src: /src/clamav/libclamunrar/cmddata.cpp:935,1
    CyclomaticComplexity: 226
    EdgeCount: 226
    ICount: 571
    argCount: 1
    argNames:
    - Switch
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 938
      start: 277
    functionDepth: 7
    functionLinenumber: 277
    functionLinenumberEnd: 938
    functionName: CommandData::ProcessSwitch
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 3
    functionsReached:
    - wcsicomp
    - IsWildcard
    - atoiw
    - IsSet
    - SetPriority
    - CommandData::SetStoreTimeMode
    - wcsncpyz
    - wcspbrk
    - toupperw
    - ReadTextFile
    - swprintf
    - SetConsoleRedirectCharset
    - Set
    - SetConsoleMsgStream
    - AddString
    - CommandData::SetTimeFilters
    - eprintf
    - ASIZE
    - IsDigit
    - uiMsg
    - cleandata
    - CommandData::GetExclAttr
    - wcschr
    - wcslen
    - wcsnicomp
    - InitSystemOptions
    - atoilw
    - ProhibitConsoleInput
    - StringList*::AddString
    - CommandData::BadSwitch
    - uiGetPassword
    - AddEndSlash
    - CommandData::OutHelp
    linkageType: ''
    returnType: void
    signature: void CommandData::ProcessSwitch(const wchar *Switch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmddata.cpp:945,1
    - Dst: St
      Src: /src/clamav/libclamunrar/cmddata.cpp:945,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmddata.cpp:946,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/cmddata.cpp:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - Switch
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 948
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 948
    functionName: CommandData::BadSwitch
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - St
    - Exit
    - mprintf
    linkageType: ''
    returnType: void
    signature: void CommandData::BadSwitch(const wchar *Switch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/cmddata.cpp:957,1
    - Dst: CommandData::OutHelp
      Src: /src/clamav/libclamunrar/cmddata.cpp:958,1
    - Dst: GetExt
      Src: /src/clamav/libclamunrar/cmddata.cpp:960,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/cmddata.cpp:962,1
    - Dst: IsDir
      Src: /src/clamav/libclamunrar/cmddata.cpp:962,1
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/cmddata.cpp:962,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/cmddata.cpp:963,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:963,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/cmddata.cpp:966,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:966,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/cmddata.cpp:969,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:969,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/cmddata.cpp:970,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:973,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:973,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/cmddata.cpp:974,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:974,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/cmddata.cpp:975,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmddata.cpp:976,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:976,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/cmddata.cpp:979,1
    - Dst: GenerateArchiveName
      Src: /src/clamav/libclamunrar/cmddata.cpp:984,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmddata.cpp:984,1
    - Dst: StringList::StringList
      Src: /src/clamav/libclamunrar/cmddata.cpp:987,1
    - Dst: StringList::AddString
      Src: /src/clamav/libclamunrar/cmddata.cpp:988,1
    - Dst: ScanTree::GetNext
      Src: /src/clamav/libclamunrar/cmddata.cpp:991,1
    - Dst: CommandData::AddArcName
      Src: /src/clamav/libclamunrar/cmddata.cpp:992,1
    - Dst: CommandData::AddArcName
      Src: /src/clamav/libclamunrar/cmddata.cpp:995,1
    - Dst: CmdExtract::DoExtract
      Src: /src/clamav/libclamunrar/cmddata.cpp:1006,1
    - Dst: ListArchive
      Src: /src/clamav/libclamunrar/cmddata.cpp:1012,1
    - Dst: CommandData::OutHelp
      Src: /src/clamav/libclamunrar/cmddata.cpp:1015,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/cmddata.cpp:1019,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 952
    functionDepth: 5
    functionLinenumber: 952
    functionLinenumberEnd: 1020
    functionName: CommandData::ProcessCommand
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - GetExt
    - CommandData::AddArcName
    - ScanTree::GetNext
    - IsDir
    - GenerateArchiveName
    - wcsncpyz
    - GetFileAttr
    - mprintf
    - FileExist
    - StringList::StringList
    - wcsncatz
    - ASIZE
    - IsDigit
    - wcschr
    - wcsnicomp
    - ListArchive
    - CmdExtract::DoExtract
    - StringList::AddString
    - CommandData::OutHelp
    linkageType: ''
    returnType: void
    signature: void CommandData::ProcessCommand()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddString
      Src: /src/clamav/libclamunrar/cmddata.cpp:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 1026
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1026
    functionName: CommandData::AddArcName
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - AddString
    linkageType: ''
    returnType: void
    signature: void CommandData::AddArcName(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetString
      Src: /src/clamav/libclamunrar/cmddata.cpp:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Name
    - MaxSize
    argTypes:
    - wchar*
    - int
    constantsTouched: []
    func_position:
      end: 1032
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1032
    functionName: CommandData::GetArcName
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - GetString
    linkageType: ''
    returnType: bool
    signature: bool CommandData::GetArcName(wchar *Name,int MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - Ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1042
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1042
    functionName: CommandData::IsSwitch
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CommandData::IsSwitch(int Ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmddata.cpp:1048,1
    - Dst: wcstol
      Src: /src/clamav/libclamunrar/cmddata.cpp:1049,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmddata.cpp:1054,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - Str
    - Dir
    argTypes:
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 1081
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1081
    functionName: CommandData::GetExclAttr
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 1
    functionsReached:
    - IsDigit
    - toupperw
    - wcstol
    linkageType: ''
    returnType: uint
    signature: uint CommandData::GetExclAttr(const wchar *Str,bool &Dir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/cmddata.cpp:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1098
    functionName: CommandData::CheckWinSize
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - INT32TO64
    linkageType: ''
    returnType: bool
    signature: bool CommandData::CheckWinSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/cmddata.cpp:1108,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/cmddata.cpp:1111,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/cmddata.cpp:1114,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/cmddata.cpp:1124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - Format
    argTypes:
    - RARFORMAT
    constantsTouched: []
    func_position:
      end: 1129
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1129
    functionName: CommandData::ReportWrongSwitches
    functionSourceFile: /src/clamav/libclamunrar/cmddata.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    linkageType: ''
    returnType: void
    signature: void CommandData::ReportWrongSwitches(RARFORMAT Format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AnalyzeData::AnalyzeData
      Src: /src/clamav/libclamunrar/extract.cpp:11,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/extract.cpp:12,1
    - Dst: Unpack::Unpack
      Src: /src/clamav/libclamunrar/extract.cpp:28,1
    - Dst: SetThreads
      Src: /src/clamav/libclamunrar/extract.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - Cmd
    argTypes:
    - CommandData*
    constantsTouched: []
    func_position:
      end: 32
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 32
    functionName: CmdExtract::CmdExtract
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 0
    functionsReached:
    - Unpack::Unpack
    - AnalyzeData::AnalyzeData
    - memset
    - SetThreads
    linkageType: ''
    returnType: void
    signature: void CmdExtract::CmdExtract(CommandData *Cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CmdExtract::FreeAnalyzeData
      Src: /src/clamav/libclamunrar/extract.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: CmdExtract::~CmdExtract()
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 0
    functionsReached:
    - CmdExtract::FreeAnalyzeData
    linkageType: ''
    returnType: void
    signature: void CmdExtract::~CmdExtract()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/extract.cpp:45,1
    - Dst: DelFile
      Src: /src/clamav/libclamunrar/extract.cpp:50,1
    - Dst: free
      Src: /src/clamav/libclamunrar/extract.cpp:51,1
    - Dst: free
      Src: /src/clamav/libclamunrar/extract.cpp:52,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/extract.cpp:54,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/extract.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: CmdExtract::FreeAnalyzeData
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - memset
    - Reset
    - Size
    - DelFile
    - free
    linkageType: ''
    returnType: void
    signature: void CmdExtract::FreeAnalyzeData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetCurrentCommand
      Src: /src/clamav/libclamunrar/extract.cpp:66,1
    - Dst: GetArcName
      Src: /src/clamav/libclamunrar/extract.cpp:71,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:71,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/extract.cpp:72,1
    - Dst: ArcNames::Rewind
      Src: /src/clamav/libclamunrar/extract.cpp:76,1
    - Dst: GetArcName
      Src: /src/clamav/libclamunrar/extract.cpp:77,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:77,1
    - Dst: Password::Clean
      Src: /src/clamav/libclamunrar/extract.cpp:80,1
    - Dst: CmdExtract::ExtractArchive
      Src: /src/clamav/libclamunrar/extract.cpp:86,1
    - Dst: Password::Clean
      Src: /src/clamav/libclamunrar/extract.cpp:95,1
    - Dst: GetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:98,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:101,1
    - Dst: GetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:105,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:106,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:111,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:111,1
    - Dst: GetErrorCount
      Src: /src/clamav/libclamunrar/extract.cpp:113,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:114,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:114,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:116,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:116,1
    - Dst: GetErrorCount
      Src: /src/clamav/libclamunrar/extract.cpp:116,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 117
    functionName: CmdExtract::DoExtract
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - uiMsg
    - CmdExtract::ExtractArchive
    - St
    - GetErrorCount
    - Password::Clean
    - GetErrorCode
    - FindFile::FastFind
    - ASIZE
    - SetCurrentCommand
    - ArcNames::Rewind
    - SetErrorCode
    - GetArcName
    - mprintf
    linkageType: ''
    returnType: void
    signature: void CmdExtract::DoExtract()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AdjustTotalArcSize
      Src: /src/clamav/libclamunrar/extract.cpp:122,1
    - Dst: Password::IsSet
      Src: /src/clamav/libclamunrar/extract.cpp:130,1
    - Dst: uiIsGlobalPasswordSet
      Src: /src/clamav/libclamunrar/extract.cpp:130,1
    - Dst: SetCurrentTime
      Src: /src/clamav/libclamunrar/extract.cpp:140,1
    - Dst: clear
      Src: /src/clamav/libclamunrar/extract.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - Arc
    argTypes:
    - Archive
    constantsTouched: []
    func_position:
      end: 143
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: CmdExtract::ExtractArchiveInit
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 0
    functionsReached:
    - uiIsGlobalPasswordSet
    - SetCurrentTime
    - Password::IsSet
    - clear
    - AdjustTotalArcSize
    linkageType: ''
    returnType: void
    signature: void CmdExtract::ExtractArchiveInit(Archive &Arc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::SetHandleType
      Src: /src/clamav/libclamunrar/extract.cpp:151,1
    - Dst: Archive::SetProhibitQOpen
      Src: /src/clamav/libclamunrar/extract.cpp:153,1
    - Dst: ResetFileCache
      Src: /src/clamav/libclamunrar/extract.cpp:160,1
    - Dst: Archive::WOpen
      Src: /src/clamav/libclamunrar/extract.cpp:162,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/extract.cpp:166,1
    - Dst: CmpExt
      Src: /src/clamav/libclamunrar/extract.cpp:169,1
    - Dst: VolNameToFirstName
      Src: /src/clamav/libclamunrar/extract.cpp:172,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:172,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/extract.cpp:177,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:177,1
    - Dst: ArcNames::Search
      Src: /src/clamav/libclamunrar/extract.cpp:178,1
    - Dst: RecVolumesTest
      Src: /src/clamav/libclamunrar/extract.cpp:180,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:186,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:186,1
    - Dst: CmpExt
      Src: /src/clamav/libclamunrar/extract.cpp:189,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:191,1
    - Dst: VolNameToFirstName
      Src: /src/clamav/libclamunrar/extract.cpp:202,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:202,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/extract.cpp:207,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:207,1
    - Dst: ArcNames::Search
      Src: /src/clamav/libclamunrar/extract.cpp:208,1
    - Dst: Archive::ViewComment
      Src: /src/clamav/libclamunrar/extract.cpp:213,1
    - Dst: CmdExtract::AnalyzeArchive
      Src: /src/clamav/libclamunrar/extract.cpp:220,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:232,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:232,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:244,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:244,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/extract.cpp:251,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:251,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/extract.cpp:253,1
    - Dst: CmdExtract::ExtractArchiveInit
      Src: /src/clamav/libclamunrar/extract.cpp:261,1
    - Dst: uiStartArchiveExtract
      Src: /src/clamav/libclamunrar/extract.cpp:272,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/extract.cpp:277,1
    - Dst: CmdExtract::ExtractCurrentFile
      Src: /src/clamav/libclamunrar/extract.cpp:289,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/extract.cpp:296,1
    - Dst: RecVolumesTest
      Src: /src/clamav/libclamunrar/extract.cpp:307,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 311
    functionName: CmdExtract::ExtractArchive
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - Archive::WOpen
    - wcsicomp
    - Archive::ViewComment
    - FindFile::FastFind
    - NextVolumeName
    - VolNameToFirstName
    - St
    - wcsncpyz
    - RecVolumesTest
    - CmpExt
    - SetErrorCode
    - mprintf
    - FileExist
    - ArcNames::Search
    - ResetFileCache
    - ASIZE
    - CmdExtract::ExtractCurrentFile
    - CmdExtract::ExtractArchiveInit
    - Archive::IsArchive
    - uiStartArchiveExtract
    - Archive::SetHandleType
    - Archive::Seek
    - CmdExtract::AnalyzeArchive
    - Archive::SetProhibitQOpen
    linkageType: ''
    returnType: EXTRACT_ARC_CODE
    signature: EXTRACT_ARC_CODE CmdExtract::ExtractArchive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MergeArchive
      Src: /src/clamav/libclamunrar/extract.cpp:325,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:327,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/extract.cpp:335,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/extract.cpp:340,1
    - Dst: SetExtraInfo20
      Src: /src/clamav/libclamunrar/extract.cpp:347,1
    - Dst: SetExtraInfo
      Src: /src/clamav/libclamunrar/extract.cpp:350,1
    - Dst: MergeArchive
      Src: /src/clamav/libclamunrar/extract.cpp:357,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:359,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/extract.cpp:362,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/extract.cpp:368,1
    - Dst: FileArgs::ItemsCount
      Src: /src/clamav/libclamunrar/extract.cpp:389,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:401,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:401,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/extract.cpp:402,1
    - Dst: IsWildcard
      Src: /src/clamav/libclamunrar/extract.cpp:403,1
    - Dst: Archive::ConvertAttributes
      Src: /src/clamav/libclamunrar/extract.cpp:410,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:416,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:416,1
    - Dst: CmdExtract::GetFirstVolIfFullSet
      Src: /src/clamav/libclamunrar/extract.cpp:417,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:417,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/extract.cpp:419,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:419,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:421,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:421,1
    - Dst: RecVolumesRestore
      Src: /src/clamav/libclamunrar/extract.cpp:431,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:438,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:438,1
    - Dst: ConvertPath
      Src: /src/clamav/libclamunrar/extract.cpp:443,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:443,1
    - Dst: ParseVersionFileName
      Src: /src/clamav/libclamunrar/extract.cpp:453,1
    - Dst: Archive::IsArcDir
      Src: /src/clamav/libclamunrar/extract.cpp:459,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/extract.cpp:465,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:475,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:479,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/extract.cpp:489,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/extract.cpp:490,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:503,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:503,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/extract.cpp:504,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:504,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/extract.cpp:505,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:505,1
    - Dst: MkTemp
      Src: /src/clamav/libclamunrar/extract.cpp:506,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:506,1
    - Dst: wcsdup
      Src: /src/clamav/libclamunrar/extract.cpp:507,1
    - Dst: uiStartFileExtract
      Src: /src/clamav/libclamunrar/extract.cpp:524,1
    - Dst: CmdExtract::ExtrPrepareName
      Src: /src/clamav/libclamunrar/extract.cpp:528,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:528,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/extract.cpp:536,1
    - Dst: CmdExtract::CheckUnpVer
      Src: /src/clamav/libclamunrar/extract.cpp:555,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:557,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/extract.cpp:561,1
    - Dst: RarCheckPassword::RarCheckPassword
      Src: /src/clamav/libclamunrar/extract.cpp:567,1
    - Dst: RarCheckPassword::Set
      Src: /src/clamav/libclamunrar/extract.cpp:569,1
    - Dst: CmdExtract::ExtrDllGetPassword
      Src: /src/clamav/libclamunrar/extract.cpp:575,1
    - Dst: CmdExtract::ExtrGetPassword
      Src: /src/clamav/libclamunrar/extract.cpp:581,1
    - Dst: RarCheckPassword::IsSet
      Src: /src/clamav/libclamunrar/extract.cpp:581,1
    - Dst: CmdExtract::ConvertDosPassword
      Src: /src/clamav/libclamunrar/extract.cpp:592,1
    - Dst: SetEncryption
      Src: /src/clamav/libclamunrar/extract.cpp:596,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/extract.cpp:604,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:610,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:616,1
    - Dst: Password::Clean
      Src: /src/clamav/libclamunrar/extract.cpp:617,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:631,1
    - Dst: SetEncryption
      Src: /src/clamav/libclamunrar/extract.cpp:638,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:642,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:642,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/extract.cpp:645,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:655,1
    - Dst: FileCreate
      Src: /src/clamav/libclamunrar/extract.cpp:656,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:656,1
    - Dst: Archive::IsArcDir
      Src: /src/clamav/libclamunrar/extract.cpp:662,1
    - Dst: CmdExtract::ExtrCreateDir
      Src: /src/clamav/libclamunrar/extract.cpp:667,1
    - Dst: CmdExtract::ExtrCreateFile
      Src: /src/clamav/libclamunrar/extract.cpp:675,1
    - Dst: uiStartFileExtract
      Src: /src/clamav/libclamunrar/extract.cpp:687,1
    - Dst: File::IsDevice
      Src: /src/clamav/libclamunrar/extract.cpp:701,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:703,1
    - Dst: WriteError
      Src: /src/clamav/libclamunrar/extract.cpp:704,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:711,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:711,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:716,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:716,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:720,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:720,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:725,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:725,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:729,1
    - Dst: uiEolAfterMsg
      Src: /src/clamav/libclamunrar/extract.cpp:731,1
    - Dst: UnpHash::Init
      Src: /src/clamav/libclamunrar/extract.cpp:735,1
    - Dst: PackedDataHash::Init
      Src: /src/clamav/libclamunrar/extract.cpp:736,1
    - Dst: SetPackedSizeToRead
      Src: /src/clamav/libclamunrar/extract.cpp:737,1
    - Dst: SetFiles
      Src: /src/clamav/libclamunrar/extract.cpp:738,1
    - Dst: SetTestMode
      Src: /src/clamav/libclamunrar/extract.cpp:739,1
    - Dst: SetSkipUnpCRC
      Src: /src/clamav/libclamunrar/extract.cpp:740,1
    - Dst: IsFAT
      Src: /src/clamav/libclamunrar/extract.cpp:747,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:749,1
    - Dst: Archive::IsSeekable
      Src: /src/clamav/libclamunrar/extract.cpp:755,1
    - Dst: Archive::FileLength
      Src: /src/clamav/libclamunrar/extract.cpp:756,1
    - Dst: File::Prealloc
      Src: /src/clamav/libclamunrar/extract.cpp:758,1
    - Dst: File::SetAllowDelete
      Src: /src/clamav/libclamunrar/extract.cpp:761,1
    - Dst: SlashToNative
      Src: /src/clamav/libclamunrar/extract.cpp:782,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:782,1
    - Dst: ConvertPath
      Src: /src/clamav/libclamunrar/extract.cpp:784,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:784,1
    - Dst: CmdExtract::ExtrPrepareName
      Src: /src/clamav/libclamunrar/extract.cpp:787,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:787,1
    - Dst: ExtractHardlink
      Src: /src/clamav/libclamunrar/extract.cpp:790,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:790,1
    - Dst: CmdExtract::ExtractFileCopy
      Src: /src/clamav/libclamunrar/extract.cpp:792,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:792,1
    - Dst: ExtractSymlink
      Src: /src/clamav/libclamunrar/extract.cpp:800,1
    - Dst: SetFileHeaderExtra
      Src: /src/clamav/libclamunrar/extract.cpp:804,1
    - Dst: clear
      Src: /src/clamav/libclamunrar/extract.cpp:817,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:822,1
    - Dst: CmdExtract::UnstoreFile
      Src: /src/clamav/libclamunrar/extract.cpp:840,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/extract.cpp:843,1
    - Dst: SetDestSize
      Src: /src/clamav/libclamunrar/extract.cpp:844,1
    - Dst: DoUnpack
      Src: /src/clamav/libclamunrar/extract.cpp:848,1
    - Dst: DoUnpack
      Src: /src/clamav/libclamunrar/extract.cpp:851,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/extract.cpp:854,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:882,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:883,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:889,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:891,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:893,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:909,1
    - Dst: File::Truncate
      Src: /src/clamav/libclamunrar/extract.cpp:933,1
    - Dst: File::SetOpenFileTime
      Src: /src/clamav/libclamunrar/extract.cpp:936,1
    - Dst: File::Close
      Src: /src/clamav/libclamunrar/extract.cpp:940,1
    - Dst: SetFileHeaderExtra
      Src: /src/clamav/libclamunrar/extract.cpp:942,1
    - Dst: File::SetCloseFileTime
      Src: /src/clamav/libclamunrar/extract.cpp:944,1
    - Dst: SetFileCompression
      Src: /src/clamav/libclamunrar/extract.cpp:952,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/extract.cpp:956,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:958,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/extract.cpp:962,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/extract.cpp:978,1
    CyclomaticComplexity: 205
    EdgeCount: 205
    ICount: 322
    argCount: 3
    argNames:
    - Arc
    - HeaderSize
    - Repeat
    argTypes:
    - Archive
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 983
      start: 314
    functionDepth: 6
    functionLinenumber: 314
    functionLinenumberEnd: 983
    functionName: CmdExtract::ExtractCurrentFile
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - FileArgs::ItemsCount
    - File::IsDevice
    - Init
    - wcsicomp
    - SysErrMsg
    - MergeArchive
    - Size
    - Archive::SeekToNext
    - memcmp
    - CmdExtract::ExtrGetPassword
    - SetFileHeaderExtra
    - wcsncpyz
    - Archive::IsArcDir
    - PackedDataHash::Init
    - ConvertPath
    - CmdExtract::ExtrCreateFile
    - FileExist
    - File::Close
    - CmdExtract::ConvertDosPassword
    - CmdExtract::ExtractFileCopy
    - uiMsg
    - File::File
    - SetSkipUnpCRC
    - Archive::ConvertAttributes
    - SetFileCompression
    - Password::Clean
    - ExtractSymlink
    - SetFileAttr
    - SetTestMode
    - ExtractHardlink
    - FindFile::FastFind
    - wcsdup
    - UnpHash::Init
    - uiEolAfterMsg
    - SetFiles
    - mprintf
    - CmdExtract::CheckUnpVer
    - CmdExtract::ExtrCreateDir
    - WriteError
    - clear
    - IsFAT
    - SetPackedSizeToRead
    - ParseVersionFileName
    - CmdExtract::UnstoreFile
    - SetDestSize
    - AddEndSlash
    - File::Truncate
    - DoUnpack
    - St
    - File::SetOpenFileTime
    - FileCreate
    - CmdExtract::GetFirstVolIfFullSet
    - PointToName
    - Archive::GetHeaderType
    - CmdExtract::ExtrPrepareName
    - wcscmp
    - SetExtraInfo
    - RarCheckPassword::Set
    - Archive::Seek
    - File::SetCloseFileTime
    - RarCheckPassword::IsSet
    - Archive::IsSeekable
    - IsWildcard
    - SetExtraInfo20
    - File::SetAllowDelete
    - uiStartFileExtract
    - RarCheckPassword::RarCheckPassword
    - File::Prealloc
    - SetErrorCode
    - MkTemp
    - SetEncryption
    - RecVolumesRestore
    - wcsncatz
    - ASIZE
    - Archive::FileLength
    - SlashToNative
    - CmdExtract::ExtrDllGetPassword
    linkageType: ''
    returnType: bool
    signature: bool CmdExtract::ExtractCurrentFile(Archive &Arc,size_t HeaderSize,bool
      &Repeat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ComprDataIO::UnpWrite
      Src: /src/clamav/libclamunrar/extract.cpp:997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - DataIO
    - DestUnpSize
    argTypes:
    - ComprDataIO
    - int64
    constantsTouched: []
    func_position:
      end: 1001
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1001
    functionName: CmdExtract::UnstoreFile
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 2
    functionsReached:
    - ComprDataIO::UnpWrite
    linkageType: ''
    returnType: void
    signature: void CmdExtract::UnstoreFile(ComprDataIO &DataIO,int64 DestUnpSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::File
      Src: /src/clamav/libclamunrar/extract.cpp:1006,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/extract.cpp:1007,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/extract.cpp:1012,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/extract.cpp:1013,1
    - Dst: File::Delete
      Src: /src/clamav/libclamunrar/extract.cpp:1021,1
    - Dst: File::WCreate
      Src: /src/clamav/libclamunrar/extract.cpp:1027,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/extract.cpp:1035,1
    - Dst: File::Seek
      Src: /src/clamav/libclamunrar/extract.cpp:1036,1
    - Dst: free
      Src: /src/clamav/libclamunrar/extract.cpp:1039,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/extract.cpp:1045,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1051,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1052,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1053,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/extract.cpp:1066,1
    - Dst: uiExtractProgress
      Src: /src/clamav/libclamunrar/extract.cpp:1072,1
    - Dst: File::Write
      Src: /src/clamav/libclamunrar/extract.cpp:1074,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 7
    argNames:
    - New
    - ArcName
    - RedirName
    - NameNew
    - NameExisting
    - NameExistingSize
    - UnpSize
    argTypes:
    - File
    - wchar*
    - wchar*
    - wchar*
    - wchar*
    - size_t
    - int64
    constantsTouched: []
    func_position:
      end: 1079
      start: 1004
    functionDepth: 5
    functionLinenumber: 1004
    functionLinenumberEnd: 1079
    functionName: CmdExtract::ExtractFileCopy
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - File::File
    - File::Write
    - File::Seek
    - Size
    - File::WCreate
    - wcscmp
    - File::Open
    - uiExtractProgress
    - File::Delete
    - uiMsg
    - OpenErrorMsg
    - free
    - Wait
    linkageType: ''
    returnType: bool
    signature: bool CmdExtract::ExtractFileCopy(File &New,wchar *ArcName,const wchar
      *RedirName,wchar *NameNew,wchar *NameExisting,size_t NameExistingSize,int64
      UnpSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1090,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1094,1
    - Dst: PointToLastChar
      Src: /src/clamav/libclamunrar/extract.cpp:1098,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extract.cpp:1104,1
    - Dst: IsDriveDiv
      Src: /src/clamav/libclamunrar/extract.cpp:1104,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/extract.cpp:1107,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/extract.cpp:1117,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/extract.cpp:1117,1
    - Dst: SetExt
      Src: /src/clamav/libclamunrar/extract.cpp:1118,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1121,1
    - Dst: SetExt
      Src: /src/clamav/libclamunrar/extract.cpp:1122,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1125,1
    - Dst: RemoveNameFromPath
      Src: /src/clamav/libclamunrar/extract.cpp:1126,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/extract.cpp:1129,1
    - Dst: wcsnicompc
      Src: /src/clamav/libclamunrar/extract.cpp:1139,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extract.cpp:1140,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extract.cpp:1141,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/extract.cpp:1143,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extract.cpp:1144,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/extract.cpp:1165,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/extract.cpp:1165,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/extract.cpp:1167,1
    - Dst: MakeNameCompatible
      Src: /src/clamav/libclamunrar/extract.cpp:1173,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/extract.cpp:1176,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extract.cpp:1180,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 54
    argCount: 4
    argNames:
    - Arc
    - ArcFileName
    - DestName
    - DestSize
    argTypes:
    - Archive
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 1191
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1191
    functionName: CmdExtract::ExtrPrepareName
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - IsDriveDiv
    - RemoveNameFromPath
    - wcsncpyz
    - PointToLastChar
    - toupperw
    - IsPathDiv
    - MakeNameCompatible
    - wcsncatz
    - wcsnicompc
    - AddEndSlash
    - Min
    - PointToName
    - SetExt
    linkageType: ''
    returnType: void
    signature: void CmdExtract::ExtrPrepareName(Archive &Arc,const wchar *ArcFileName,wchar
      *DestName,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Password::IsSet
      Src: /src/clamav/libclamunrar/extract.cpp:1197,1
    - Dst: Callback
      Src: /src/clamav/libclamunrar/extract.cpp:1203,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1203,1
    - Dst: Callback
      Src: /src/clamav/libclamunrar/extract.cpp:1209,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1209,1
    - Dst: GetWideName
      Src: /src/clamav/libclamunrar/extract.cpp:1211,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1211,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/extract.cpp:1212,1
    - Dst: Password::Set
      Src: /src/clamav/libclamunrar/extract.cpp:1214,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/extract.cpp:1215,1
    - Dst: Password::IsSet
      Src: /src/clamav/libclamunrar/extract.cpp:1218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1222
    functionName: CmdExtract::ExtrDllGetPassword
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - Password::IsSet
    - Password::Set
    - ASIZE
    - Callback
    - cleandata
    - GetWideName
    linkageType: ''
    returnType: bool
    signature: bool CmdExtract::ExtrDllGetPassword()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Password::IsSet
      Src: /src/clamav/libclamunrar/extract.cpp:1229,1
    - Dst: uiGetPassword
      Src: /src/clamav/libclamunrar/extract.cpp:1231,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1234,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/extract.cpp:1243,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:1243,1
    - Dst: Ask
      Src: /src/clamav/libclamunrar/extract.cpp:1244,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:1244,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/extract.cpp:1247,1
    - Dst: uiGetPassword
      Src: /src/clamav/libclamunrar/extract.cpp:1249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - Arc
    - ArcFileName
    - CheckPwd
    argTypes:
    - Archive
    - wchar*
    - RarCheckPassword*
    constantsTouched: []
    func_position:
      end: 1259
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1259
    functionName: CmdExtract::ExtrGetPassword
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - Password::IsSet
    - St
    - Ask
    - Exit
    - uiGetPassword
    - eprintf
    - uiMsg
    linkageType: ''
    returnType: bool
    signature: bool CmdExtract::ExtrGetPassword(Archive &Arc,const wchar *ArcFileName,RarCheckPassword
      *CheckPwd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Password::Get
      Src: /src/clamav/libclamunrar/extract.cpp:1271,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1271,1
    - Dst: CharToOemBuffW
      Src: /src/clamav/libclamunrar/extract.cpp:1273,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1273,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1274,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/extract.cpp:1275,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1275,1
    - Dst: SecPassword::Set
      Src: /src/clamav/libclamunrar/extract.cpp:1276,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/extract.cpp:1277,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/extract.cpp:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - Arc
    - DestPwd
    argTypes:
    - Archive
    - SecPassword
    constantsTouched: []
    func_position:
      end: 1280
      start: 1264
    functionDepth: 3
    functionLinenumber: 1264
    functionLinenumberEnd: 1280
    functionName: CmdExtract::ConvertDosPassword
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - CharToOemBuffW
    - Password::Get
    - SecPassword::Set
    - ASIZE
    - cleandata
    - CharToWide
    linkageType: ''
    returnType: void
    signature: void CmdExtract::ConvertDosPassword(Archive &Arc,SecPassword &DestPwd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:1290,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:1290,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:1291,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:1291,1
    - Dst: MakeDir
      Src: /src/clamav/libclamunrar/extract.cpp:1296,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:1300,1
    - Dst: IsDir
      Src: /src/clamav/libclamunrar/extract.cpp:1301,1
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/extract.cpp:1301,1
    - Dst: FileCreate
      Src: /src/clamav/libclamunrar/extract.cpp:1306,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1306,1
    - Dst: CreatePath
      Src: /src/clamav/libclamunrar/extract.cpp:1311,1
    - Dst: MakeDir
      Src: /src/clamav/libclamunrar/extract.cpp:1312,1
    - Dst: IsNameUsable
      Src: /src/clamav/libclamunrar/extract.cpp:1313,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1315,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1316,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1317,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1317,1
    - Dst: MakeNameUsable
      Src: /src/clamav/libclamunrar/extract.cpp:1318,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1320,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:1322,1
    - Dst: IsDir
      Src: /src/clamav/libclamunrar/extract.cpp:1322,1
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/extract.cpp:1322,1
    - Dst: LinksToDirs
      Src: /src/clamav/libclamunrar/extract.cpp:1326,1
    - Dst: CreatePath
      Src: /src/clamav/libclamunrar/extract.cpp:1327,1
    - Dst: MakeDir
      Src: /src/clamav/libclamunrar/extract.cpp:1328,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:1337,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:1337,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/extract.cpp:1338,1
    - Dst: St
      Src: /src/clamav/libclamunrar/extract.cpp:1338,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/extract.cpp:1346,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1351,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1352,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/extract.cpp:1356,1
    - Dst: WinNT
      Src: /src/clamav/libclamunrar/extract.cpp:1362,1
    - Dst: SetFileCompression
      Src: /src/clamav/libclamunrar/extract.cpp:1363,1
    - Dst: SetFileHeaderExtra
      Src: /src/clamav/libclamunrar/extract.cpp:1365,1
    - Dst: SetDirTime
      Src: /src/clamav/libclamunrar/extract.cpp:1366,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 2
    argNames:
    - Arc
    - ArcFileName
    argTypes:
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 1371
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1371
    functionName: CmdExtract::ExtrCreateDir
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - SysErrMsg
    - MakeNameUsable
    - LinksToDirs
    - IsDir
    - SetDirTime
    - SetFileHeaderExtra
    - St
    - wcsncpyz
    - GetFileAttr
    - FileCreate
    - IsNameUsable
    - SetErrorCode
    - mprintf
    - FileExist
    - WinNT
    - ASIZE
    - uiMsg
    - CreatePath
    - SetFileCompression
    - MakeDir
    - SetFileAttr
    linkageType: ''
    returnType: void
    signature: void CmdExtract::ExtrCreateDir(Archive &Arc,const wchar *ArcFileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::SetHandleType
      Src: /src/clamav/libclamunrar/extract.cpp:1380,1
    - Dst: FileCreate
      Src: /src/clamav/libclamunrar/extract.cpp:1387,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1387,1
    - Dst: CreateErrorMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1392,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:1393,1
    - Dst: IsDir
      Src: /src/clamav/libclamunrar/extract.cpp:1393,1
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/extract.cpp:1393,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1394,1
    - Dst: IsNameUsable
      Src: /src/clamav/libclamunrar/extract.cpp:1399,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1401,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1403,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1404,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1404,1
    - Dst: MakeNameUsable
      Src: /src/clamav/libclamunrar/extract.cpp:1406,1
    - Dst: LinksToDirs
      Src: /src/clamav/libclamunrar/extract.cpp:1409,1
    - Dst: CreatePath
      Src: /src/clamav/libclamunrar/extract.cpp:1410,1
    - Dst: FileCreate
      Src: /src/clamav/libclamunrar/extract.cpp:1411,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1411,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1414,1
    - Dst: CreateErrorMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1419,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - Arc
    - CurFile
    argTypes:
    - Archive
    - File
    constantsTouched: []
    func_position:
      end: 1425
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1425
    functionName: CmdExtract::ExtrCreateFile
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - IsNameUsable
    - CreatePath
    - CreateErrorMsg
    - wcsncpyz
    - FileExist
    - GetFileAttr
    - MakeNameUsable
    - LinksToDirs
    - FileCreate
    - IsDir
    - ASIZE
    - uiMsg
    - File::SetHandleType
    linkageType: ''
    returnType: bool
    signature: bool CmdExtract::ExtrCreateFile(Archive &Arc,File &CurFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnknownMethodMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1448,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/extract.cpp:1449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - Arc
    - ArcFileName
    argTypes:
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 1452
      start: 1428
    functionDepth: 2
    functionLinenumber: 1428
    functionLinenumberEnd: 1452
    functionName: CmdExtract::CheckUnpVer
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - UnknownMethodMsg
    - uiMsg
    linkageType: ''
    returnType: bool
    signature: bool CmdExtract::CheckUnpVer(Archive &Arc,const wchar *ArcFileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CmdExtract::FreeAnalyzeData
      Src: /src/clamav/libclamunrar/extract.cpp:1467,1
    - Dst: FileArgs::GetString
      Src: /src/clamav/libclamunrar/extract.cpp:1469,1
    - Dst: FileArgs::Rewind
      Src: /src/clamav/libclamunrar/extract.cpp:1470,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/extract.cpp:1471,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/extract.cpp:1471,1
    - Dst: CmdExtract::GetFirstVolIfFullSet
      Src: /src/clamav/libclamunrar/extract.cpp:1477,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1477,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1479,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1479,1
    - Dst: Archive::Open
      Src: /src/clamav/libclamunrar/extract.cpp:1495,1
    - Dst: Archive::IsArchive
      Src: /src/clamav/libclamunrar/extract.cpp:1495,1
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/extract.cpp:1509,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/extract.cpp:1511,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/extract.cpp:1513,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1538,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1538,1
    - Dst: IsProcessFile
      Src: /src/clamav/libclamunrar/extract.cpp:1548,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/extract.cpp:1564,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/extract.cpp:1565,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/extract.cpp:1578,1
    - Dst: wcsdup
      Src: /src/clamav/libclamunrar/extract.cpp:1581,1
    - Dst: Push
      Src: /src/clamav/libclamunrar/extract.cpp:1583,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1595,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1595,1
    - Dst: Archive::SeekToNext
      Src: /src/clamav/libclamunrar/extract.cpp:1609,1
    - Dst: Archive::Close
      Src: /src/clamav/libclamunrar/extract.cpp:1611,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/extract.cpp:1615,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1615,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/extract.cpp:1630,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/extract.cpp:1631,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 79
    argCount: 3
    argNames:
    - ArcName
    - Volume
    - NewNumbering
    argTypes:
    - wchar*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 1632
      start: 1465
    functionDepth: 5
    functionLinenumber: 1465
    functionLinenumberEnd: 1632
    functionName: CmdExtract::AnalyzeArchive
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 1
    functionsReached:
    - FileArgs::Rewind
    - Size
    - Archive::SeekToNext
    - wcsdup
    - NextVolumeName
    - Wait
    - wcsncpyz
    - CmdExtract::FreeAnalyzeData
    - CmdExtract::GetFirstVolIfFullSet
    - Archive::GetHeaderType
    - Archive::Close
    - memset
    - FileArgs::GetString
    - wcscmp
    - Push
    - ASIZE
    - Archive::Open
    - IsProcessFile
    - Archive::IsArchive
    - Archive::ReadHeader
    linkageType: ''
    returnType: void
    signature: void CmdExtract::AnalyzeArchive(const wchar *ArcName,bool Volume,bool
      NewNumbering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VolNameToFirstName
      Src: /src/clamav/libclamunrar/extract.cpp:1642,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1642,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1644,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1644,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1646,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1646,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/extract.cpp:1649,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1651,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/extract.cpp:1654,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/extract.cpp:1656,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extract.cpp:1656,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extract.cpp:1658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - SrcName
    - NewNumbering
    - DestName
    - DestSize
    argTypes:
    - wchar*
    - bool
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 1659
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1659
    functionName: CmdExtract::GetFirstVolIfFullSet
    functionSourceFile: /src/clamav/libclamunrar/extract.cpp
    functionUses: 2
    functionsReached:
    - wcsncpyz
    - FileExist
    - wcscmp
    - ASIZE
    - NextVolumeName
    - VolNameToFirstName
    linkageType: ''
    returnType: void
    signature: void CmdExtract::GetFirstVolIfFullSet(const wchar *SrcName,bool NewNumbering,wchar
      *DestName,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ArcName
    - fmt
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 7
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 7
    functionName: Log
    functionSourceFile: /src/clamav/libclamunrar/log.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Log(const wchar *ArcName,const wchar *fmt,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::Clean
      Src: /src/clamav/libclamunrar/suballoc.cpp:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: SubAllocator::SubAllocator
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - SubAllocator::Clean
    linkageType: ''
    returnType: void
    signature: void SubAllocator::SubAllocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: SubAllocator::Clean
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubAllocator::Clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - indx
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: SubAllocator::InsertNode
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubAllocator::InsertNode(void* p,int indx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - indx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: SubAllocator::RemoveNode
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * SubAllocator::RemoveNode(int indx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - NU
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: SubAllocator::U2B
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint SubAllocator::U2B(int NU)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - BasePtr
    - Items
    argTypes:
    - RARPPM_MEM_BLK*
    - int
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: SubAllocator::MBPtr
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - SubAllocator::U2B
    linkageType: ''
    returnType: RARPPM_MEM_BLK
    signature: RARPPM_MEM_BLK * SubAllocator::MBPtr(RARPPM_MEM_BLK *BasePtr,int Items)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:58,1
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:61,1
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:62,1
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pv
    - OldIndx
    - NewIndx
    argTypes:
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: SubAllocator::SplitBlock
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - SubAllocator::InsertNode
    - SubAllocator::U2B
    linkageType: ''
    returnType: void
    signature: void SubAllocator::SplitBlock(void* pv,int OldIndx,int NewIndx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamunrar/suballoc.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: SubAllocator::StopSubAllocator
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void SubAllocator::StopSubAllocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::StopSubAllocator
      Src: /src/clamav/libclamunrar/suballoc.cpp:84,1
    - Dst: malloc
      Src: /src/clamav/libclamunrar/suballoc.cpp:91,1
    - Dst: MemoryError
      Src: /src/clamav/libclamunrar/suballoc.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - SASize
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 103
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 103
    functionName: SubAllocator::StartSubAllocator
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - MemoryError
    - malloc
    - SubAllocator::StopSubAllocator
    linkageType: ''
    returnType: bool
    signature: bool SubAllocator::StartSubAllocator(int SASize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/suballoc.cpp:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 165
    functionName: SubAllocator::InitSubAllocator
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void SubAllocator::InitSubAllocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::RemoveNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:177,1
    - Dst: insertAt
      Src: /src/clamav/libclamunrar/suballoc.cpp:178,1
    - Dst: SubAllocator::MBPtr
      Src: /src/clamav/libclamunrar/suballoc.cpp:183,1
    - Dst: remove
      Src: /src/clamav/libclamunrar/suballoc.cpp:185,1
    - Dst: remove
      Src: /src/clamav/libclamunrar/suballoc.cpp:190,1
    - Dst: SubAllocator::MBPtr
      Src: /src/clamav/libclamunrar/suballoc.cpp:190,1
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:191,1
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:195,1
    - Dst: SubAllocator::MBPtr
      Src: /src/clamav/libclamunrar/suballoc.cpp:195,1
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 199
    functionName: SubAllocator::GlueFreeBlocks
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - insertAt
    - SubAllocator::RemoveNode
    - SubAllocator::MBPtr
    - remove
    - SubAllocator::InsertNode
    linkageType: ''
    returnType: void
    signature: void SubAllocator::GlueFreeBlocks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::GlueFreeBlocks
      Src: /src/clamav/libclamunrar/suballoc.cpp:206,1
    - Dst: SubAllocator::RemoveNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:208,1
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:216,1
    - Dst: SubAllocator::SplitBlock
      Src: /src/clamav/libclamunrar/suballoc.cpp:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - indx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 230
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 230
    functionName: SubAllocator::AllocUnitsRare
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - SubAllocator::GlueFreeBlocks
    - SubAllocator::RemoveNode
    - SubAllocator::SplitBlock
    - SubAllocator::U2B
    linkageType: ''
    returnType: void
    signature: void * SubAllocator::AllocUnitsRare(int indx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::RemoveNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:237,1
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:239,1
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:242,1
    - Dst: SubAllocator::AllocUnitsRare
      Src: /src/clamav/libclamunrar/suballoc.cpp:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - NU
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 244
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 244
    functionName: SubAllocator::AllocUnits
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - SubAllocator::AllocUnitsRare
    - SubAllocator::RemoveNode
    - SubAllocator::U2B
    linkageType: ''
    returnType: void
    signature: void * SubAllocator::AllocUnits(int NU)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::RemoveNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:252,1
    - Dst: SubAllocator::AllocUnitsRare
      Src: /src/clamav/libclamunrar/suballoc.cpp:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: SubAllocator::AllocContext
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - SubAllocator::AllocUnitsRare
    - SubAllocator::RemoveNode
    linkageType: ''
    returnType: void
    signature: void * SubAllocator::AllocContext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/suballoc.cpp:265,1
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:265,1
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - OldPtr
    - OldNU
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: SubAllocator::ExpandUnits
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - SubAllocator::InsertNode
    - SubAllocator::U2B
    linkageType: ''
    returnType: void
    signature: void * SubAllocator::ExpandUnits(void* OldPtr,int OldNU)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/suballoc.cpp:280,1
    - Dst: SubAllocator::U2B
      Src: /src/clamav/libclamunrar/suballoc.cpp:280,1
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:281,1
    - Dst: SubAllocator::SplitBlock
      Src: /src/clamav/libclamunrar/suballoc.cpp:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - OldPtr
    - OldNU
    - NewNU
    argTypes:
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: SubAllocator::ShrinkUnits
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - SubAllocator::InsertNode
    - SubAllocator::SplitBlock
    - SubAllocator::U2B
    linkageType: ''
    returnType: void
    signature: void * SubAllocator::ShrinkUnits(void* OldPtr,int OldNU,int NewNU)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubAllocator::InsertNode
      Src: /src/clamav/libclamunrar/suballoc.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - OldNU
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: SubAllocator::FreeUnits
    functionSourceFile: /src/clamav/libclamunrar/suballoc.cpp
    functionUses: 0
    functionsReached:
    - SubAllocator::InsertNode
    linkageType: ''
    returnType: void
    signature: void SubAllocator::FreeUnits(void* ptr,int OldNU)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/clamav/libclamunrar/rar.cpp:8,1
    - Dst: InitConsole
      Src: /src/clamav/libclamunrar/rar.cpp:11,1
    - Dst: SetSignalHandlers
      Src: /src/clamav/libclamunrar/rar.cpp:12,1
    - Dst: GetModuleFileName
      Src: /src/clamav/libclamunrar/rar.cpp:17,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/rar.cpp:17,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/rar.cpp:19,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/rar.cpp:19,1
    - Dst: SetErrorMode
      Src: /src/clamav/libclamunrar/rar.cpp:24,1
    - Dst: CommandData::CommandData
      Src: /src/clamav/libclamunrar/rar.cpp:38,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/rar.cpp:40,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/rar.cpp:40,1
    - Dst: CommandData*::IsSwitch
      Src: /src/clamav/libclamunrar/rar.cpp:42,1
    - Dst: CommandData*::OutHelp
      Src: /src/clamav/libclamunrar/rar.cpp:52,1
    - Dst: CommandData*::AddArcName
      Src: /src/clamav/libclamunrar/rar.cpp:56,1
    - Dst: CommandData*::ParseDone
      Src: /src/clamav/libclamunrar/rar.cpp:57,1
    - Dst: CommandData*::ParseCommandLine
      Src: /src/clamav/libclamunrar/rar.cpp:60,1
    - Dst: CommandData*::ReadConfig
      Src: /src/clamav/libclamunrar/rar.cpp:63,1
    - Dst: CommandData*::ParseEnvVar
      Src: /src/clamav/libclamunrar/rar.cpp:64,1
    - Dst: CommandData*::ParseCommandLine
      Src: /src/clamav/libclamunrar/rar.cpp:66,1
    - Dst: ShutdownCheckAnother
      Src: /src/clamav/libclamunrar/rar.cpp:72,1
    - Dst: uiInit
      Src: /src/clamav/libclamunrar/rar.cpp:75,1
    - Dst: InitLogOptions
      Src: /src/clamav/libclamunrar/rar.cpp:76,1
    - Dst: SetSilent
      Src: /src/clamav/libclamunrar/rar.cpp:77,1
    - Dst: CommandData*::OutTitle
      Src: /src/clamav/libclamunrar/rar.cpp:79,1
    - Dst: CommandData*::ProcessCommand
      Src: /src/clamav/libclamunrar/rar.cpp:80,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/rar.cpp:85,1
    - Dst: MemoryErrorMsg
      Src: /src/clamav/libclamunrar/rar.cpp:89,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/rar.cpp:90,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/rar.cpp:94,1
    - Dst: IsShutdownEnabled
      Src: /src/clamav/libclamunrar/rar.cpp:98,1
    - Dst: ShutdownCheckAnother
      Src: /src/clamav/libclamunrar/rar.cpp:99,1
    - Dst: Shutdown
      Src: /src/clamav/libclamunrar/rar.cpp:100,1
    - Dst: GetErrorCode
      Src: /src/clamav/libclamunrar/rar.cpp:103,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 104
      start: 4
    functionDepth: 2
    functionLinenumber: 4
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/clamav/libclamunrar/rar.cpp
    functionUses: 0
    functionsReached:
    - IsShutdownEnabled
    - CommandData*::ParseDone
    - InitLogOptions
    - SetSilent
    - CommandData*::ReadConfig
    - ShutdownCheckAnother
    - CommandData*::ParseCommandLine
    - CommandData::CommandData
    - CommandData*::OutHelp
    - Shutdown
    - CommandData*::AddArcName
    - GetModuleFileName
    - wcsncpyz
    - CommandData*::ParseEnvVar
    - GetErrorCode
    - setlocale
    - CommandData*::OutTitle
    - SetErrorMode
    - SetErrorCode
    - CommandData*::ProcessCommand
    - uiInit
    - ASIZE
    - MemoryErrorMsg
    - CharToWide
    - InitConsole
    - SetSignalHandlers
    - CommandData*::IsSwitch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::Clean
      Src: /src/clamav/libclamunrar/errhnd.cpp:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: ErrorHandler::ErrorHandler
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - ErrorHandler::Clean
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::ErrorHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: ErrorHandler::Clean
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::Clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::MemoryErrorMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:24,1
    - Dst: ErrorHandler::Exit
      Src: /src/clamav/libclamunrar/errhnd.cpp: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: ErrorHandler::MemoryError
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - ErrorHandler::MemoryErrorMsg
    - ErrorHandler::Exit
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::MemoryError()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::OpenErrorMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:32,1
    - Dst: ErrorHandler::Exit
      Src: /src/clamav/libclamunrar/errhnd.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: ErrorHandler::OpenError
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - ErrorHandler::Exit
    - ErrorHandler::OpenErrorMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::OpenError(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:42,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:43,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: ErrorHandler::CloseError
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::CloseError(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::ReadErrorMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:57,1
    - Dst: ErrorHandler::Exit
      Src: /src/clamav/libclamunrar/errhnd.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: ErrorHandler::ReadError
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - ErrorHandler::Exit
    - ErrorHandler::ReadErrorMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::ReadError(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:67,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:71,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:72,1
    - Dst: uiAskRepeatRead
      Src: /src/clamav/libclamunrar/errhnd.cpp:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - FileName
    - Ignore
    - Retry
    - Quit
    argTypes:
    - wchar*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 88
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 88
    functionName: ErrorHandler::AskRepeatRead
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    - ErrorHandler::SysErrMsg
    - uiAskRepeatRead
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::AskRepeatRead(const wchar *FileName,bool &Ignore,bool
      &Retry,bool &Quit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::WriteErrorMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:94,1
    - Dst: ErrorHandler::Exit
      Src: /src/clamav/libclamunrar/errhnd.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ArcName
    - FileName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 99
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 99
    functionName: ErrorHandler::WriteError
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - ErrorHandler::WriteErrorMsg
    - ErrorHandler::Exit
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::WriteError(const wchar *ArcName,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:105,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:106,1
    - Dst: ErrorHandler::Exit
      Src: /src/clamav/libclamunrar/errhnd.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: ErrorHandler::WriteErrorFAT
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - ErrorHandler::Exit
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::WriteErrorFAT(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - FileName
    - DiskFull
    argTypes:
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: ErrorHandler::AskRepeatWrite
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: bool
    signature: bool ErrorHandler::AskRepeatWrite(const wchar *FileName,bool DiskFull)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:136,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:137,1
    - Dst: ErrorHandler::Exit
      Src: /src/clamav/libclamunrar/errhnd.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: ErrorHandler::SeekError
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - ErrorHandler::Exit
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::SeekError(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/libclamunrar/errhnd.cpp:148,1
    - Dst: vswprintf
      Src: /src/clamav/libclamunrar/errhnd.cpp:150,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/errhnd.cpp:150,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:151,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:152,1
    - Dst: va_end
      Src: /src/clamav/libclamunrar/errhnd.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: ErrorHandler::GeneralErrMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - vswprintf
    - va_end
    - ASIZE
    - uiMsg
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::GeneralErrMsg(const wchar *fmt,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:159,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: ErrorHandler::MemoryErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 1
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::MemoryErrorMsg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::OpenErrorMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: ErrorHandler::OpenErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 2
    functionsReached:
    - ErrorHandler::OpenErrorMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::OpenErrorMsg(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:172,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:173,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:174,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/errhnd.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ArcName
    - FileName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: ErrorHandler::OpenErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 2
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    - ErrorHandler::SysErrMsg
    - Wait
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::OpenErrorMsg(const wchar *ArcName,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::CreateErrorMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: ErrorHandler::CreateErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 1
    functionsReached:
    - ErrorHandler::CreateErrorMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::CreateErrorMsg(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:190,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:191,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ArcName
    - FileName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: ErrorHandler::CreateErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 1
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::CreateErrorMsg(const wchar *ArcName,const wchar
      *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::ReadErrorMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - FileName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: ErrorHandler::ReadErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 2
    functionsReached:
    - ErrorHandler::ReadErrorMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::ReadErrorMsg(const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:204,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:205,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ArcName
    - FileName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: ErrorHandler::ReadErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 2
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::ReadErrorMsg(const wchar *ArcName,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:212,1
    - Dst: ErrorHandler::SysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:213,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ArcName
    - FileName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: ErrorHandler::WriteErrorMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 1
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    - ErrorHandler::SysErrMsg
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::WriteErrorMsg(const wchar *ArcName,const wchar *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:220,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ArcName
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: ErrorHandler::ArcBrokenMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::ArcBrokenMsg(const wchar *ArcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:227,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ArcName
    - FileName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: ErrorHandler::ChecksumFailedMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::ChecksumFailedMsg(const wchar *ArcName,const wchar
      *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:234,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ArcName
    - FileName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: ErrorHandler::UnknownMethodMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - uiMsg
    - ErrorHandler::SetErrorCode
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::UnknownMethodMsg(const wchar *ArcName,const wchar
      *FileName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiAlarm
      Src: /src/clamav/libclamunrar/errhnd.cpp:241,1
    - Dst: ErrorHandler::Throw
      Src: /src/clamav/libclamunrar/errhnd.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ExitCode
    argTypes:
    - RAR_EXIT
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: ErrorHandler::Exit
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 6
    functionsReached:
    - ErrorHandler::Throw
    - uiAlarm
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::Exit(RAR_EXIT ExitCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - Code
    argTypes:
    - RAR_EXIT
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: ErrorHandler::SetErrorCode
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::SetErrorCode(RAR_EXIT Code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetDisableShutdown
      Src: /src/clamav/libclamunrar/errhnd.cpp:288,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/errhnd.cpp:289,1
    - Dst: St
      Src: /src/clamav/libclamunrar/errhnd.cpp:289,1
    - Dst: Sleep
      Src: /src/clamav/libclamunrar/errhnd.cpp:294,1
    - Dst: UnloadDLL
      Src: /src/clamav/libclamunrar/errhnd.cpp:296,1
    - Dst: exit
      Src: /src/clamav/libclamunrar/errhnd.cpp:298,1
    - Dst: exit
      Src: /src/clamav/libclamunrar/errhnd.cpp:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - SigType
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 315
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 315
    functionName: _stdfunction::ProcessSignal
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - St
    - exit
    - UnloadDLL
    - Sleep
    - SetDisableShutdown
    - mprintf
    linkageType: ''
    returnType: void
    signature: void _stdfunction ProcessSignal(int SigType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetConsoleCtrlHandler
      Src: /src/clamav/libclamunrar/errhnd.cpp:322,1
    - Dst: signal
      Src: /src/clamav/libclamunrar/errhnd.cpp:324,1
    - Dst: signal
      Src: /src/clamav/libclamunrar/errhnd.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - Enable
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: ErrorHandler::SetSignalHandlers
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - signal
    - SetConsoleCtrlHandler
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::SetSignalHandlers(bool Enable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/errhnd.cpp:337,1
    - Dst: St
      Src: /src/clamav/libclamunrar/errhnd.cpp:337,1
    - Dst: ErrorHandler::SetErrorCode
      Src: /src/clamav/libclamunrar/errhnd.cpp:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - Code
    argTypes:
    - RAR_EXIT
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: ErrorHandler::Throw
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 1
    functionsReached:
    - St
    - ErrorHandler::SetErrorCode
    - mprintf
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::Throw(RAR_EXIT Code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessage
      Src: /src/clamav/libclamunrar/errhnd.cpp:350,1
    - Dst: MAKELANGID
      Src: /src/clamav/libclamunrar/errhnd.cpp:351,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/errhnd.cpp:361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - Msg
    - Size
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 368
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 368
    functionName: ErrorHandler::GetSysErrMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - MAKELANGID
    - CharToWide
    - FormatMessage
    linkageType: ''
    returnType: bool
    signature: bool ErrorHandler::GetSysErrMsg(wchar *Msg,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorHandler::GetSysErrMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:375,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/errhnd.cpp:375,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/errhnd.cpp:385,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/errhnd.cpp:387,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:393,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/errhnd.cpp:399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 403
    functionName: ErrorHandler::SysErrMsg
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 10
    functionsReached:
    - ASIZE
    - ErrorHandler::GetSysErrMsg
    - uiMsg
    - wcschr
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::SysErrMsg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/errhnd.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: ErrorHandler::GetSystemErrorCode
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int ErrorHandler::GetSystemErrorCode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetLastError
      Src: /src/clamav/libclamunrar/errhnd.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Code
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 423
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 423
    functionName: ErrorHandler::SetSystemErrorCode
    functionSourceFile: /src/clamav/libclamunrar/errhnd.cpp
    functionUses: 0
    functionsReached:
    - SetLastError
    linkageType: ''
    returnType: void
    signature: void ErrorHandler::SetSystemErrorCode(int Code)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - SleepTime
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 8
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 8
    functionName: InitSystemOptions
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitSystemOptions(int SleepTime)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetPriorityClass
      Src: /src/clamav/libclamunrar/system.cpp:58,1
    - Dst: GetCurrentProcess
      Src: /src/clamav/libclamunrar/system.cpp:58,1
    - Dst: SetThreadPriority
      Src: /src/clamav/libclamunrar/system.cpp:59,1
    - Dst: GetCurrentThread
      Src: /src/clamav/libclamunrar/system.cpp:59,1
    - Dst: ThreadPool::SetPriority
      Src: /src/clamav/libclamunrar/system.cpp:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - Priority
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 66
    functionName: SetPriority
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 2
    functionsReached:
    - SetThreadPriority
    - ThreadPool::SetPriority
    - GetCurrentProcess
    - SetPriorityClass
    - GetCurrentThread
    linkageType: ''
    returnType: void
    signature: void SetPriority(int Priority)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/clamav/libclamunrar/system.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: MonoClock
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 1
    functionsReached:
    - clock
    linkageType: ''
    returnType: clock_t
    signature: clock_t MonoClock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Exit
      Src: /src/clamav/libclamunrar/system.cpp:83,1
    - Dst: MonoClock
      Src: /src/clamav/libclamunrar/system.cpp:87,1
    - Dst: MonoClock
      Src: /src/clamav/libclamunrar/system.cpp:88,1
    - Dst: Sleep
      Src: /src/clamav/libclamunrar/system.cpp:90,1
    - Dst: MonoClock
      Src: /src/clamav/libclamunrar/system.cpp:91,1
    - Dst: SetThreadExecutionState
      Src: /src/clamav/libclamunrar/system.cpp:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 99
    functionName: Wait
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 8
    functionsReached:
    - SetThreadExecutionState
    - Exit
    - MonoClock
    - Sleep
    linkageType: ''
    returnType: void
    signature: void Wait()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenProcessToken
      Src: /src/clamav/libclamunrar/system.cpp:109,1
    - Dst: GetCurrentProcess
      Src: /src/clamav/libclamunrar/system.cpp:109,1
    - Dst: LookupPrivilegeValue
      Src: /src/clamav/libclamunrar/system.cpp:111,1
    - Dst: AdjustTokenPrivileges
      Src: /src/clamav/libclamunrar/system.cpp:115,1
    - Dst: ExitWindowsEx
      Src: /src/clamav/libclamunrar/system.cpp:118,1
    - Dst: SetSuspendState
      Src: /src/clamav/libclamunrar/system.cpp:120,1
    - Dst: SetSuspendState
      Src: /src/clamav/libclamunrar/system.cpp:122,1
    - Dst: ExitWindowsEx
      Src: /src/clamav/libclamunrar/system.cpp:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - POWER_MODE
    constantsTouched: []
    func_position:
      end: 125
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 125
    functionName: Shutdown
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 2
    functionsReached:
    - GetCurrentProcess
    - ExitWindowsEx
    - SetSuspendState
    - OpenProcessToken
    - AdjustTokenPrivileges
    - LookupPrivilegeValue
    linkageType: ''
    returnType: void
    signature: void Shutdown(POWER_MODE Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateEvent
      Src: /src/clamav/libclamunrar/system.cpp:134,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/system.cpp:138,1
    - Dst: CreateEvent
      Src: /src/clamav/libclamunrar/system.cpp:141,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/system.cpp:142,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/system.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - Open
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 147
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 147
    functionName: ShutdownCheckAnother
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 1
    functionsReached:
    - CreateEvent
    - CloseHandle
    - GetLastError
    linkageType: ''
    returnType: bool
    signature: bool ShutdownCheckAnother(bool Open)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemDirectory
      Src: /src/clamav/libclamunrar/system.cpp:159,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/system.cpp:159,1
    - Dst: MakeName
      Src: /src/clamav/libclamunrar/system.cpp:161,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/system.cpp:161,1
    - Dst: LoadLibrary
      Src: /src/clamav/libclamunrar/system.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: LoadSysLibrary
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - MakeName
    - GetSystemDirectory
    - LoadLibrary
    linkageType: ''
    returnType: HMODULE
    signature: HMODULE LoadSysLibrary(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AllocateAndInitializeSid
      Src: /src/clamav/libclamunrar/system.cpp:170,1
    - Dst: CheckTokenMembership
      Src: /src/clamav/libclamunrar/system.cpp:174,1
    - Dst: FreeSid
      Src: /src/clamav/libclamunrar/system.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: IsUserAdmin
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 3
    functionsReached:
    - CheckTokenMembership
    - FreeSid
    - AllocateAndInitializeSid
    linkageType: ''
    returnType: bool
    signature: bool IsUserAdmin()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/clamav/libclamunrar/system.cpp:190,1
    - Dst: __cpuid
      Src: /src/clamav/libclamunrar/system.cpp:197,1
    - Dst: __cpuid
      Src: /src/clamav/libclamunrar/system.cpp:203,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 214
    functionName: GetSSEVersion
    functionSourceFile: /src/clamav/libclamunrar/system.cpp
    functionUses: 0
    functionsReached:
    - __cpuid
    linkageType: ''
    returnType: SSE_VERSION
    signature: SSE_VERSION GetSSEVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: RawRead::GetDataPtr
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte * GetDataPtr()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: RawRead::Size
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawRead::Size
      Src: /src/clamav/libclamunrar/rawread.hpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: RawRead::PaddedSize
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 0
    functionsReached:
    - RawRead::Size
    linkageType: ''
    returnType: size_t
    signature: size_t PaddedSize()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: RawRead::DataLeft
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t DataLeft()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: RawRead::GetPos
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetPos()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Pos
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: RawRead::SetPos
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPos(size_t Pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: RawRead::Skip
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Skip(size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawRead::SetPos
      Src: /src/clamav/libclamunrar/rawread.hpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: RawRead::Rewind
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 0
    functionsReached:
    - RawRead::SetPos
    linkageType: ''
    returnType: void
    signature: void Rewind()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Crypt
    argTypes:
    - CryptData*
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: RawRead::SetCrypt
    functionSourceFile: /src/clamav/libclamunrar/rawread.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCrypt(CryptData *Crypt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ErrorHandler::GetErrorCode
    functionSourceFile: /src/clamav/libclamunrar/errhnd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RAR_EXIT
    signature: RAR_EXIT GetErrorCode()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ErrorHandler::GetErrorCount
    functionSourceFile: /src/clamav/libclamunrar/errhnd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint GetErrorCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: ErrorHandler::SetSilent
    functionSourceFile: /src/clamav/libclamunrar/errhnd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSilent(bool Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: ErrorHandler::SetDisableShutdown
    functionSourceFile: /src/clamav/libclamunrar/errhnd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetDisableShutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: ErrorHandler::IsShutdownEnabled
    functionSourceFile: /src/clamav/libclamunrar/errhnd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsShutdownEnabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: byte::byte
      Src: /src/clamav/libclamunrar/getbits.cpp:13,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/getbits.cpp:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - AllocBuffer
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 21
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 21
    functionName: BitInput::BitInput
    functionSourceFile: /src/clamav/libclamunrar/getbits.cpp
    functionUses: 0
    functionsReached:
    - memset
    - byte::byte
    linkageType: ''
    returnType: void
    signature: void BitInput::BitInput(bool AllocBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: BitInput::~BitInput()
    functionSourceFile: /src/clamav/libclamunrar/getbits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitInput::~BitInput()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitInput::addbits
      Src: /src/clamav/libclamunrar/getbits.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Bits
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: BitInput::faddbits
    functionSourceFile: /src/clamav/libclamunrar/getbits.cpp
    functionUses: 3
    functionsReached:
    - BitInput::addbits
    linkageType: ''
    returnType: void
    signature: void BitInput::faddbits(uint Bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitInput::getbits
      Src: /src/clamav/libclamunrar/getbits.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: BitInput::fgetbits
    functionSourceFile: /src/clamav/libclamunrar/getbits.cpp
    functionUses: 4
    functionsReached:
    - BitInput::getbits
    linkageType: ''
    returnType: uint
    signature: uint BitInput::fgetbits()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - Buf
    argTypes:
    - byte*
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: BitInput::SetExternalBuffer
    functionSourceFile: /src/clamav/libclamunrar/getbits.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitInput::SetExternalBuffer(byte *Buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' t1'
    - ' t2'
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 12
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: _PPMD_SWAP
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PPMD_SWAP(T& t1,T& t2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ModelPPM*::SubAlloc::AllocContext
      Src: /src/clamav/libclamunrar/model.cpp:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - Model
    - pStats
    - ' FirstState'
    argTypes:
    - ModelPPM*
    - RARPPM_STATE*
    - RARPPM_STATE
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: RARPPM_CONTEXT::createChild
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - ModelPPM*::SubAlloc::AllocContext
    linkageType: ''
    returnType: RARPPM_CONTEXT
    signature: "RARPPM_CONTEXT * RARPPM_CONTEXT::createChild(ModelPPM *Model,RARPPM_STATE*
      pStats,\n                                             RARPPM_STATE& FirstState)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: ModelPPM::ModelPPM
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ModelPPM::ModelPPM()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/model.cpp:41,1
    - Dst: InitSubAllocator
      Src: /src/clamav/libclamunrar/model.cpp:42,1
    - Dst: AllocContext
      Src: /src/clamav/libclamunrar/model.cpp:44,1
    - Dst: std::bad_alloc
      Src: /src/clamav/libclamunrar/model.cpp:46,1
    - Dst: AllocUnits
      Src: /src/clamav/libclamunrar/model.cpp:50,1
    - Dst: std::bad_alloc
      Src: /src/clamav/libclamunrar/model.cpp:52,1
    - Dst: init
      Src: /src/clamav/libclamunrar/model.cpp:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: ModelPPM::RestartModelRare
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - memset
    - AllocUnits
    - InitSubAllocator
    - AllocContext
    - init
    - std::bad_alloc
    linkageType: ''
    returnType: void
    signature: void ModelPPM::RestartModelRare()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ModelPPM::RestartModelRare
      Src: /src/clamav/libclamunrar/model.cpp:96,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/model.cpp:99,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/model.cpp:100,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/model.cpp:112,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/model.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - MaxOrder
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 116
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 116
    functionName: ModelPPM::StartModelRare
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - ModelPPM::RestartModelRare
    - memset
    linkageType: ''
    returnType: void
    signature: void ModelPPM::StartModelRare(int MaxOrder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _PPMD_SWAP
      Src: /src/clamav/libclamunrar/model.cpp:124,1
    - Dst: ModelPPM*::SubAlloc::FreeUnits
      Src: /src/clamav/libclamunrar/model.cpp:159,1
    - Dst: ModelPPM*::SubAlloc::ShrinkUnits
      Src: /src/clamav/libclamunrar/model.cpp:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - Model
    argTypes:
    - ModelPPM*
    constantsTouched: []
    func_position:
      end: 168
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 168
    functionName: RARPPM_CONTEXT::rescale
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - _PPMD_SWAP
    - ModelPPM*::SubAlloc::FreeUnits
    - ModelPPM*::SubAlloc::ShrinkUnits
    linkageType: ''
    returnType: void
    signature: void RARPPM_CONTEXT::rescale(ModelPPM *Model)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/model.cpp:211,1
    - Dst: RARPPM_CONTEXT*::createChild
      Src: /src/clamav/libclamunrar/model.cpp:238,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - Skip
    - p1
    argTypes:
    - bool
    - RARPPM_STATE*
    constantsTouched: []
    func_position:
      end: 243
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 243
    functionName: ModelPPM::CreateSuccessors
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - RARPPM_CONTEXT*::createChild
    linkageType: ''
    returnType: RARPPM_CONTEXT
    signature: RARPPM_CONTEXT * ModelPPM::CreateSuccessors(bool Skip,RARPPM_STATE*
      p1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _PPMD_SWAP
      Src: /src/clamav/libclamunrar/model.cpp:263,1
    - Dst: ModelPPM::CreateSuccessors
      Src: /src/clamav/libclamunrar/model.cpp:281,1
    - Dst: ModelPPM::CreateSuccessors
      Src: /src/clamav/libclamunrar/model.cpp:293,1
    - Dst: ExpandUnits
      Src: /src/clamav/libclamunrar/model.cpp:313,1
    - Dst: AllocUnits
      Src: /src/clamav/libclamunrar/model.cpp:321,1
    - Dst: ModelPPM::RestartModelRare
      Src: /src/clamav/libclamunrar/model.cpp:353,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 355
    functionName: ModelPPM::UpdateModel
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - ModelPPM::RestartModelRare
    - ExpandUnits
    - AllocUnits
    - _PPMD_SWAP
    - ModelPPM::CreateSuccessors
    linkageType: ''
    returnType: void
    signature: void ModelPPM::UpdateModel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ModelPPM*::Coder::GetCurrentShiftCount
      Src: /src/clamav/libclamunrar/model.cpp:372,1
    - Dst: GET_SHORT16
      Src: /src/clamav/libclamunrar/model.cpp:378,1
    - Dst: GET_MEAN
      Src: /src/clamav/libclamunrar/model.cpp:378,1
    - Dst: GET_SHORT16
      Src: /src/clamav/libclamunrar/model.cpp:385,1
    - Dst: GET_MEAN
      Src: /src/clamav/libclamunrar/model.cpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - Model
    argTypes:
    - ModelPPM*
    constantsTouched: []
    func_position:
      end: 393
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 393
    functionName: RARPPM_CONTEXT::decodeBinSymbol
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - ModelPPM*::Coder::GetCurrentShiftCount
    - GET_MEAN
    - GET_SHORT16
    linkageType: ''
    returnType: void
    signature: void RARPPM_CONTEXT::decodeBinSymbol(ModelPPM *Model)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _PPMD_SWAP
      Src: /src/clamav/libclamunrar/model.cpp:402,1
    - Dst: RARPPM_CONTEXT::rescale
      Src: /src/clamav/libclamunrar/model.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - Model
    - p
    argTypes:
    - ModelPPM*
    - RARPPM_STATE*
    constantsTouched: []
    func_position:
      end: 407
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 407
    functionName: RARPPM_CONTEXT::update1
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - _PPMD_SWAP
    - RARPPM_CONTEXT::rescale
    linkageType: ''
    returnType: void
    signature: void RARPPM_CONTEXT::update1(ModelPPM *Model,RARPPM_STATE* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RARPPM_CONTEXT::rescale
      Src: /src/clamav/libclamunrar/model.cpp:427,1
    - Dst: RARPPM_CONTEXT::update1
      Src: /src/clamav/libclamunrar/model.cpp:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - Model
    argTypes:
    - ModelPPM*
    constantsTouched: []
    func_position:
      end: 454
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 454
    functionName: RARPPM_CONTEXT::decodeSymbol1
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - RARPPM_CONTEXT::update1
    - RARPPM_CONTEXT::rescale
    linkageType: ''
    returnType: bool
    signature: bool RARPPM_CONTEXT::decodeSymbol1(ModelPPM *Model)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RARPPM_CONTEXT::rescale
      Src: /src/clamav/libclamunrar/model.cpp:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - Model
    - p
    argTypes:
    - ModelPPM*
    - RARPPM_STATE*
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: RARPPM_CONTEXT::update2
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - RARPPM_CONTEXT::rescale
    linkageType: ''
    returnType: void
    signature: void RARPPM_CONTEXT::update2(ModelPPM *Model,RARPPM_STATE* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RARPPM_SEE2_CONTEXT*::getMean
      Src: /src/clamav/libclamunrar/model.cpp:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Model
    - Diff
    argTypes:
    - ModelPPM*
    - int
    constantsTouched: []
    func_position:
      end: 485
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 485
    functionName: RARPPM_CONTEXT::makeEscFreq2
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - RARPPM_SEE2_CONTEXT*::getMean
    linkageType: ''
    returnType: RARPPM_SEE2_CONTEXT
    signature: RARPPM_SEE2_CONTEXT * RARPPM_CONTEXT::makeEscFreq2(ModelPPM *Model,int
      Diff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RARPPM_CONTEXT::makeEscFreq2
      Src: /src/clamav/libclamunrar/model.cpp:493,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/model.cpp:506,1
    - Dst: ModelPPM*::Coder::GetCurrentCount
      Src: /src/clamav/libclamunrar/model.cpp:512,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/model.cpp:522,1
    - Dst: RARPPM_SEE2_CONTEXT*::update
      Src: /src/clamav/libclamunrar/model.cpp:527,1
    - Dst: RARPPM_CONTEXT::update2
      Src: /src/clamav/libclamunrar/model.cpp:528,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/model.cpp:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - Model
    argTypes:
    - ModelPPM*
    constantsTouched: []
    func_position:
      end: 549
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 549
    functionName: RARPPM_CONTEXT::decodeSymbol2
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - ModelPPM*::Coder::GetCurrentCount
    - RARPPM_CONTEXT::update2
    - RARPPM_SEE2_CONTEXT*::update
    - RARPPM_CONTEXT::makeEscFreq2
    - ASIZE
    linkageType: ''
    returnType: bool
    signature: bool RARPPM_CONTEXT::decodeSymbol2(ModelPPM *Model)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/model.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: ModelPPM::ClearMask
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ModelPPM::ClearMask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StopSubAllocator
      Src: /src/clamav/libclamunrar/model.cpp:565,1
    - Dst: StartSubAllocator
      Src: /src/clamav/libclamunrar/model.cpp:566,1
    - Dst: ModelPPM::StartModelRare
      Src: /src/clamav/libclamunrar/model.cpp:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: ModelPPM::CleanUp
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - ModelPPM::StartModelRare
    - StartSubAllocator
    - StopSubAllocator
    linkageType: ''
    returnType: void
    signature: void ModelPPM::CleanUp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack*::GetChar
      Src: /src/clamav/libclamunrar/model.cpp:578,1
    - Dst: GetAllocatedMemory
      Src: /src/clamav/libclamunrar/model.cpp:580,1
    - Dst: Unpack*::GetChar
      Src: /src/clamav/libclamunrar/model.cpp:583,1
    - Dst: InitDecoder
      Src: /src/clamav/libclamunrar/model.cpp:584,1
    - Dst: StopSubAllocator
      Src: /src/clamav/libclamunrar/model.cpp:592,1
    - Dst: StartSubAllocator
      Src: /src/clamav/libclamunrar/model.cpp:595,1
    - Dst: ModelPPM::StartModelRare
      Src: /src/clamav/libclamunrar/model.cpp:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - UnpackRead
    - EscChar
    argTypes:
    - Unpack*
    - int
    constantsTouched: []
    func_position:
      end: 599
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 599
    functionName: ModelPPM::DecodeInit
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - Unpack*::GetChar
    - GetAllocatedMemory
    - ModelPPM::StartModelRare
    - StopSubAllocator
    - InitDecoder
    - StartSubAllocator
    linkageType: ''
    returnType: bool
    signature: bool ModelPPM::DecodeInit(Unpack *UnpackRead,int &EscChar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decodeSymbol1
      Src: /src/clamav/libclamunrar/model.cpp:610,1
    - Dst: decodeBinSymbol
      Src: /src/clamav/libclamunrar/model.cpp:614,1
    - Dst: Decode
      Src: /src/clamav/libclamunrar/model.cpp:615,1
    - Dst: ARI_DEC_NORMALIZE
      Src: /src/clamav/libclamunrar/model.cpp:618,1
    - Dst: decodeSymbol2
      Src: /src/clamav/libclamunrar/model.cpp:626,1
    - Dst: Decode
      Src: /src/clamav/libclamunrar/model.cpp:628,1
    - Dst: ModelPPM::UpdateModel
      Src: /src/clamav/libclamunrar/model.cpp:635,1
    - Dst: ModelPPM::ClearMask
      Src: /src/clamav/libclamunrar/model.cpp:637,1
    - Dst: ARI_DEC_NORMALIZE
      Src: /src/clamav/libclamunrar/model.cpp:639,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 641
    functionName: ModelPPM::DecodeChar
    functionSourceFile: /src/clamav/libclamunrar/model.cpp
    functionUses: 0
    functionsReached:
    - Decode
    - ModelPPM::ClearMask
    - decodeSymbol1
    - ModelPPM::UpdateModel
    - decodeSymbol2
    - ARI_DEC_NORMALIZE
    - decodeBinSymbol
    linkageType: ''
    returnType: int
    signature: int ModelPPM::DecodeChar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/headers.cpp:5,1
    - Dst: FragmentedWindow::Reset
      Src: /src/clamav/libclamunrar/headers.cpp:6,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/headers.cpp:7,1
    - Dst: FileHeader::Reset
      Src: /src/clamav/libclamunrar/headers.cpp:8,1
    - Dst: FileHeader::Reset
      Src: /src/clamav/libclamunrar/headers.cpp:9,1
    - Dst: FileHeader::Reset
      Src: /src/clamav/libclamunrar/headers.cpp:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - SubDataSize
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 37
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 37
    functionName: FileHeader::Reset
    functionSourceFile: /src/clamav/libclamunrar/headers.cpp
    functionUses: 1
    functionsReached:
    - Init
    - FileHeader::Reset
    - FragmentedWindow::Reset
    - Alloc
    linkageType: ''
    returnType: void
    signature: void FileHeader::Reset(size_t SubDataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/clamav/libclamunrar/headers.cpp:42,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/headers.cpp:43,1
    - Dst: CleanData
      Src: /src/clamav/libclamunrar/headers.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hd
    argTypes:
    - FileHeader
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: '& FileHeader::operator = (FileHeader &hd)'
    functionSourceFile: /src/clamav/libclamunrar/headers.cpp
    functionUses: 0
    functionsReached:
    - Reset
    - memcpy
    - CleanData
    linkageType: ''
    returnType: FileHeader
    signature: FileHeader & FileHeader::operator = (FileHeader &hd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: MainHeader::Reset
    functionSourceFile: /src/clamav/libclamunrar/headers.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MainHeader::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Archive::GetHeaderType
    functionSourceFile: /src/clamav/libclamunrar/archive.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: HEADER_TYPE
    signature: HEADER_TYPE GetHeaderType()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Archive::GetCommandData
    functionSourceFile: /src/clamav/libclamunrar/archive.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CommandData
    signature: CommandData * GetCommandData()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Archive::SetSilentOpen
    functionSourceFile: /src/clamav/libclamunrar/archive.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSilentOpen(bool Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unload
      Src: /src/clamav/libclamunrar/archive.hpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    functionName: Archive::QOpenUnload
    functionSourceFile: /src/clamav/libclamunrar/archive.hpp
    functionUses: 0
    functionsReached:
    - Unload
    linkageType: ''
    returnType: void
    signature: void QOpenUnload()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Mode
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Archive::SetProhibitQOpen
    functionSourceFile: /src/clamav/libclamunrar/archive.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetProhibitQOpen(bool Mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/clamav/libclamunrar/consio.cpp:15,1
    - Dst: GetFileType
      Src: /src/clamav/libclamunrar/consio.cpp:17,1
    - Dst: GetConsoleMode
      Src: /src/clamav/libclamunrar/consio.cpp:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - nStdHandle
    argTypes:
    - DWORD
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: IsRedirected
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 0
    functionsReached:
    - GetFileType
    - GetStdHandle
    - GetConsoleMode
    linkageType: ''
    returnType: bool
    signature: bool IsRedirected(DWORD nStdHandle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/clamav/libclamunrar/consio.cpp:28,1
    - Dst: setbuf
      Src: /src/clamav/libclamunrar/consio.cpp:29,1
    - Dst: IsRedirected
      Src: /src/clamav/libclamunrar/consio.cpp:36,1
    - Dst: IsRedirected
      Src: /src/clamav/libclamunrar/consio.cpp:37,1
    - Dst: IsRedirected
      Src: /src/clamav/libclamunrar/consio.cpp:38,1
    - Dst: _setmode
      Src: /src/clamav/libclamunrar/consio.cpp:41,1
    - Dst: _fileno
      Src: /src/clamav/libclamunrar/consio.cpp:41,1
    - Dst: _setmode
      Src: /src/clamav/libclamunrar/consio.cpp:43,1
    - Dst: _fileno
      Src: /src/clamav/libclamunrar/consio.cpp:43,1
    - Dst: isatty
      Src: /src/clamav/libclamunrar/consio.cpp:46,1
    - Dst: fileno
      Src: /src/clamav/libclamunrar/consio.cpp:46,1
    - Dst: isatty
      Src: /src/clamav/libclamunrar/consio.cpp:47,1
    - Dst: fileno
      Src: /src/clamav/libclamunrar/consio.cpp:47,1
    - Dst: isatty
      Src: /src/clamav/libclamunrar/consio.cpp:48,1
    - Dst: fileno
      Src: /src/clamav/libclamunrar/consio.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: InitConsole
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 1
    functionsReached:
    - IsRedirected
    - isatty
    - _fileno
    - fileno
    - setbuf
    - _setmode
    linkageType: ''
    returnType: void
    signature: void InitConsole()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - MsgStream
    argTypes:
    - MESSAGE_TYPE
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: SetConsoleMsgStream
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetConsoleMsgStream(MESSAGE_TYPE MsgStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RedirectCharset
    argTypes:
    - RAR_CHARSET
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: SetConsoleRedirectCharset
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetConsoleRedirectCharset(RAR_CHARSET RedirectCharset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: ProhibitConsoleInput
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ProhibitConsoleInput()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PrintfPrepareFmt
      Src: /src/clamav/libclamunrar/consio.cpp:77,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:77,1
    - Dst: GetStdHandle
      Src: /src/clamav/libclamunrar/consio.cpp:82,1
    - Dst: vswprintf
      Src: /src/clamav/libclamunrar/consio.cpp:83,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:83,1
    - Dst: WriteFile
      Src: /src/clamav/libclamunrar/consio.cpp:86,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/consio.cpp:86,1
    - Dst: WideToUtf
      Src: /src/clamav/libclamunrar/consio.cpp:92,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:92,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/consio.cpp:94,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:94,1
    - Dst: CharToOemA
      Src: /src/clamav/libclamunrar/consio.cpp:96,1
    - Dst: WriteFile
      Src: /src/clamav/libclamunrar/consio.cpp:100,1
    - Dst: strlen
      Src: /src/clamav/libclamunrar/consio.cpp:100,1
    - Dst: vswprintf
      Src: /src/clamav/libclamunrar/consio.cpp:106,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:106,1
    - Dst: GetStdHandle
      Src: /src/clamav/libclamunrar/consio.cpp:107,1
    - Dst: WriteConsole
      Src: /src/clamav/libclamunrar/consio.cpp:109,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/consio.cpp:109,1
    - Dst: vfwprintf
      Src: /src/clamav/libclamunrar/consio.cpp:111,1
    - Dst: fflush
      Src: /src/clamav/libclamunrar/consio.cpp:113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - dest
    - fmt
    - arglist
    argTypes:
    - FILE*
    - wchar*
    - va_list
    constantsTouched: []
    func_position:
      end: 115
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 115
    functionName: cvt_wprintf
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 0
    functionsReached:
    - WriteConsole
    - strlen
    - CharToOemA
    - GetStdHandle
    - WideToChar
    - WriteFile
    - PrintfPrepareFmt
    - vswprintf
    - WideToUtf
    - fflush
    - ASIZE
    - vfwprintf
    - wcslen
    linkageType: ''
    returnType: void
    signature: void cvt_wprintf(FILE *dest,const wchar *fmt,va_list arglist)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/clamav/libclamunrar/consio.cpp:123,1
    - Dst: va_start
      Src: /src/clamav/libclamunrar/consio.cpp:126,1
    - Dst: cvt_wprintf
      Src: /src/clamav/libclamunrar/consio.cpp:128,1
    - Dst: va_end
      Src: /src/clamav/libclamunrar/consio.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: mprintf
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 45
    functionsReached:
    - va_start
    - cvt_wprintf
    - va_end
    - fflush
    linkageType: ''
    returnType: void
    signature: void mprintf(const wchar *fmt,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/clamav/libclamunrar/consio.cpp:140,1
    - Dst: va_start
      Src: /src/clamav/libclamunrar/consio.cpp:143,1
    - Dst: cvt_wprintf
      Src: /src/clamav/libclamunrar/consio.cpp:144,1
    - Dst: va_end
      Src: /src/clamav/libclamunrar/consio.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: eprintf
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 6
    functionsReached:
    - va_start
    - cvt_wprintf
    - va_end
    - fflush
    linkageType: ''
    returnType: void
    signature: void eprintf(const wchar *fmt,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/consio.cpp:157,1
    - Dst: St
      Src: /src/clamav/libclamunrar/consio.cpp:157,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/consio.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: QuitIfInputProhibited
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 0
    functionsReached:
    - St
    - Exit
    - mprintf
    linkageType: ''
    returnType: void
    signature: void QuitIfInputProhibited()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QuitIfInputProhibited
      Src: /src/clamav/libclamunrar/consio.cpp:167,1
    - Dst: getwstr
      Src: /src/clamav/libclamunrar/consio.cpp:169,1
    - Dst: GetStdHandle
      Src: /src/clamav/libclamunrar/consio.cpp:173,1
    - Dst: GetConsoleMode
      Src: /src/clamav/libclamunrar/consio.cpp:175,1
    - Dst: SetConsoleMode
      Src: /src/clamav/libclamunrar/consio.cpp:176,1
    - Dst: ReadConsole
      Src: /src/clamav/libclamunrar/consio.cpp:180,1
    - Dst: SetConsoleMode
      Src: /src/clamav/libclamunrar/consio.cpp:182,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/consio.cpp:189,1
    - Dst: ReadConsole
      Src: /src/clamav/libclamunrar/consio.cpp:195,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:195,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/consio.cpp:197,1
    - Dst: fgets
      Src: /src/clamav/libclamunrar/consio.cpp:204,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:204,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/consio.cpp:206,1
    - Dst: getpassphrase
      Src: /src/clamav/libclamunrar/consio.cpp:206,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:206,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/consio.cpp:208,1
    - Dst: getpass
      Src: /src/clamav/libclamunrar/consio.cpp:208,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:208,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/consio.cpp:210,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/consio.cpp:211,1
    - Dst: RemoveLF
      Src: /src/clamav/libclamunrar/consio.cpp:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - Str
    - MaxLength
    argTypes:
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 216
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 216
    functionName: GetPasswordText
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 0
    functionsReached:
    - CharToWide
    - ReadConsole
    - GetStdHandle
    - GetConsoleMode
    - QuitIfInputProhibited
    - getpassphrase
    - getwstr
    - getpass
    - RemoveLF
    - ASIZE
    - SetConsoleMode
    - cleandata
    - strncpyz
    - fgets
    - wcschr
    linkageType: ''
    returnType: void
    signature: void GetPasswordText(wchar *Str,uint MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiAlarm
      Src: /src/clamav/libclamunrar/consio.cpp:224,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:230,1
    - Dst: St
      Src: /src/clamav/libclamunrar/consio.cpp:230,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:232,1
    - Dst: St
      Src: /src/clamav/libclamunrar/consio.cpp:232,1
    - Dst: GetPasswordText
      Src: /src/clamav/libclamunrar/consio.cpp:235,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:235,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/consio.cpp:238,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/consio.cpp:241,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:245,1
    - Dst: St
      Src: /src/clamav/libclamunrar/consio.cpp:245,1
    - Dst: GetPasswordText
      Src: /src/clamav/libclamunrar/consio.cpp:247,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:247,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/consio.cpp:248,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:250,1
    - Dst: St
      Src: /src/clamav/libclamunrar/consio.cpp:250,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/consio.cpp:251,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/consio.cpp:252,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/consio.cpp:255,1
    - Dst: SecPassword*::Set
      Src: /src/clamav/libclamunrar/consio.cpp:257,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/consio.cpp:258,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - Type
    - FileName
    - Password
    argTypes:
    - UIPASSWORD_TYPE
    - wchar*
    - SecPassword*
    constantsTouched: []
    func_position:
      end: 262
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 262
    functionName: GetConsolePassword
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 1
    functionsReached:
    - SecPassword*::Set
    - uiAlarm
    - St
    - GetPasswordText
    - wcscmp
    - ASIZE
    - eprintf
    - uiMsg
    - cleandata
    - wcslen
    linkageType: ''
    returnType: bool
    signature: bool GetConsolePassword(UIPASSWORD_TYPE Type,const wchar *FileName,SecPassword
      *Password)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/clamav/libclamunrar/consio.cpp:270,1
    - Dst: QuitIfInputProhibited
      Src: /src/clamav/libclamunrar/consio.cpp:272,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/consio.cpp:283,1
    - Dst: File::SetHandleType
      Src: /src/clamav/libclamunrar/consio.cpp:284,1
    - Dst: File::SetLineInputMode
      Src: /src/clamav/libclamunrar/consio.cpp:285,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/consio.cpp:291,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/consio.cpp:300,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/consio.cpp:301,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/consio.cpp:301,1
    - Dst: ReadConsole
      Src: /src/clamav/libclamunrar/consio.cpp:306,1
    - Dst: GetStdHandle
      Src: /src/clamav/libclamunrar/consio.cpp:306,1
    - Dst: DWORD
      Src: /src/clamav/libclamunrar/consio.cpp:306,1
    - Dst: fgetws
      Src: /src/clamav/libclamunrar/consio.cpp:311,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/consio.cpp:312,1
    - Dst: RemoveLF
      Src: /src/clamav/libclamunrar/consio.cpp:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - str
    - n
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 316
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 316
    functionName: getwstr
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 2
    functionsReached:
    - File::File
    - DWORD
    - fgetws
    - ReadConsole
    - File::SetLineInputMode
    - Exit
    - GetStdHandle
    - fflush
    - QuitIfInputProhibited
    - Array::Size
    - RemoveLF
    - cleandata
    - CharToWide
    - File::SetHandleType
    linkageType: ''
    returnType: bool
    signature: bool getwstr(wchar *str,size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiAlarm
      Src: /src/clamav/libclamunrar/consio.cpp:327,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/consio.cpp:333,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/consio.cpp:336,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:336,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/consio.cpp:337,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/consio.cpp:345,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/consio.cpp:345,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:357,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:360,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:361,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/consio.cpp:363,1
    - Dst: getwstr
      Src: /src/clamav/libclamunrar/consio.cpp:365,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/consio.cpp:365,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/consio.cpp:366,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - AskStr
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 371
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 371
    functionName: Ask
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 4
    functionsReached:
    - eprintf
    - uiAlarm
    - wcsncpyz
    - toupperw
    - getwstr
    - ASIZE
    - wcschr
    linkageType: ''
    returnType: int
    signature: int Ask(const wchar *AskStr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/consio.cpp:385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: IsCommentUnsafe
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 0
    functionsReached:
    - IsDigit
    linkageType: ''
    returnType: bool
    signature: bool IsCommentUnsafe(const wchar *Data,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsCommentUnsafe
      Src: /src/clamav/libclamunrar/consio.cpp:394,1
    - Dst: wcsncpy
      Src: /src/clamav/libclamunrar/consio.cpp:401,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/consio.cpp:403,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/consio.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - Comment
    - Size
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: OutComment
    functionSourceFile: /src/clamav/libclamunrar/consio.cpp
    functionUses: 0
    functionsReached:
    - wcsncpy
    - IsCommentUnsafe
    - mprintf
    linkageType: ''
    returnType: void
    signature: void OutComment(const wchar *Comment,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: NullToEmpty
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *NullToEmpty(const char *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: NullToEmpty
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar *NullToEmpty(const wchar *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OemToCharBuffA
      Src: /src/clamav/libclamunrar/strfn.cpp:22,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/strfn.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - Src
    - Dest
    - DestSize
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: IntToExt
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached:
    - strncpyz
    - OemToCharBuffA
    linkageType: ''
    returnType: void
    signature: void IntToExt(const char *Src,char *Dest,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/strfn.cpp:37,1
    - Dst: Array::Alloc
      Src: /src/clamav/libclamunrar/strfn.cpp:43,1
    - Dst: IntToExt
      Src: /src/clamav/libclamunrar/strfn.cpp:44,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/strfn.cpp:44,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/strfn.cpp:47,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/strfn.cpp:51,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/strfn.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - Src
    - Dest
    - DestSize
    - Encoding
    argTypes:
    - char*
    - wchar*
    - size_t
    - ACTW_ENCODING
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: ArcCharToWide
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached:
    - UtfToWide
    - Array::Alloc
    - IntToExt
    - CharToWide
    - Array::Size
    linkageType: ''
    returnType: void
    signature: void ArcCharToWide(const char *Src,wchar *Dest,size_t DestSize,ACTW_ENCODING
      Encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompareStringA
      Src: /src/clamav/libclamunrar/strfn.cpp:68,1
    - Dst: toupper
      Src: /src/clamav/libclamunrar/strfn.cpp:70,1
    - Dst: toupper
      Src: /src/clamav/libclamunrar/strfn.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: stricomp
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached:
    - CompareStringA
    - toupper
    linkageType: ''
    returnType: int
    signature: int stricomp(const char *s1,const char *s2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompareStringA
      Src: /src/clamav/libclamunrar/strfn.cpp:92,1
    - Dst: toupper
      Src: /src/clamav/libclamunrar/strfn.cpp:96,1
    - Dst: toupper
      Src: /src/clamav/libclamunrar/strfn.cpp:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: strnicomp
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached:
    - CompareStringA
    - toupper
    linkageType: ''
    returnType: int
    signature: int strnicomp(const char *s1,const char *s2,size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: RemoveEOL
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar * RemoveEOL(wchar *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: RemoveLF
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar * RemoveLF(wchar *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: etoupper
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char etoupper(unsigned char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - wchar
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: etoupperw
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar etoupperw(wchar c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: IsDigit
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDigit(int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: IsSpace
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSpace(int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: IsAlpha
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsAlpha(int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 5
    argNames:
    - Bin
    - BinSize
    - HexA
    - HexW
    - HexSize
    argTypes:
    - byte*
    - size_t
    - char*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 203
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 203
    functionName: BinToHex
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BinToHex(const byte *Bin,size_t BinSize,char *HexA,wchar *HexW,size_t
      HexSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - Number
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: GetDigits
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint GetDigits(uint Number)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - Str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: LowAscii
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool LowAscii(const char *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - Str
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: LowAscii
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool LowAscii(const wchar *Str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/strfn.cpp:245,1
    - Dst: wcsicomp
      Src: /src/clamav/libclamunrar/strfn.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: wcsicompc
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached:
    - wcscmp
    - wcsicomp
    linkageType: ''
    returnType: int
    signature: int wcsicompc(const wchar *s1,const wchar *s2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncmp
      Src: /src/clamav/libclamunrar/strfn.cpp:255,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/strfn.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: wcsnicompc
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached:
    - wcsnicomp
    - wcsncmp
    linkageType: ''
    returnType: int
    signature: int wcsnicompc(const wchar *s1,const wchar *s2,size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: strncpyz
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void strncpyz(char *dest, const char *src, size_t maxlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: wcsncpyz
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wcsncpyz(wchar *dest, const wchar *src, size_t maxlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/strfn.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: strncatz
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached:
    - strncpyz
    linkageType: ''
    returnType: void
    signature: void strncatz(char* dest, const char* src, size_t maxlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/strfn.cpp:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - src
    - maxlen
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 305
    functionName: wcsncatz
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 16
    functionsReached:
    - wcsncpyz
    linkageType: ''
    returnType: void
    signature: void wcsncatz(wchar* dest, const wchar* src, size_t maxlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - n
    - Str
    - MaxSize
    argTypes:
    - int64
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 331
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 331
    functionName: itoa
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void itoa(int64 n,char *Str,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wchar
      Src: /src/clamav/libclamunrar/strfn.cpp:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - n
    - Str
    - MaxSize
    argTypes:
    - int64
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 357
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 357
    functionName: itoa
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 3
    functionsReached:
    - wchar
    linkageType: ''
    returnType: void
    signature: void itoa(int64 n,wchar *Str,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetLocaleInfo
      Src: /src/clamav/libclamunrar/strfn.cpp:366,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/strfn.cpp:366,1
    - Dst: localeconv
      Src: /src/clamav/libclamunrar/strfn.cpp:369,1
    - Dst: itoa
      Src: /src/clamav/libclamunrar/strfn.cpp:374,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/strfn.cpp:374,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/strfn.cpp:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - n
    - Str
    - MaxSize
    argTypes:
    - int64
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 383
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: fmtitoa
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 0
    functionsReached:
    - itoa
    - ASIZE
    - GetLocaleInfo
    - localeconv
    - wcslen
    linkageType: ''
    returnType: void
    signature: void fmtitoa(int64 n,wchar *Str,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/strfn.cpp:391,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/strfn.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - Src
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: GetWide
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 3
    functionsReached:
    - ASIZE
    - CharToWide
    linkageType: ''
    returnType: wchar
    signature: wchar * GetWide(const char *Src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSpace
      Src: /src/clamav/libclamunrar/strfn.cpp:405,1
    - Dst: IsSpace
      Src: /src/clamav/libclamunrar/strfn.cpp:412,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - CmdLine
    - Param
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 434
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 434
    functionName: GetCmdParam
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 1
    functionsReached:
    - IsSpace
    linkageType: ''
    returnType: wchar
    signature: wchar * GetCmdParam(const wchar *CmdLine,wchar *Param,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/strfn.cpp:450,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 3
    argNames:
    - Org
    - Cvt
    - MaxSize
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 469
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 469
    functionName: PrintfPrepareFmt
    functionSourceFile: /src/clamav/libclamunrar/strfn.cpp
    functionUses: 2
    functionsReached:
    - IsDigit
    linkageType: ''
    returnType: void
    signature: void PrintfPrepareFmt(const wchar *Org,wchar *Cvt,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::Reset
      Src: /src/clamav/libclamunrar/timefn.hpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: RarTime::RarTime
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 1
    functionsReached:
    - RarTime::Reset
    linkageType: ''
    returnType: void
    signature: void RarTime()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rt
    argTypes:
    - RarTime
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: operator == (RarTime &rt)
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator == (RarTime &rt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rt
    argTypes:
    - RarTime
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: operator != (RarTime &rt)
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator != (RarTime &rt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rt
    argTypes:
    - RarTime
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: operator < (RarTime &rt)
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator < (RarTime &rt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rt
    argTypes:
    - RarTime
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: operator <= (RarTime &rt)
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator <= (RarTime &rt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rt
    argTypes:
    - RarTime
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: operator > (RarTime &rt)
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator > (RarTime &rt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rt
    argTypes:
    - RarTime
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: operator >= (RarTime &rt)
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator >= (RarTime &rt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: RarTime::Reset
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: RarTime::IsSet
    functionSourceFile: /src/clamav/libclamunrar/timefn.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RecRSThreadData::RecRSThreadData
      Src: /src/clamav/libclamunrar/recvol5.cpp:23,1
    - Dst: ThreadPool::ThreadPool
      Src: /src/clamav/libclamunrar/recvol5.cpp:39,1
    - Dst: byte::byte
      Src: /src/clamav/libclamunrar/recvol5.cpp:41,1
    - Dst: ALIGN_VALUE
      Src: /src/clamav/libclamunrar/recvol5.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - Cmd
    - TestOnly
    argTypes:
    - CommandData*
    - bool
    constantsTouched: []
    func_position:
      end: 44
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 44
    functionName: RecVolumes5::RecVolumes5
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 0
    functionsReached:
    - ALIGN_VALUE
    - RecRSThreadData::RecRSThreadData
    - ThreadPool::ThreadPool
    - byte::byte
    linkageType: ''
    returnType: void
    signature: void RecVolumes5::RecVolumes5(CommandData *Cmd,bool TestOnly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Size
      Src: /src/clamav/libclamunrar/recvol5.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: RecVolumes5::~RecVolumes5()
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 0
    functionsReached:
    - Size
    linkageType: ''
    returnType: void
    signature: void RecVolumes5::~RecVolumes5()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RecRSThreadData*::RecRSPtr::ProcessAreaRS
      Src: /src/clamav/libclamunrar/recvol5.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: THREAD_PROC
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 0
    functionsReached:
    - RecRSThreadData*::RecRSPtr::ProcessAreaRS
    linkageType: ''
    returnType: void
    signature: void THREAD_PROC(RecThreadRS)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Min
      Src: /src/clamav/libclamunrar/recvol5.cpp:86,1
    - Dst: ALIGN_VALUE
      Src: /src/clamav/libclamunrar/recvol5.cpp:93,1
    - Dst: RSCoder16::RSCoder16
      Src: /src/clamav/libclamunrar/recvol5.cpp:103,1
    - Dst: RecRSThreadData*::RS::Init
      Src: /src/clamav/libclamunrar/recvol5.cpp:104,1
    - Dst: AddTask
      Src: /src/clamav/libclamunrar/recvol5.cpp:121,1
    - Dst: RecVolumes5::ProcessAreaRS
      Src: /src/clamav/libclamunrar/recvol5.cpp:123,1
    - Dst: RecVolumes5::ProcessAreaRS
      Src: /src/clamav/libclamunrar/recvol5.cpp:125,1
    - Dst: WaitDone
      Src: /src/clamav/libclamunrar/recvol5.cpp:129,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - Cmd
    - DataNum
    - Data
    - MaxRead
    - Encode
    argTypes:
    - CommandData*
    - uint
    - byte*
    - uint
    - bool
    constantsTouched: []
    func_position:
      end: 131
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 131
    functionName: RecVolumes5::ProcessRS
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 0
    functionsReached:
    - ALIGN_VALUE
    - RSCoder16::RSCoder16
    - WaitDone
    - AddTask
    - RecVolumes5::ProcessAreaRS
    - RecRSThreadData*::RS::Init
    - Min
    linkageType: ''
    returnType: void
    signature: void RecVolumes5::ProcessRS(CommandData *Cmd,uint DataNum,const byte
      *Data,uint MaxRead,bool Encode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RecRSThreadData*::RS::UpdateECC
      Src: /src/clamav/libclamunrar/recvol5.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - td
    argTypes:
    - RecRSThreadData*
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: RecVolumes5::ProcessAreaRS
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 1
    functionsReached:
    - RecRSThreadData*::RS::UpdateECC
    linkageType: ''
    returnType: void
    signature: void RecVolumes5::ProcessAreaRS(RecRSThreadData *td)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol5.cpp:147,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:147,1
    - Dst: GetVolNumPart
      Src: /src/clamav/libclamunrar/recvol5.cpp:149,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/recvol5.cpp:150,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/recvol5.cpp:152,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol5.cpp:154,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:154,1
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/recvol5.cpp:164,1
    - Dst: FindFile::SetMask
      Src: /src/clamav/libclamunrar/recvol5.cpp:165,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/recvol5.cpp:168,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/recvol5.cpp:170,1
    - Dst: Archive::Archive
      Src: /src/clamav/libclamunrar/recvol5.cpp:172,1
    - Dst: Archive*::WOpen
      Src: /src/clamav/libclamunrar/recvol5.cpp:174,1
    - Dst: CmpExt
      Src: /src/clamav/libclamunrar/recvol5.cpp:176,1
    - Dst: RecVolumes5::ReadHeader
      Src: /src/clamav/libclamunrar/recvol5.cpp:178,1
    - Dst: Archive*::FileLength
      Src: /src/clamav/libclamunrar/recvol5.cpp:182,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/recvol5.cpp:187,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/recvol5.cpp:187,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol5.cpp:188,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:188,1
    - Dst: Archive*::IsArchive
      Src: /src/clamav/libclamunrar/recvol5.cpp:192,1
    - Dst: CmpExt
      Src: /src/clamav/libclamunrar/recvol5.cpp:192,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:196,1
    - Dst: Archive*::QOpenUnload
      Src: /src/clamav/libclamunrar/recvol5.cpp:201,1
    - Dst: Archive*::Seek
      Src: /src/clamav/libclamunrar/recvol5.cpp:203,1
    - Dst: GetVolNumPart
      Src: /src/clamav/libclamunrar/recvol5.cpp:207,1
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/recvol5.cpp:209,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/recvol5.cpp:216,1
    - Dst: VolNameToFirstName
      Src: /src/clamav/libclamunrar/recvol5.cpp:223,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:223,1
    - Dst: Size
      Src: /src/clamav/libclamunrar/recvol5.cpp:229,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol5.cpp:235,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:235,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:240,1
    - Dst: SetExt
      Src: /src/clamav/libclamunrar/recvol5.cpp:249,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:249,1
    - Dst: VolNameToFirstName
      Src: /src/clamav/libclamunrar/recvol5.cpp:250,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:250,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:253,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:261,1
    - Dst: CalcFileSum
      Src: /src/clamav/libclamunrar/recvol5.cpp:264,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:268,1
    - Dst: RecVolItem*::f::Close
      Src: /src/clamav/libclamunrar/recvol5.cpp:274,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:284,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:288,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:294,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:295,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:299,1
    - Dst: RecVolItem*::f::Close
      Src: /src/clamav/libclamunrar/recvol5.cpp:310,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol5.cpp:313,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:313,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/recvol5.cpp:314,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:314,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:316,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:317,1
    - Dst: RenameFile
      Src: /src/clamav/libclamunrar/recvol5.cpp:318,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol5.cpp:325,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:325,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:326,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:327,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/recvol5.cpp:328,1
    - Dst: FileCreate
      Src: /src/clamav/libclamunrar/recvol5.cpp:330,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:330,1
    - Dst: CreateErrorMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:333,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/recvol5.cpp:334,1
    - Dst: File*::Prealloc
      Src: /src/clamav/libclamunrar/recvol5.cpp:336,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/recvol5.cpp:339,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:339,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol5.cpp:345,1
    - Dst: bool::bool
      Src: /src/clamav/libclamunrar/recvol5.cpp:351,1
    - Dst: RSCoder16::RSCoder16
      Src: /src/clamav/libclamunrar/recvol5.cpp:367,1
    - Dst: RSCoder16::Init
      Src: /src/clamav/libclamunrar/recvol5.cpp:368,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:370,1
    - Dst: byte::byte
      Src: /src/clamav/libclamunrar/recvol5.cpp:375,1
    - Dst: ALIGN_VALUE
      Src: /src/clamav/libclamunrar/recvol5.cpp:376,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/recvol5.cpp:380,1
    - Dst: RecVolItem*::f::Read
      Src: /src/clamav/libclamunrar/recvol5.cpp:397,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/recvol5.cpp:399,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/recvol5.cpp:405,1
    - Dst: RecVolumes5::ProcessRS
      Src: /src/clamav/libclamunrar/recvol5.cpp:406,1
    - Dst: RecVolItem*::f::Write
      Src: /src/clamav/libclamunrar/recvol5.cpp:416,1
    - Dst: uiProcessProgress
      Src: /src/clamav/libclamunrar/recvol5.cpp:423,1
    - Dst: f::Close
      Src: /src/clamav/libclamunrar/recvol5.cpp:431,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol5.cpp:436,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol5.cpp:438,1
    - Dst: St
      Src: /src/clamav/libclamunrar/recvol5.cpp:438,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 173
    argCount: 3
    argNames:
    - Cmd
    - Name
    - Silent
    argTypes:
    - CommandData*
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 441
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 441
    functionName: RecVolumes5::Restore
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 1
    functionsReached:
    - ALIGN_VALUE
    - RSCoder16::RSCoder16
    - Exit
    - Size
    - f::Close
    - RecVolItem*::f::Read
    - Alloc
    - RecVolumes5::ReadHeader
    - NextVolumeName
    - VolNameToFirstName
    - Wait
    - SetExt
    - byte::byte
    - RecVolItem*::f::Write
    - CreateErrorMsg
    - RecVolItem*::f::Close
    - wcsncpyz
    - Archive*::IsArchive
    - St
    - FileCreate
    - CmpExt
    - Archive*::QOpenUnload
    - bool::bool
    - PointToName
    - mprintf
    - memset
    - Archive*::FileLength
    - Archive::Archive
    - File*::Prealloc
    - GetVolNumPart
    - CalcFileSum
    - wcsncatz
    - RenameFile
    - ASIZE
    - uiMsg
    - IsDigit
    - RSCoder16::Init
    - wcslen
    - FindFile::FindFile
    - File::File
    - FindFile::Next
    - Archive*::Seek
    - RecVolumes5::ProcessRS
    - uiProcessProgress
    - Archive*::WOpen
    - FindFile::SetMask
    - Min
    linkageType: ''
    returnType: bool
    signature: bool RecVolumes5::Restore(CommandData *Cmd,const wchar *Name,bool Silent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File*::Read
      Src: /src/clamav/libclamunrar/recvol5.cpp:448,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/recvol5.cpp:450,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/recvol5.cpp:452,1
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/recvol5.cpp:455,1
    - Dst: RawRead::Read
      Src: /src/clamav/libclamunrar/recvol5.cpp:458,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/recvol5.cpp:462,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/recvol5.cpp:463,1
    - Dst: RawRead::GetDataPtr
      Src: /src/clamav/libclamunrar/recvol5.cpp:463,1
    - Dst: RawRead::Get1
      Src: /src/clamav/libclamunrar/recvol5.cpp:466,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/recvol5.cpp:468,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/recvol5.cpp:469,1
    - Dst: RawRead::Get2
      Src: /src/clamav/libclamunrar/recvol5.cpp:471,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/recvol5.cpp:474,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/recvol5.cpp:481,1
    - Dst: RawRead::Get8
      Src: /src/clamav/libclamunrar/recvol5.cpp:486,1
    - Dst: RawRead::Get4
      Src: /src/clamav/libclamunrar/recvol5.cpp:487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - RecFile
    - FirstRev
    argTypes:
    - File*
    - bool
    constantsTouched: []
    func_position:
      end: 494
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 494
    functionName: RecVolumes5::ReadHeader
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 1
    functionsReached:
    - RawRead::Get2
    - RawRead::Read
    - CRC32
    - RawRead::Get8
    - RawRead::Get4
    - RawRead::GetDataPtr
    - Alloc
    - memcmp
    - RawRead::Get1
    - File*::Read
    - RawGet4
    linkageType: ''
    returnType: uint
    signature: uint RecVolumes5::ReadHeader(File *RecFile,bool FirstRev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/recvol5.cpp:500,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:500,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/recvol5.cpp:503,1
    - Dst: File::File
      Src: /src/clamav/libclamunrar/recvol5.cpp:505,1
    - Dst: File::Open
      Src: /src/clamav/libclamunrar/recvol5.cpp:506,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:508,1
    - Dst: uiStartFileExtract
      Src: /src/clamav/libclamunrar/recvol5.cpp:511,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol5.cpp:513,1
    - Dst: St
      Src: /src/clamav/libclamunrar/recvol5.cpp:513,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol5.cpp:514,1
    - Dst: RecVolumes5::ReadHeader
      Src: /src/clamav/libclamunrar/recvol5.cpp:516,1
    - Dst: CalcFileSum
      Src: /src/clamav/libclamunrar/recvol5.cpp:522,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/recvol5.cpp:528,1
    - Dst: St
      Src: /src/clamav/libclamunrar/recvol5.cpp:528,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/recvol5.cpp:532,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/recvol5.cpp:533,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/recvol5.cpp:536,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/recvol5.cpp:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - Cmd
    - Name
    argTypes:
    - CommandData*
    - wchar*
    constantsTouched: []
    func_position:
      end: 538
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 538
    functionName: RecVolumes5::Test
    functionSourceFile: /src/clamav/libclamunrar/recvol5.cpp
    functionUses: 1
    functionsReached:
    - uiMsg
    - File::File
    - St
    - wcsncpyz
    - FileExist
    - uiStartFileExtract
    - CalcFileSum
    - File::Open
    - NextVolumeName
    - ASIZE
    - RecVolumes5::ReadHeader
    - SetErrorCode
    - OpenErrorMsg
    - mprintf
    linkageType: ''
    returnType: void
    signature: void RecVolumes5::Test(CommandData *Cmd,const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Sound
    argTypes:
    - SOUND_NOTIFY_MODE
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: uiInit
    functionSourceFile: /src/clamav/libclamunrar/uicommon.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiInit(SOUND_NOTIFY_MODE Sound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetAutoRenamedName
      Src: /src/clamav/libclamunrar/uicommon.cpp:18,1
    - Dst: PrepareToDelete
      Src: /src/clamav/libclamunrar/uicommon.cpp:26,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/uicommon.cpp:31,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uicommon.cpp:31,1
    - Dst: uiAskReplace
      Src: /src/clamav/libclamunrar/uicommon.cpp:32,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/uicommon.cpp:32,1
    - Dst: PrepareToDelete
      Src: /src/clamav/libclamunrar/uicommon.cpp:35,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/uicommon.cpp:49,1
    - Dst: SetName
      Src: /src/clamav/libclamunrar/uicommon.cpp:50,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/uicommon.cpp:52,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/uicommon.cpp:53,1
    - Dst: uiAskReplaceEx
      Src: /src/clamav/libclamunrar/uicommon.cpp:54,1
    - Dst: GetAutoRenamedName
      Src: /src/clamav/libclamunrar/uicommon.cpp:58,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 6
    argNames:
    - Cmd
    - Name
    - MaxNameSize
    - FileSize
    - FileTime
    - Flags
    argTypes:
    - CommandData*
    - wchar*
    - size_t
    - int64
    - RarTime*
    - uint
    constantsTouched: []
    func_position:
      end: 65
      start: 11
    functionDepth: 4
    functionLinenumber: 11
    functionLinenumberEnd: 65
    functionName: uiAskReplaceEx
    functionSourceFile: /src/clamav/libclamunrar/uicommon.cpp
    functionUses: 2
    functionsReached:
    - SetName
    - GetAutoRenamedName
    - wcsncpyz
    - FileExist
    - uiAskReplaceEx
    - PrepareToDelete
    - ASIZE
    - uiAskReplace
    - PointToName
    linkageType: ''
    returnType: UIASKREP_RESULT
    signature: UIASKREP_RESULT uiAskReplaceEx(CommandData *Cmd,wchar *Name,size_t
      MaxNameSize,int64 FileSize,RarTime *FileTime,uint Flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::GetCommandData
      Src: /src/clamav/libclamunrar/volume.cpp:12,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/volume.cpp:14,1
    - Dst: ComprDataIO*::PackedDataHash::Cmp
      Src: /src/clamav/libclamunrar/volume.cpp:24,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/volume.cpp:25,1
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/volume.cpp:30,1
    - Dst: Archive::Close
      Src: /src/clamav/libclamunrar/volume.cpp:36,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/volume.cpp:39,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:39,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/volume.cpp:40,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:40,1
    - Dst: uiAskNextVolume
      Src: /src/clamav/libclamunrar/volume.cpp:59,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:59,1
    - Dst: Archive::Open
      Src: /src/clamav/libclamunrar/volume.cpp:66,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/volume.cpp:80,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:80,1
    - Dst: NextVolumeName
      Src: /src/clamav/libclamunrar/volume.cpp:81,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:81,1
    - Dst: Archive::Open
      Src: /src/clamav/libclamunrar/volume.cpp:83,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/volume.cpp:85,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:85,1
    - Dst: DllVolChange
      Src: /src/clamav/libclamunrar/volume.cpp:90,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:90,1
    - Dst: RecVolumesRestore
      Src: /src/clamav/libclamunrar/volume.cpp:100,1
    - Dst: IsRemovable
      Src: /src/clamav/libclamunrar/volume.cpp:106,1
    - Dst: uiAskNextVolume
      Src: /src/clamav/libclamunrar/volume.cpp:112,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:112,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/volume.cpp:124,1
    - Dst: Archive::Open
      Src: /src/clamav/libclamunrar/volume.cpp:125,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/volume.cpp:126,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/volume.cpp:131,1
    - Dst: St
      Src: /src/clamav/libclamunrar/volume.cpp:131,1
    - Dst: Archive::CheckArc
      Src: /src/clamav/libclamunrar/volume.cpp:134,1
    - Dst: DllVolNotify
      Src: /src/clamav/libclamunrar/volume.cpp:136,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/volume.cpp:146,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/volume.cpp:147,1
    - Dst: Archive::SearchBlock
      Src: /src/clamav/libclamunrar/volume.cpp:151,1
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/volume.cpp:153,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/volume.cpp:154,1
    - Dst: Archive::ConvertAttributes
      Src: /src/clamav/libclamunrar/volume.cpp:156,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/volume.cpp:157,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/volume.cpp:161,1
    - Dst: St
      Src: /src/clamav/libclamunrar/volume.cpp:161,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/volume.cpp:163,1
    - Dst: ComprDataIO*::SetPackedSizeToRead
      Src: /src/clamav/libclamunrar/volume.cpp:172,1
    - Dst: ComprDataIO*::AdjustTotalArcSize
      Src: /src/clamav/libclamunrar/volume.cpp:175,1
    - Dst: ComprDataIO*::PackedDataHash::Init
      Src: /src/clamav/libclamunrar/volume.cpp:182,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 82
    argCount: 4
    argNames:
    - Arc
    - DataIO
    - ShowFileName
    - Command
    argTypes:
    - Archive
    - ComprDataIO*
    - bool
    - wchar
    constantsTouched: []
    func_position:
      end: 185
      start: 10
    functionDepth: 6
    functionLinenumber: 10
    functionLinenumberEnd: 185
    functionName: MergeArchive
    functionSourceFile: /src/clamav/libclamunrar/volume.cpp
    functionUses: 2
    functionsReached:
    - uiAskNextVolume
    - Exit
    - DllVolChange
    - ComprDataIO*::PackedDataHash::Cmp
    - NextVolumeName
    - ComprDataIO*::PackedDataHash::Init
    - St
    - wcsncpyz
    - Archive::SearchBlock
    - Archive::GetHeaderType
    - IsRemovable
    - mprintf
    - Archive::Close
    - ComprDataIO*::SetPackedSizeToRead
    - RecVolumesRestore
    - DllVolNotify
    - ASIZE
    - uiMsg
    - Archive::Open
    - ComprDataIO*::AdjustTotalArcSize
    - Archive::GetCommandData
    - Archive::CheckArc
    - Archive::ConvertAttributes
    - Archive::Seek
    - Archive::ReadHeader
    - Archive::Tell
    linkageType: ''
    returnType: bool
    signature: bool MergeArchive(Archive &Arc,ComprDataIO *DataIO,bool ShowFileName,wchar
      Command)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/volume.cpp:200,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:200,1
    - Dst: CommandData*::Callback
      Src: /src/clamav/libclamunrar/volume.cpp:201,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/volume.cpp:204,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/volume.cpp:209,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:209,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/volume.cpp:210,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:210,1
    - Dst: CommandData*::Callback
      Src: /src/clamav/libclamunrar/volume.cpp:211,1
    - Dst: strcmp
      Src: /src/clamav/libclamunrar/volume.cpp:214,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/volume.cpp:218,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/volume.cpp:226,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:226,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/volume.cpp:231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - Cmd
    - NextName
    - NameSize
    argTypes:
    - CommandData*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 244
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 244
    functionName: DllVolChange
    functionSourceFile: /src/clamav/libclamunrar/volume.cpp
    functionUses: 1
    functionsReached:
    - CommandData*::Callback
    - strcmp
    - wcsncpyz
    - WideToChar
    - wcscmp
    - ASIZE
    - strncpyz
    - CharToWide
    linkageType: ''
    returnType: bool
    signature: bool DllVolChange(CommandData *Cmd,wchar *NextName,size_t NameSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/volume.cpp:252,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/volume.cpp:252,1
    - Dst: CommandData*::Callback
      Src: /src/clamav/libclamunrar/volume.cpp:255,1
    - Dst: CommandData*::Callback
      Src: /src/clamav/libclamunrar/volume.cpp:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - Cmd
    - NextName
    argTypes:
    - CommandData*
    - wchar*
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: DllVolNotify
    functionSourceFile: /src/clamav/libclamunrar/volume.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - CommandData*::Callback
    - WideToChar
    linkageType: ''
    returnType: bool
    signature: bool DllVolNotify(CommandData *Cmd,wchar *NextName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RangeCoder::GetChar
      Src: /src/clamav/libclamunrar/coder.cpp:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: RangeCoder::GetChar
    functionSourceFile: /src/clamav/libclamunrar/coder.cpp
    functionUses: 1
    functionsReached:
    - RangeCoder::GetChar
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int RangeCoder::GetChar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uint
      Src: /src/clamav/libclamunrar/coder.cpp:14,1
    - Dst: RangeCoder::GetChar
      Src: /src/clamav/libclamunrar/coder.cpp:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - UnpackRead
    argTypes:
    - Unpack*
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 2
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: RangeCoder::InitDecoder
    functionSourceFile: /src/clamav/libclamunrar/coder.cpp
    functionUses: 0
    functionsReached:
    - uint
    - RangeCoder::GetChar
    linkageType: ''
    returnType: void
    signature: void RangeCoder::InitDecoder(Unpack *UnpackRead)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: RangeCoder::GetCurrentCount
    functionSourceFile: /src/clamav/libclamunrar/coder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RangeCoder::GetCurrentCount()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - SHIFT
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: RangeCoder::GetCurrentShiftCount
    functionSourceFile: /src/clamav/libclamunrar/coder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RangeCoder::GetCurrentShiftCount(uint SHIFT)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: RangeCoder::Decode
    functionSourceFile: /src/clamav/libclamunrar/coder.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RangeCoder::Decode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpInitData
      Src: /src/clamav/libclamunrar/unpack.cpp:39,1
    - Dst: Unpack::UnpInitData15
      Src: /src/clamav/libclamunrar/unpack.cpp:42,1
    - Dst: Unpack::InitHuff
      Src: /src/clamav/libclamunrar/unpack.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - DataIO
    argTypes:
    - ComprDataIO*
    constantsTouched: []
    func_position:
      end: 45
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 45
    functionName: Unpack::Unpack
    functionSourceFile: /src/clamav/libclamunrar/unpack.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpInitData
    - Unpack::UnpInitData15
    - Unpack::InitHuff
    linkageType: ''
    returnType: void
    signature: void Unpack::Unpack(ComprDataIO *DataIO)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::InitFilters30
      Src: /src/clamav/libclamunrar/unpack.cpp:50,1
    - Dst: free
      Src: /src/clamav/libclamunrar/unpack.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: Unpack::~Unpack()
    functionSourceFile: /src/clamav/libclamunrar/unpack.cpp
    functionUses: 0
    functionsReached:
    - Unpack::InitFilters30
    - free
    linkageType: ''
    returnType: void
    signature: void Unpack::~Unpack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack.cpp:67,1
    - Dst: ThreadPool::ThreadPool
      Src: /src/clamav/libclamunrar/unpack.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Threads
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: Unpack::SetThreads
    functionSourceFile: /src/clamav/libclamunrar/unpack.cpp
    functionUses: 0
    functionsReached:
    - ThreadPool::ThreadPool
    - Min
    linkageType: ''
    returnType: void
    signature: void Unpack::SetThreads(uint Threads)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MemoryError
      Src: /src/clamav/libclamunrar/unpack.cpp:78,1
    - Dst: std::bad_alloc
      Src: /src/clamav/libclamunrar/unpack.cpp:109,1
    - Dst: malloc
      Src: /src/clamav/libclamunrar/unpack.cpp:111,1
    - Dst: std::bad_alloc
      Src: /src/clamav/libclamunrar/unpack.cpp:118,1
    - Dst: free
      Src: /src/clamav/libclamunrar/unpack.cpp:124,1
    - Dst: Unpack::Init
      Src: /src/clamav/libclamunrar/unpack.cpp:127,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack.cpp:135,1
    - Dst: free
      Src: /src/clamav/libclamunrar/unpack.cpp:146,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 2
    argNames:
    - WinSize
    - Solid
    argTypes:
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 152
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 152
    functionName: Unpack::Init
    functionSourceFile: /src/clamav/libclamunrar/unpack.cpp
    functionUses: 5
    functionsReached:
    - memset
    - std::bad_alloc
    - MemoryError
    - free
    - malloc
    - Unpack::Init
    linkageType: ''
    returnType: void
    signature: void Unpack::Init(size_t WinSize,bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::Unpack15
      Src: /src/clamav/libclamunrar/unpack.cpp:165,1
    - Dst: Unpack::Unpack20
      Src: /src/clamav/libclamunrar/unpack.cpp:170,1
    - Dst: Unpack::Unpack29
      Src: /src/clamav/libclamunrar/unpack.cpp:175,1
    - Dst: Unpack::Unpack5MT
      Src: /src/clamav/libclamunrar/unpack.cpp:188,1
    - Dst: Unpack::Unpack5
      Src: /src/clamav/libclamunrar/unpack.cpp:193,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - Method
    - Solid
    argTypes:
    - uint
    - bool
    constantsTouched: []
    func_position:
      end: 196
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 196
    functionName: Unpack::DoUnpack
    functionSourceFile: /src/clamav/libclamunrar/unpack.cpp
    functionUses: 3
    functionsReached:
    - Unpack::Unpack5MT
    - Unpack::Unpack15
    - Unpack::Unpack20
    - Unpack::Unpack29
    - Unpack::Unpack5
    linkageType: ''
    returnType: void
    signature: void Unpack::DoUnpack(uint Method,bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack.cpp:203,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack.cpp:207,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unpack.cpp:209,1
    - Dst: Unpack::InitFilters
      Src: /src/clamav/libclamunrar/unpack.cpp:213,1
    - Dst: InitBitInput
      Src: /src/clamav/libclamunrar/unpack.cpp:215,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack.cpp:220,1
    - Dst: Unpack::UnpInitData20
      Src: /src/clamav/libclamunrar/unpack.cpp:223,1
    - Dst: Unpack::UnpInitData30
      Src: /src/clamav/libclamunrar/unpack.cpp:225,1
    - Dst: Unpack::UnpInitData50
      Src: /src/clamav/libclamunrar/unpack.cpp:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 227
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 227
    functionName: Unpack::UnpInitData
    functionSourceFile: /src/clamav/libclamunrar/unpack.cpp
    functionUses: 4
    functionsReached:
    - memset
    - Unpack::UnpInitData30
    - Unpack::UnpInitData20
    - Unpack::InitFilters
    - InitBitInput
    - Unpack::UnpInitData50
    - Min
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpInitData(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack.cpp:240,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack.cpp:248,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack.cpp:280,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpack.cpp:281,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack.cpp:340,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack.cpp:359,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - LengthTable
    - Dec
    - Size
    argTypes:
    - byte*
    - DecodeTable*
    - uint
    constantsTouched: []
    func_position:
      end: 371
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 371
    functionName: Unpack::MakeDecodeTables
    functionSourceFile: /src/clamav/libclamunrar/unpack.cpp
    functionUses: 2
    functionsReached:
    - ASIZE
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Unpack::MakeDecodeTables(byte *LengthTable,DecodeTable *Dec,uint
      Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Item
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Array::Addr
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Addr(size_t Item)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Array::SetMaxSize
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetMaxSize(size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Array::Begin
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Begin()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Array::End
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * End()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Array<T>::CleanData
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array<T>::CleanData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Array<T>::CleanData
      Src: /src/clamav/libclamunrar/array.hpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: Array<T>::Array
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - Array<T>::CleanData
    linkageType: ''
    returnType: void
    signature: void Array<T>::Array()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Array<T>::CleanData
      Src: /src/clamav/libclamunrar/array.hpp:53,1
    - Dst: Array<T>::Add
      Src: /src/clamav/libclamunrar/array.hpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Array<T>::Array
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - Array<T>::CleanData
    - Array<T>::Add
    linkageType: ''
    returnType: void
    signature: void Array<T>::Array(size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Array<T>::CleanData
      Src: /src/clamav/libclamunrar/array.hpp:61,1
    - Dst: Array<T>::Alloc
      Src: /src/clamav/libclamunrar/array.hpp:62,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/array.hpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - Src
    argTypes:
    - Array
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Array<T>::Array
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - Array<T>::CleanData
    - memcpy
    - Array<T>::Alloc
    linkageType: ''
    returnType: void
    signature: void Array<T>::Array(const Array &Src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamunrar/array.hpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: Array<T>::~Array()
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void Array<T>::~Array()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Item
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: '& Array<T>::operator [](size_t Item) const'
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T & Array<T>::operator [](size_t Item) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Pos
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: '* Array<T>::operator +(size_t Pos)'
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * Array<T>::operator +(size_t Pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: Array<T>::Size
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Array<T>::Size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/array.hpp:100,1
    - Dst: MemoryError
      Src: /src/clamav/libclamunrar/array.hpp:101,1
    - Dst: realloc
      Src: /src/clamav/libclamunrar/array.hpp:107,1
    - Dst: MemoryError
      Src: /src/clamav/libclamunrar/array.hpp:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - Items
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: Array<T>::Add
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 1
    functionsReached:
    - MemoryError
    - GeneralErrMsg
    - realloc
    linkageType: ''
    returnType: void
    signature: void Array<T>::Add(size_t Items)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Array<T>::Add
      Src: /src/clamav/libclamunrar/array.hpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - Items
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: Array<T>::Alloc
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 1
    functionsReached:
    - Array<T>::Add
    linkageType: ''
    returnType: void
    signature: void Array<T>::Alloc(size_t Items)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamunrar/array.hpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: Array<T>::Reset
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void Array<T>::Reset()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: Array<T>::SoftReset
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Array<T>::SoftReset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/clamav/libclamunrar/array.hpp:147,1
    - Dst: Alloc
      Src: /src/clamav/libclamunrar/array.hpp:148,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/array.hpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - Src
    argTypes:
    - Array<T>
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: '& Array<T>::operator =(const Array<T> &Src)'
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - Reset
    - memcpy
    - Alloc
    linkageType: ''
    returnType: Array<T>
    signature: Array<T> & Array<T>::operator =(const Array<T> &Src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Array<T>::Add
      Src: /src/clamav/libclamunrar/array.hpp:157,1
    - Dst: Array<T>::Size
      Src: /src/clamav/libclamunrar/array.hpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Item
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: Array<T>::Push
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - Array<T>::Add
    - Array<T>::Size
    linkageType: ''
    returnType: void
    signature: void Array<T>::Push(T Item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Array<T>::Add
      Src: /src/clamav/libclamunrar/array.hpp:165,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/array.hpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Items
    - Count
    argTypes:
    - T*
    - size_t
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: Array<T>::Append
    functionSourceFile: /src/clamav/libclamunrar/array.hpp
    functionUses: 0
    functionsReached:
    - memcpy
    - Array<T>::Add
    linkageType: ''
    returnType: void
    signature: void Array<T>::Append(T *Items,size_t Count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Tell
      Src: /src/clamav/libclamunrar/arccmt.cpp:7,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/arccmt.cpp:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - CmtData
    argTypes:
    - Array<wchar>*
    constantsTouched: []
    func_position:
      end: 11
      start: 3
    functionDepth: 3
    functionLinenumber: 3
    functionLinenumberEnd: 11
    functionName: Archive::GetComment
    functionSourceFile: /src/clamav/libclamunrar/arccmt.cpp
    functionUses: 0
    functionsReached:
    - Archive::Seek
    - Archive::Tell
    linkageType: ''
    returnType: bool
    signature: bool Archive::GetComment(Array<wchar> *CmtData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/arccmt.cpp:20,1
    - Dst: GetByte
      Src: /src/clamav/libclamunrar/arccmt.cpp:21,1
    - Dst: GetByte
      Src: /src/clamav/libclamunrar/arccmt.cpp:22,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/arccmt.cpp:31,1
    - Dst: Archive::ReadHeader
      Src: /src/clamav/libclamunrar/arccmt.cpp:32,1
    - Dst: Archive::GetHeaderType
      Src: /src/clamav/libclamunrar/arccmt.cpp:32,1
    - Dst: Archive::Seek
      Src: /src/clamav/libclamunrar/arccmt.cpp:38,1
    - Dst: Archive::GetStartPos
      Src: /src/clamav/libclamunrar/arccmt.cpp:38,1
    - Dst: Archive::SearchSubBlock
      Src: /src/clamav/libclamunrar/arccmt.cpp:39,1
    - Dst: Archive::ReadCommentData
      Src: /src/clamav/libclamunrar/arccmt.cpp:39,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arccmt.cpp:46,1
    - Dst: ComprDataIO::ComprDataIO
      Src: /src/clamav/libclamunrar/arccmt.cpp:57,1
    - Dst: ComprDataIO::SetTestMode
      Src: /src/clamav/libclamunrar/arccmt.cpp:58,1
    - Dst: GetByte
      Src: /src/clamav/libclamunrar/arccmt.cpp:65,1
    - Dst: GetByte
      Src: /src/clamav/libclamunrar/arccmt.cpp:66,1
    - Dst: ComprDataIO::SetCmt13Encryption
      Src: /src/clamav/libclamunrar/arccmt.cpp:70,1
    - Dst: ComprDataIO::SetFiles
      Src: /src/clamav/libclamunrar/arccmt.cpp:76,1
    - Dst: ComprDataIO::EnableShowProgress
      Src: /src/clamav/libclamunrar/arccmt.cpp:77,1
    - Dst: ComprDataIO::SetPackedSizeToRead
      Src: /src/clamav/libclamunrar/arccmt.cpp:78,1
    - Dst: ComprDataIO::UnpHash::Init
      Src: /src/clamav/libclamunrar/arccmt.cpp:79,1
    - Dst: ComprDataIO::SetNoFileHeader
      Src: /src/clamav/libclamunrar/arccmt.cpp:80,1
    - Dst: Unpack::Init
      Src: /src/clamav/libclamunrar/arccmt.cpp:83,1
    - Dst: Unpack::SetDestSize
      Src: /src/clamav/libclamunrar/arccmt.cpp:84,1
    - Dst: Unpack::DoUnpack
      Src: /src/clamav/libclamunrar/arccmt.cpp:85,1
    - Dst: ComprDataIO::UnpHash::GetCRC32
      Src: /src/clamav/libclamunrar/arccmt.cpp:87,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arccmt.cpp:89,1
    - Dst: ComprDataIO::GetUnpackedData
      Src: /src/clamav/libclamunrar/arccmt.cpp:96,1
    - Dst: OemToCharBuffA
      Src: /src/clamav/libclamunrar/arccmt.cpp:102,1
    - Dst: Array<wchar>*::Alloc
      Src: /src/clamav/libclamunrar/arccmt.cpp:104,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/arccmt.cpp:105,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:105,1
    - Dst: Array<wchar>*::Size
      Src: /src/clamav/libclamunrar/arccmt.cpp:105,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/arccmt.cpp:106,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:106,1
    - Dst: Array<wchar>*::Size
      Src: /src/clamav/libclamunrar/arccmt.cpp:106,1
    - Dst: Array<wchar>*::Alloc
      Src: /src/clamav/libclamunrar/arccmt.cpp:107,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/arccmt.cpp:107,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:107,1
    - Dst: Array::Alloc
      Src: /src/clamav/libclamunrar/arccmt.cpp:120,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/arccmt.cpp:123,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/arccmt.cpp:125,1
    - Dst: Array<wchar>*::Alloc
      Src: /src/clamav/libclamunrar/arccmt.cpp:128,1
    - Dst: Array::Push
      Src: /src/clamav/libclamunrar/arccmt.cpp:129,1
    - Dst: OemToCharA
      Src: /src/clamav/libclamunrar/arccmt.cpp:133,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/arccmt.cpp:135,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:135,1
    - Dst: Array<wchar>*::Size
      Src: /src/clamav/libclamunrar/arccmt.cpp:135,1
    - Dst: Array<wchar>*::Alloc
      Src: /src/clamav/libclamunrar/arccmt.cpp:136,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/arccmt.cpp:136,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:136,1
    - Dst: Array<wchar>*::Size
      Src: /src/clamav/libclamunrar/arccmt.cpp:139,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 1
    argNames:
    - CmtData
    argTypes:
    - Array<wchar>*
    constantsTouched: []
    func_position:
      end: 140
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 140
    functionName: Archive::DoGetComment
    functionSourceFile: /src/clamav/libclamunrar/arccmt.cpp
    functionUses: 0
    functionsReached:
    - Array<wchar>*::Addr
    - Array::Alloc
    - Unpack::DoUnpack
    - Array::Push
    - Array<wchar>*::Size
    - Array<wchar>*::Alloc
    - CRC32
    - ComprDataIO::GetUnpackedData
    - Archive::GetStartPos
    - OemToCharBuffA
    - Unpack::Init
    - Archive::GetHeaderType
    - Archive::ReadCommentData
    - ComprDataIO::ComprDataIO
    - memset
    - ComprDataIO::SetTestMode
    - Archive::SearchSubBlock
    - Unpack::SetDestSize
    - uiMsg
    - CharToWide
    - wcslen
    - ComprDataIO::SetCmt13Encryption
    - ComprDataIO::EnableShowProgress
    - ComprDataIO::SetPackedSizeToRead
    - ComprDataIO::UnpHash::Init
    - ComprDataIO::SetNoFileHeader
    - ComprDataIO::SetFiles
    - Archive::Seek
    - GetByte
    - ComprDataIO::UnpHash::GetCRC32
    - Archive::ReadHeader
    - OemToCharA
    linkageType: ''
    returnType: bool
    signature: bool Archive::DoGetComment(Array<wchar> *CmtData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::ReadSubData
      Src: /src/clamav/libclamunrar/arccmt.cpp:146,1
    - Dst: Array::Push
      Src: /src/clamav/libclamunrar/arccmt.cpp:149,1
    - Dst: Array<wchar>*::Alloc
      Src: /src/clamav/libclamunrar/arccmt.cpp:150,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/arccmt.cpp:152,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:152,1
    - Dst: Array<wchar>*::Size
      Src: /src/clamav/libclamunrar/arccmt.cpp:152,1
    - Dst: RawToWide
      Src: /src/clamav/libclamunrar/arccmt.cpp:156,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:156,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/arccmt.cpp:162,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:162,1
    - Dst: Array<wchar>*::Size
      Src: /src/clamav/libclamunrar/arccmt.cpp:162,1
    - Dst: Array<wchar>*::Alloc
      Src: /src/clamav/libclamunrar/arccmt.cpp:164,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/arccmt.cpp:164,1
    - Dst: Array<wchar>*::Addr
      Src: /src/clamav/libclamunrar/arccmt.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - CmtData
    argTypes:
    - Array<wchar>*
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: Archive::ReadCommentData
    functionSourceFile: /src/clamav/libclamunrar/arccmt.cpp
    functionUses: 1
    functionsReached:
    - Array<wchar>*::Addr
    - Array<wchar>*::Size
    - Array<wchar>*::Alloc
    - UtfToWide
    - CharToWide
    - RawToWide
    - Archive::ReadSubData
    - Array::Push
    - wcslen
    linkageType: ''
    returnType: bool
    signature: bool Archive::ReadCommentData(Array<wchar> *CmtData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::GetComment
      Src: /src/clamav/libclamunrar/arccmt.cpp:174,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/arccmt.cpp:177,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/arccmt.cpp:180,1
    - Dst: OutComment
      Src: /src/clamav/libclamunrar/arccmt.cpp:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: Archive::ViewComment
    functionSourceFile: /src/clamav/libclamunrar/arccmt.cpp
    functionUses: 2
    functionsReached:
    - Archive::GetComment
    - OutComment
    - wcschr
    - mprintf
    linkageType: ''
    returnType: void
    signature: void Archive::ViewComment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/hardlinks.cpp:3,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/hardlinks.cpp:5,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/hardlinks.cpp:6,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/hardlinks.cpp:7,1
    - Dst: CreatePath
      Src: /src/clamav/libclamunrar/hardlinks.cpp:10,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/hardlinks.cpp:16,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/hardlinks.cpp:17,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/hardlinks.cpp:18,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/hardlinks.cpp:23,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/hardlinks.cpp:23,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/hardlinks.cpp:24,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/hardlinks.cpp:24,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/hardlinks.cpp:28,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/hardlinks.cpp:29,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/hardlinks.cpp:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - Cmd
    - NameNew
    - NameExisting
    - NameExistingSize
    argTypes:
    - CommandData*
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 36
      start: 1
    functionDepth: 2
    functionLinenumber: 1
    functionLinenumberEnd: 36
    functionName: ExtractHardlink
    functionSourceFile: /src/clamav/libclamunrar/hardlinks.cpp
    functionUses: 1
    functionsReached:
    - CreatePath
    - SysErrMsg
    - FileExist
    - WideToChar
    - ASIZE
    - uiMsg
    - SetErrorCode
    linkageType: ''
    returnType: bool
    signature: bool ExtractHardlink(CommandData *Cmd,wchar *NameNew,wchar *NameExisting,size_t
      NameExistingSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:22,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:23,1
    - Dst: CreateSemaphore
      Src: /src/clamav/libclamunrar/threadpool.cpp:29,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:29,1
    - Dst: CreateEvent
      Src: /src/clamav/libclamunrar/threadpool.cpp:30,1
    - Dst: pthread_cond_init
      Src: /src/clamav/libclamunrar/threadpool.cpp:35,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/libclamunrar/threadpool.cpp:36,1
    - Dst: pthread_cond_init
      Src: /src/clamav/libclamunrar/threadpool.cpp:37,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/libclamunrar/threadpool.cpp:38,1
    - Dst: GeneralErrMsg
      Src: /src/clamav/libclamunrar/threadpool.cpp:42,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/threadpool.cpp:43,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - MaxThreads
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 49
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 49
    functionName: ThreadPool::ThreadPool
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 3
    functionsReached:
    - GeneralErrMsg
    - CreateEvent
    - CreateSemaphore
    - Exit
    - pthread_mutex_init
    - ASIZE
    - pthread_cond_init
    linkageType: ''
    returnType: void
    signature: void ThreadPool::ThreadPool(uint MaxThreads)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadPool::WaitDone
      Src: /src/clamav/libclamunrar/threadpool.cpp:54,1
    - Dst: ReleaseSemaphore
      Src: /src/clamav/libclamunrar/threadpool.cpp:58,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:58,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamunrar/threadpool.cpp:62,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:63,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamunrar/threadpool.cpp:64,1
    - Dst: pthread_cond_broadcast
      Src: /src/clamav/libclamunrar/threadpool.cpp:66,1
    - Dst: CWaitForSingleObject
      Src: /src/clamav/libclamunrar/threadpool.cpp:73,1
    - Dst: ThreadClose
      Src: /src/clamav/libclamunrar/threadpool.cpp:77,1
    - Dst: CriticalSectionDelete
      Src: /src/clamav/libclamunrar/threadpool.cpp:80,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/threadpool.cpp:82,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/threadpool.cpp:83,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/libclamunrar/threadpool.cpp:85,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/libclamunrar/threadpool.cpp:86,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/libclamunrar/threadpool.cpp:87,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/libclamunrar/threadpool.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 90
    functionName: ThreadPool::~ThreadPool()
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 0
    functionsReached:
    - CriticalSectionDelete
    - pthread_mutex_destroy
    - pthread_mutex_unlock
    - pthread_cond_destroy
    - pthread_cond_broadcast
    - CWaitForSingleObject
    - ReleaseSemaphore
    - ThreadClose
    - CloseHandle
    - pthread_mutex_lock
    - ASIZE
    - ThreadPool::WaitDone
    linkageType: ''
    returnType: void
    signature: void ThreadPool::~ThreadPool()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadCreate
      Src: /src/clamav/libclamunrar/threadpool.cpp:97,1
    - Dst: SetThreadPriority
      Src: /src/clamav/libclamunrar/threadpool.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: ThreadPool::CreateThreads
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 0
    functionsReached:
    - SetThreadPriority
    - ThreadCreate
    linkageType: ''
    returnType: void
    signature: void ThreadPool::CreateThreads()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadPool::PoolThreadLoop
      Src: /src/clamav/libclamunrar/threadpool.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Param
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: ThreadPool::PoolThread
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 0
    functionsReached:
    - ThreadPool::PoolThreadLoop
    linkageType: ''
    returnType: NATIVE_THREAD_TYPE
    signature: NATIVE_THREAD_TYPE ThreadPool::PoolThread(void *Param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadPool::GetQueuedTask
      Src: /src/clamav/libclamunrar/threadpool.cpp:117,1
    - Dst: QueueEntry::Proc
      Src: /src/clamav/libclamunrar/threadpool.cpp:119,1
    - Dst: CriticalSectionStart
      Src: /src/clamav/libclamunrar/threadpool.cpp:121,1
    - Dst: SetEvent
      Src: /src/clamav/libclamunrar/threadpool.cpp:125,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamunrar/threadpool.cpp:127,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/libclamunrar/threadpool.cpp:129,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamunrar/threadpool.cpp:130,1
    - Dst: CriticalSectionEnd
      Src: /src/clamav/libclamunrar/threadpool.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 135
    functionName: ThreadPool::PoolThreadLoop
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 1
    functionsReached:
    - ThreadPool::GetQueuedTask
    - CriticalSectionEnd
    - pthread_mutex_unlock
    - QueueEntry::Proc
    - CriticalSectionStart
    - pthread_mutex_lock
    - pthread_cond_signal
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void ThreadPool::PoolThreadLoop()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CWaitForSingleObject
      Src: /src/clamav/libclamunrar/threadpool.cpp:141,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamunrar/threadpool.cpp:143,1
    - Dst: cpthread_cond_wait
      Src: /src/clamav/libclamunrar/threadpool.cpp:145,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamunrar/threadpool.cpp:147,1
    - Dst: CriticalSectionStart
      Src: /src/clamav/libclamunrar/threadpool.cpp:153,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:156,1
    - Dst: CriticalSectionEnd
      Src: /src/clamav/libclamunrar/threadpool.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - Task
    argTypes:
    - QueueEntry*
    constantsTouched: []
    func_position:
      end: 161
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 161
    functionName: ThreadPool::GetQueuedTask
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 1
    functionsReached:
    - CriticalSectionEnd
    - pthread_mutex_unlock
    - cpthread_cond_wait
    - CWaitForSingleObject
    - CriticalSectionStart
    - pthread_mutex_lock
    - ASIZE
    linkageType: ''
    returnType: bool
    signature: bool ThreadPool::GetQueuedTask(QueueEntry *Task)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThreadPool::CreateThreads
      Src: /src/clamav/libclamunrar/threadpool.cpp:170,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:173,1
    - Dst: ThreadPool::WaitDone
      Src: /src/clamav/libclamunrar/threadpool.cpp:174,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/threadpool.cpp:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - Proc
    - Data
    argTypes:
    - PTHREAD_PROC
    - void*
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: ThreadPool::AddTask
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - ThreadPool::CreateThreads
    - ThreadPool::WaitDone
    linkageType: ''
    returnType: void
    signature: void ThreadPool::AddTask(PTHREAD_PROC Proc,void *Data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ResetEvent
      Src: /src/clamav/libclamunrar/threadpool.cpp:191,1
    - Dst: ReleaseSemaphore
      Src: /src/clamav/libclamunrar/threadpool.cpp:192,1
    - Dst: CWaitForSingleObject
      Src: /src/clamav/libclamunrar/threadpool.cpp:193,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamunrar/threadpool.cpp:200,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamunrar/threadpool.cpp:202,1
    - Dst: pthread_cond_broadcast
      Src: /src/clamav/libclamunrar/threadpool.cpp:204,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamunrar/threadpool.cpp:206,1
    - Dst: cpthread_cond_wait
      Src: /src/clamav/libclamunrar/threadpool.cpp:208,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamunrar/threadpool.cpp:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 211
    functionName: ThreadPool::WaitDone
    functionSourceFile: /src/clamav/libclamunrar/threadpool.cpp
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - cpthread_cond_wait
    - ResetEvent
    - pthread_cond_broadcast
    - CWaitForSingleObject
    - ReleaseSemaphore
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void ThreadPool::WaitDone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSCoder::gfInit
      Src: /src/clamav/libclamunrar/rs.cpp:9,1
    - Dst: RSCoder::pnInit
      Src: /src/clamav/libclamunrar/rs.cpp:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ParSize
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 11
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 11
    functionName: RSCoder::Init
    functionSourceFile: /src/clamav/libclamunrar/rs.cpp
    functionUses: 0
    functionsReached:
    - RSCoder::gfInit
    - RSCoder::pnInit
    linkageType: ''
    returnType: void
    signature: void RSCoder::Init(int ParSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: RSCoder::gfInit
    functionSourceFile: /src/clamav/libclamunrar/rs.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSCoder::gfInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: RSCoder::gfMult
    functionSourceFile: /src/clamav/libclamunrar/rs.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RSCoder::gfMult(int a,int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clean
      Src: /src/clamav/libclamunrar/rs.cpp:43,1
    - Dst: Clean
      Src: /src/clamav/libclamunrar/rs.cpp:49,1
    - Dst: RSCoder::pnMult
      Src: /src/clamav/libclamunrar/rs.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 60
    functionName: RSCoder::pnInit
    functionSourceFile: /src/clamav/libclamunrar/rs.cpp
    functionUses: 1
    functionsReached:
    - RSCoder::pnMult
    - Clean
    linkageType: ''
    returnType: void
    signature: void RSCoder::pnInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clean
      Src: /src/clamav/libclamunrar/rs.cpp:66,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - p1
    - p2
    - r
    argTypes:
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: RSCoder::pnMult
    functionSourceFile: /src/clamav/libclamunrar/rs.cpp
    functionUses: 1
    functionsReached:
    - Clean
    - RSCoder::gfMult
    linkageType: ''
    returnType: void
    signature: void RSCoder::pnMult(int *p1,int *p2,int *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clean
      Src: /src/clamav/libclamunrar/rs.cpp:78,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:85,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - Data
    - DataSize
    - DestData
    argTypes:
    - byte*
    - int
    - byte*
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: RSCoder::Encode
    functionSourceFile: /src/clamav/libclamunrar/rs.cpp
    functionUses: 0
    functionsReached:
    - Clean
    - RSCoder::gfMult
    linkageType: ''
    returnType: void
    signature: void RSCoder::Encode(byte *Data,int DataSize,byte *DestData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:102,1
    - Dst: Clean
      Src: /src/clamav/libclamunrar/rs.cpp:116,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:121,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:130,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:138,1
    - Dst: RSCoder::pnMult
      Src: /src/clamav/libclamunrar/rs.cpp:146,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:153,1
    - Dst: RSCoder::gfMult
      Src: /src/clamav/libclamunrar/rs.cpp:157,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 4
    argNames:
    - Data
    - DataSize
    - EraLoc
    - EraSize
    argTypes:
    - byte*
    - int
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 160
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 160
    functionName: RSCoder::Decode
    functionSourceFile: /src/clamav/libclamunrar/rs.cpp
    functionUses: 0
    functionsReached:
    - RSCoder::pnMult
    - Clean
    - RSCoder::gfMult
    linkageType: ''
    returnType: bool
    signature: bool RSCoder::Decode(byte *Data,int DataSize,int *EraLoc,int EraSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData::CheckArgs
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:6,1
    - Dst: ItemsCount
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:8,1
    - Dst: CommandData::CheckArgs
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:10,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - CheckName
    - Dir
    - CheckFullPath
    - CheckInclList
    argTypes:
    - wchar*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 13
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 13
    functionName: CommandData::ExclCheck
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 0
    functionsReached:
    - CommandData::CheckArgs
    - ItemsCount
    linkageType: ''
    returnType: bool
    signature: bool CommandData::ExclCheck(const wchar *CheckName,bool Dir,bool CheckFullPath,bool
      CheckInclList)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConvertPath
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:18,1
    - Dst: StringList*::Rewind
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:22,1
    - Dst: StringList*::GetString
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:23,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:23,1
    - Dst: PointToLastChar
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:25,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:57,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:57,1
    - Dst: IsFullPath
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:61,1
    - Dst: ConvertNameToFull
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:70,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:70,1
    - Dst: CmpName
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:71,1
    - Dst: ConvertPath
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:81,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:83,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:91,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:91,1
    - Dst: CmpName
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 5
    argNames:
    - Args
    - Dir
    - CheckName
    - CheckFullPath
    - MatchMode
    argTypes:
    - StringList*
    - bool
    - wchar*
    - bool
    - int
    constantsTouched: []
    func_position:
      end: 100
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 100
    functionName: CommandData::CheckArgs
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 1
    functionsReached:
    - IsFullPath
    - wcsncpyz
    - PointToLastChar
    - ConvertNameToFull
    - CmpName
    - StringList*::GetString
    - IsPathDiv
    - wcsncatz
    - ASIZE
    - ConvertPath
    - StringList*::Rewind
    linkageType: ''
    returnType: bool
    signature: bool CommandData::CheckArgs(StringList *Args,bool Dir,const wchar *CheckName,bool
      CheckFullPath,int MatchMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - FileAttr
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: CommandData::ExclDirByAttr
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CommandData::ExclDirByAttr(uint FileAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:134,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:146,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:147,1
    - Dst: SetAgeText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:152,1
    - Dst: SetIsoText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:152,1
    - Dst: SetAgeText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:157,1
    - Dst: SetIsoText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:157,1
    - Dst: SetAgeText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:164,1
    - Dst: SetIsoText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:164,1
    - Dst: SetAgeText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:169,1
    - Dst: SetIsoText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:169,1
    - Dst: SetAgeText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:176,1
    - Dst: SetIsoText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:176,1
    - Dst: SetAgeText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:181,1
    - Dst: SetIsoText
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:181,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - Mod
    - Before
    - Age
    argTypes:
    - wchar*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 186
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 186
    functionName: CommandData::SetTimeFilters
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 1
    functionsReached:
    - SetAgeText
    - toupperw
    - SetIsoText
    - wcschr
    linkageType: ''
    returnType: void
    signature: void CommandData::SetTimeFilters(const wchar *Mod,bool Before,bool
      Age)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsSet
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:196,1
    - Dst: IsSet
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:206,1
    - Dst: IsSet
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:216,1
    - Dst: IsSet
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:226,1
    - Dst: IsSet
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:236,1
    - Dst: IsSet
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:246,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 3
    argNames:
    - ftm
    - ftc
    - fta
    argTypes:
    - RarTime
    - RarTime
    - RarTime
    constantsTouched: []
    func_position:
      end: 257
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 257
    functionName: CommandData::TimeCheck
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 0
    functionsReached:
    - IsSet
    linkageType: ''
    returnType: bool
    signature: bool CommandData::TimeCheck(RarTime &ftm,RarTime &ftc,RarTime &fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - Size
    argTypes:
    - int64
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: CommandData::SizeCheck
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CommandData::SizeCheck(int64 Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CommandData::ExclCheck
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:285,1
    - Dst: CommandData::TimeCheck
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:288,1
    - Dst: CommandData::SizeCheck
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:295,1
    - Dst: Rewind
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:299,1
    - Dst: GetString
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:300,1
    - Dst: CmpName
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:301,1
    - Dst: wcsicompc
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:304,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:306,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 23
    argCount: 6
    argNames:
    - FileHead
    - ExactMatch
    - MatchType
    - Flags
    - MatchedArg
    - MatchedArgSize
    argTypes:
    - FileHeader
    - bool*
    - int
    - bool
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 310
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 310
    functionName: CommandData::IsProcessFile
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 0
    functionsReached:
    - wcsncpyz
    - CmpName
    - GetString
    - wcsicompc
    - CommandData::SizeCheck
    - CommandData::ExclCheck
    - Rewind
    - CommandData::TimeCheck
    linkageType: ''
    returnType: int
    signature: "int CommandData::IsProcessFile(FileHeader &FileHead,bool *ExactMatch,int
      MatchType,\n                               bool Flags,wchar *MatchedArg,uint
      MatchedArgSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsDigit
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:316,1
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/cmdfilter.cpp:336,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - S
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 353
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 353
    functionName: CommandData::SetStoreTimeMode
    functionSourceFile: /src/clamav/libclamunrar/cmdfilter.cpp
    functionUses: 1
    functionsReached:
    - IsDigit
    - toupperw
    linkageType: ''
    returnType: void
    signature: void CommandData::SetStoreTimeMode(const wchar *S)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 13
    functionName: DataSet
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/dll.cpp:20,1
    - Dst: RAROpenArchiveEx
      Src: /src/clamav/libclamunrar/dll.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct RAROpenArchiveData*
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: RAROpenArchive
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached:
    - memset
    - RAROpenArchiveEx
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE RAROpenArchive(struct RAROpenArchiveData *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Clean
      Src: /src/clamav/libclamunrar/dll.cpp:38,1
    - Dst: DataSet::DataSet
      Src: /src/clamav/libclamunrar/dll.cpp:41,1
    - Dst: DataSet*::Cmd::FileArgs::AddString
      Src: /src/clamav/libclamunrar/dll.cpp:44,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:51,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:51,1
    - Dst: AreFileApisANSI
      Src: /src/clamav/libclamunrar/dll.cpp:53,1
    - Dst: OemToCharBuffA
      Src: /src/clamav/libclamunrar/dll.cpp:55,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:55,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:56,1
    - Dst: GetWideName
      Src: /src/clamav/libclamunrar/dll.cpp:62,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:62,1
    - Dst: DataSet*::Cmd::AddArcName
      Src: /src/clamav/libclamunrar/dll.cpp:64,1
    - Dst: DataSet*::Arc::Open
      Src: /src/clamav/libclamunrar/dll.cpp:74,1
    - Dst: DataSet*::Arc::IsArchive
      Src: /src/clamav/libclamunrar/dll.cpp:80,1
    - Dst: GetErrorCode
      Src: /src/clamav/libclamunrar/dll.cpp:86,1
    - Dst: RarErrorToDll
      Src: /src/clamav/libclamunrar/dll.cpp:88,1
    - Dst: DataSet*::Arc::GetComment
      Src: /src/clamav/libclamunrar/dll.cpp:117,1
    - Dst: Array::Push
      Src: /src/clamav/libclamunrar/dll.cpp:121,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/dll.cpp:125,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/dll.cpp:126,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/dll.cpp:132,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/dll.cpp:133,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/dll.cpp:133,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/dll.cpp:134,1
    - Dst: Array::Size
      Src: /src/clamav/libclamunrar/dll.cpp:134,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/dll.cpp:138,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/dll.cpp:139,1
    - Dst: DataSet*::Extract::ExtractArchiveInit
      Src: /src/clamav/libclamunrar/dll.cpp:145,1
    - Dst: RarErrorToDll
      Src: /src/clamav/libclamunrar/dll.cpp:153,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 91
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct RAROpenArchiveDataEx*
    constantsTouched: []
    func_position:
      end: 165
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 165
    functionName: RAROpenArchiveEx
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 2
    functionsReached:
    - RarErrorToDll
    - DataSet*::Cmd::FileArgs::AddString
    - Clean
    - WideToChar
    - strncpyz
    - DataSet*::Extract::ExtractArchiveInit
    - Array::Push
    - Array::Size
    - DataSet::DataSet
    - AreFileApisANSI
    - DataSet*::Arc::GetComment
    - DataSet*::Arc::IsArchive
    - OemToCharBuffA
    - GetErrorCode
    - GetWideName
    - memset
    - DataSet*::Arc::Open
    - ASIZE
    - DataSet*::Cmd::AddArcName
    - memcpy
    - Min
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE RAROpenArchiveEx(struct RAROpenArchiveDataEx *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarErrorToDll
      Src: /src/clamav/libclamunrar/dll.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hArcData
    argTypes:
    - HANDLE
    constantsTouched: []
    func_position:
      end: 181
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 181
    functionName: RARCloseArchive
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 1
    functionsReached:
    - RarErrorToDll
    linkageType: ''
    returnType: int
    signature: int RARCloseArchive(HANDLE hArcData)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/dll.cpp:187,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:191,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:191,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:192,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - hArcData
    - D
    argTypes:
    - HANDLE
    - struct RARHeaderData*
    constantsTouched: []
    func_position:
      end: 206
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 206
    functionName: RARReadHeader
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - memset
    - strncpyz
    linkageType: ''
    returnType: int
    signature: int RARReadHeader(HANDLE hArcData,struct RARHeaderData *D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataSet*::Arc::SearchBlock
      Src: /src/clamav/libclamunrar/dll.cpp:214,1
    - Dst: DataSet*::Arc::GetHeaderType
      Src: /src/clamav/libclamunrar/dll.cpp:216,1
    - Dst: MergeArchive
      Src: /src/clamav/libclamunrar/dll.cpp:218,1
    - Dst: DataSet*::Arc::Seek
      Src: /src/clamav/libclamunrar/dll.cpp:220,1
    - Dst: RARReadHeaderEx
      Src: /src/clamav/libclamunrar/dll.cpp:221,1
    - Dst: RARReadHeaderEx
      Src: /src/clamav/libclamunrar/dll.cpp:241,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:245,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:245,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/dll.cpp:246,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:246,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:248,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:248,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/dll.cpp:249,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:249,1
    - Dst: CharToOemA
      Src: /src/clamav/libclamunrar/dll.cpp:251,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/dll.cpp:266,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/dll.cpp:267,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/dll.cpp:268,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/dll.cpp:269,1
    - Dst: FileHeader*::mtime::GetDos
      Src: /src/clamav/libclamunrar/dll.cpp:273,1
    - Dst: FileHeader*::mtime::GetWin
      Src: /src/clamav/libclamunrar/dll.cpp:275,1
    - Dst: FileHeader*::ctime::GetWin
      Src: /src/clamav/libclamunrar/dll.cpp:278,1
    - Dst: FileHeader*::atime::GetWin
      Src: /src/clamav/libclamunrar/dll.cpp:281,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/dll.cpp:290,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/dll.cpp:300,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:314,1
    - Dst: RarErrorToDll
      Src: /src/clamav/libclamunrar/dll.cpp:319,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 2
    argNames:
    - hArcData
    - D
    argTypes:
    - HANDLE
    - struct RARHeaderDataEx*
    constantsTouched: []
    func_position:
      end: 322
      start: 209
    functionDepth: 7
    functionLinenumber: 209
    functionLinenumberEnd: 322
    functionName: RARReadHeaderEx
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 2
    functionsReached:
    - FileHeader*::ctime::GetWin
    - uint
    - RarErrorToDll
    - FileHeader*::mtime::GetDos
    - wcsncpyz
    - CharToOemA
    - RARReadHeaderEx
    - DataSet*::Arc::SearchBlock
    - MergeArchive
    - WideToChar
    - FileHeader*::atime::GetWin
    - DataSet*::Arc::Seek
    - FileHeader*::mtime::GetWin
    - DataSet*::Arc::GetHeaderType
    - ASIZE
    - memcpy
    linkageType: ''
    returnType: int
    signature: int RARReadHeaderEx(HANDLE hArcData,struct RARHeaderDataEx *D)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataSet*::Arc::GetHeaderType
      Src: /src/clamav/libclamunrar/dll.cpp:334,1
    - Dst: MergeArchive
      Src: /src/clamav/libclamunrar/dll.cpp:336,1
    - Dst: DataSet*::Arc::Seek
      Src: /src/clamav/libclamunrar/dll.cpp:338,1
    - Dst: DataSet*::Arc::SeekToNext
      Src: /src/clamav/libclamunrar/dll.cpp:343,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:355,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:355,1
    - Dst: OemToCharA
      Src: /src/clamav/libclamunrar/dll.cpp:360,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/dll.cpp:362,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:362,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/dll.cpp:363,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:363,1
    - Dst: strncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:368,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:368,1
    - Dst: OemToCharA
      Src: /src/clamav/libclamunrar/dll.cpp:373,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/dll.cpp:375,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:375,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:380,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:380,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/dll.cpp:381,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:381,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:385,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:385,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/dll.cpp:387,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:387,1
    - Dst: DataSet*::Extract::ExtractCurrentFile
      Src: /src/clamav/libclamunrar/dll.cpp:390,1
    - Dst: DataSet*::Arc::IsOpened
      Src: /src/clamav/libclamunrar/dll.cpp:399,1
    - Dst: DataSet*::Arc::ReadHeader
      Src: /src/clamav/libclamunrar/dll.cpp:399,1
    - Dst: DataSet*::Arc::GetHeaderType
      Src: /src/clamav/libclamunrar/dll.cpp:400,1
    - Dst: DataSet*::Extract::ExtractCurrentFile
      Src: /src/clamav/libclamunrar/dll.cpp:402,1
    - Dst: DataSet*::Arc::SeekToNext
      Src: /src/clamav/libclamunrar/dll.cpp:403,1
    - Dst: DataSet*::Arc::Seek
      Src: /src/clamav/libclamunrar/dll.cpp:405,1
    - Dst: RarErrorToDll
      Src: /src/clamav/libclamunrar/dll.cpp:414,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 6
    argNames:
    - hArcData
    - Operation
    - DestPath
    - DestName
    - DestPathW
    - DestNameW
    argTypes:
    - HANDLE
    - int
    - char*
    - char*
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 417
      start: 325
    functionDepth: 7
    functionLinenumber: 325
    functionLinenumberEnd: 417
    functionName: ProcessFile
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 4
    functionsReached:
    - DataSet*::Extract::ExtractCurrentFile
    - RarErrorToDll
    - DataSet*::Arc::ReadHeader
    - wcsncpyz
    - MergeArchive
    - DataSet*::Arc::IsOpened
    - DataSet*::Arc::Seek
    - DataSet*::Arc::SeekToNext
    - DataSet*::Arc::GetHeaderType
    - ASIZE
    - OemToCharA
    - AddEndSlash
    - strncpyz
    - CharToWide
    linkageType: ''
    returnType: int
    signature: int ProcessFile(HANDLE hArcData,int Operation,char *DestPath,char *DestName,wchar
      *DestPathW,wchar *DestNameW)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ProcessFile
      Src: /src/clamav/libclamunrar/dll.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hArcData
    - Operation
    - DestPath
    - DestName
    argTypes:
    - HANDLE
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 8
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: RARProcessFile
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 2
    functionsReached:
    - ProcessFile
    linkageType: ''
    returnType: int
    signature: int RARProcessFile(HANDLE hArcData,int Operation,char *DestPath,char
      *DestName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ProcessFile
      Src: /src/clamav/libclamunrar/dll.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hArcData
    - Operation
    - DestPath
    - DestName
    argTypes:
    - HANDLE
    - int
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 8
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: RARProcessFileW
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached:
    - ProcessFile
    linkageType: ''
    returnType: int
    signature: int RARProcessFileW(HANDLE hArcData,int Operation,wchar *DestPath,wchar
      *DestName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hArcData
    - ChangeVolProc
    argTypes:
    - HANDLE
    - CHANGEVOLPROC
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: RARSetChangeVolProc
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RARSetChangeVolProc(HANDLE hArcData,CHANGEVOLPROC ChangeVolProc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hArcData
    - Callback
    - UserData
    argTypes:
    - HANDLE
    - UNRARCALLBACK
    - LPARAM
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: RARSetCallback
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RARSetCallback(HANDLE hArcData,UNRARCALLBACK Callback,LPARAM UserData)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hArcData
    - ProcessDataProc
    argTypes:
    - HANDLE
    - PROCESSDATAPROC
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: RARSetProcessDataProc
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RARSetProcessDataProc(HANDLE hArcData,PROCESSDATAPROC ProcessDataProc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWideName
      Src: /src/clamav/libclamunrar/dll.cpp:459,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/dll.cpp:459,1
    - Dst: DataSet*::Cmd::Password::Set
      Src: /src/clamav/libclamunrar/dll.cpp:460,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/dll.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hArcData
    - Password
    argTypes:
    - HANDLE
    - char*
    constantsTouched: []
    func_position:
      end: 463
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 463
    functionName: RARSetPassword
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - cleandata
    - DataSet*::Cmd::Password::Set
    - GetWideName
    linkageType: ''
    returnType: void
    signature: void RARSetPassword(HANDLE hArcData,char *Password)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: RARGetDllVersion
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RARGetDllVersion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - ErrCode
    argTypes:
    - RAR_EXIT
    constantsTouched: []
    func_position:
      end: 496
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 496
    functionName: RarErrorToDll
    functionSourceFile: /src/clamav/libclamunrar/dll.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int RarErrorToDll(RAR_EXIT ErrCode)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: VM_PreparedProgram
    functionSourceFile: /src/clamav/libclamunrar/rarvm.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VM_PreparedProgram()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/crypt.cpp:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: CryptData::CryptData
    functionSourceFile: /src/clamav/libclamunrar/crypt.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void CryptData::CryptData()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptData::Decrypt13
      Src: /src/clamav/libclamunrar/crypt.cpp:28,1
    - Dst: CryptData::Crypt15
      Src: /src/clamav/libclamunrar/crypt.cpp:31,1
    - Dst: CryptData::DecryptBlock20
      Src: /src/clamav/libclamunrar/crypt.cpp:35,1
    - Dst: blockDecrypt
      Src: /src/clamav/libclamunrar/crypt.cpp:40,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - Buf
    - Size
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: CryptData::DecryptBlock
    functionSourceFile: /src/clamav/libclamunrar/crypt.cpp
    functionUses: 0
    functionsReached:
    - CryptData::DecryptBlock20
    - CryptData::Decrypt13
    - CryptData::Crypt15
    - blockDecrypt
    linkageType: ''
    returnType: void
    signature: void CryptData::DecryptBlock(byte *Buf,size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SecPassword*::IsSet
      Src: /src/clamav/libclamunrar/crypt.cpp:50,1
    - Dst: SecPassword*::Get
      Src: /src/clamav/libclamunrar/crypt.cpp:56,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt.cpp:56,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/crypt.cpp:57,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/crypt.cpp:60,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/crypt.cpp:60,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/crypt.cpp:61,1
    - Dst: CryptData::SetKey13
      Src: /src/clamav/libclamunrar/crypt.cpp:67,1
    - Dst: CryptData::SetKey15
      Src: /src/clamav/libclamunrar/crypt.cpp:70,1
    - Dst: CryptData::SetKey20
      Src: /src/clamav/libclamunrar/crypt.cpp:73,1
    - Dst: CryptData::SetKey30
      Src: /src/clamav/libclamunrar/crypt.cpp:77,1
    - Dst: CryptData::SetKey50
      Src: /src/clamav/libclamunrar/crypt.cpp:80,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.cpp:83,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/crypt.cpp:84,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 8
    argNames:
    - Encrypt
    - Method
    - Password
    - Salt
    - InitV
    - Lg2Cnt
    - HashKey
    - PswCheck
    argTypes:
    - bool
    - CRYPT_METHOD
    - SecPassword*
    - byte*
    - byte*
    - uint
    - byte*
    - byte*
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: CryptData::SetCryptKeys
    functionSourceFile: /src/clamav/libclamunrar/crypt.cpp
    functionUses: 0
    functionsReached:
    - CryptData::SetKey13
    - CryptData::SetKey15
    - CryptData::SetKey50
    - CryptData::SetKey20
    - WideToChar
    - ASIZE
    - SecPassword*::Get
    - SecPassword*::IsSet
    - cleandata
    - Min
    - CryptData::SetKey30
    linkageType: ''
    returnType: bool
    signature: "bool CryptData::SetCryptKeys(bool Encrypt,CRYPT_METHOD Method,\n     SecPassword
      *Password,const byte *Salt,\n     const byte *InitV,uint Lg2Cnt,byte *HashKey,byte
      *PswCheck)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::RarTime
      Src: /src/clamav/libclamunrar/crypt.cpp:93,1
    - Dst: RarTime::SetCurrentTime
      Src: /src/clamav/libclamunrar/crypt.cpp:94,1
    - Dst: RarTime::GetWin
      Src: /src/clamav/libclamunrar/crypt.cpp:95,1
    - Dst: clock
      Src: /src/clamav/libclamunrar/crypt.cpp:95,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/crypt.cpp:98,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/crypt.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - RndBuf
    - BufSize
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: TimeRandomize
    functionSourceFile: /src/clamav/libclamunrar/crypt.cpp
    functionUses: 0
    functionsReached:
    - byte
    - RarTime::GetWin
    - clock
    - RarTime::SetCurrentTime
    - RarTime::RarTime
    linkageType: ''
    returnType: void
    signature: void TimeRandomize(byte *RndBuf,size_t BufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/clamav/libclamunrar/crypt.cpp:112,1
    - Dst: CryptGenRandom
      Src: /src/clamav/libclamunrar/crypt.cpp:114,1
    - Dst: CryptReleaseContext
      Src: /src/clamav/libclamunrar/crypt.cpp:115,1
    - Dst: fopen
      Src: /src/clamav/libclamunrar/crypt.cpp:118,1
    - Dst: fread
      Src: /src/clamav/libclamunrar/crypt.cpp:121,1
    - Dst: fclose
      Src: /src/clamav/libclamunrar/crypt.cpp:122,1
    - Dst: TimeRandomize
      Src: /src/clamav/libclamunrar/crypt.cpp:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - RndBuf
    - BufSize
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 4
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: GetRnd
    functionSourceFile: /src/clamav/libclamunrar/crypt.cpp
    functionUses: 0
    functionsReached:
    - fread
    - CryptGenRandom
    - CryptReleaseContext
    - TimeRandomize
    - CryptAcquireContext
    - fclose
    - fopen
    linkageType: ''
    returnType: void
    signature: void GetRnd(byte *RndBuf,size_t BufSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - InitVal
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: init
    functionSourceFile: /src/clamav/libclamunrar/model.hpp
    functionUses: 87
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init(int InitVal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_SHORT16
      Src: /src/clamav/libclamunrar/model.hpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: getMean
    functionSourceFile: /src/clamav/libclamunrar/model.hpp
    functionUses: 1
    functionsReached:
    - GET_SHORT16
    linkageType: ''
    returnType: uint
    signature: uint getMean()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: update
    functionSourceFile: /src/clamav/libclamunrar/model.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - RARPPM_MEM_BLK*
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: insertAt
    functionSourceFile: /src/clamav/libclamunrar/suballoc.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insertAt(RARPPM_MEM_BLK* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: remove
    functionSourceFile: /src/clamav/libclamunrar/suballoc.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void remove()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StopSubAllocator
      Src: /src/clamav/libclamunrar/suballoc.hpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ~SubAllocator()
    functionSourceFile: /src/clamav/libclamunrar/suballoc.hpp
    functionUses: 0
    functionsReached:
    - StopSubAllocator
    linkageType: ''
    returnType: void
    signature: void ~SubAllocator()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: SubAllocator::GetAllocatedMemory
    functionSourceFile: /src/clamav/libclamunrar/suballoc.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long GetAllocatedMemory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Tell
      Src: /src/clamav/libclamunrar/savepos.hpp:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Src
    argTypes:
    - File
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 2
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: SaveFilePos::SaveFilePos
    functionSourceFile: /src/clamav/libclamunrar/savepos.hpp
    functionUses: 0
    functionsReached:
    - File::Tell
    linkageType: ''
    returnType: void
    signature: void SaveFilePos(File &Src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsOpened
      Src: /src/clamav/libclamunrar/savepos.hpp:19,1
    - Dst: Seek
      Src: /src/clamav/libclamunrar/savepos.hpp:23,1
    - Dst: Close
      Src: /src/clamav/libclamunrar/savepos.hpp:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 37
    functionName: ~SaveFilePos()
    functionSourceFile: /src/clamav/libclamunrar/savepos.hpp
    functionUses: 0
    functionsReached:
    - Seek
    - Close
    - IsOpened
    linkageType: ''
    returnType: void
    signature: void ~SaveFilePos()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dest
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Xor128
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Xor128(void *dest,const void *arg1,const void *arg2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dest
    - arg1
    - arg2
    - arg3
    - arg4
    argTypes:
    - byte*
    - byte*
    - byte*
    - byte*
    - byte*
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: Xor128
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Xor128(byte *dest,const byte *arg1,const byte *arg2,\n                   const
      byte *arg3,const byte *arg4)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - byte*
    - byte*
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: Copy128
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Copy128(byte *dest,const byte *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rijndael::GenerateTables
      Src: /src/clamav/libclamunrar/rijndael.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: Rijndael::Rijndael
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached:
    - Rijndael::GenerateTables
    linkageType: ''
    returnType: void
    signature: void Rijndael::Rijndael()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/clamav/libclamunrar/rijndael.cpp:97,1
    - Dst: __cpuid
      Src: /src/clamav/libclamunrar/rijndael.cpp:100,1
    - Dst: getauxval
      Src: /src/clamav/libclamunrar/rijndael.cpp:106,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/rijndael.cpp:135,1
    - Dst: Rijndael::keySched
      Src: /src/clamav/libclamunrar/rijndael.cpp:140,1
    - Dst: Rijndael::keyEncToDec
      Src: /src/clamav/libclamunrar/rijndael.cpp:143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - Encrypt
    - key
    - keyLen
    - initVector
    argTypes:
    - bool
    - byte*
    - uint
    - byte*
    constantsTouched: []
    func_position:
      end: 144
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 144
    functionName: Rijndael::Init
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached:
    - Rijndael::keySched
    - memset
    - __cpuid
    - Rijndael::keyEncToDec
    - getauxval
    linkageType: ''
    returnType: void
    signature: void Rijndael::Init(bool Encrypt,const byte *key,uint keyLen,const
      byte * initVector)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rijndael::blockEncryptSSE
      Src: /src/clamav/libclamunrar/rijndael.cpp:156,1
    - Dst: Rijndael::blockEncryptNeon
      Src: /src/clamav/libclamunrar/rijndael.cpp:162,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:172,1
    - Dst: Copy128
      Src: /src/clamav/libclamunrar/rijndael.cpp:174,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:178,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:179,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:180,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:181,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:182,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:186,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:187,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:188,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:189,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:190,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:192,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:209,1
    - Dst: Copy128
      Src: /src/clamav/libclamunrar/rijndael.cpp:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 3
    argNames:
    - input
    - inputLen
    - outBuffer
    argTypes:
    - byte*
    - size_t
    - byte*
    constantsTouched: []
    func_position:
      end: 216
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 216
    functionName: Rijndael::blockEncrypt
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached:
    - Xor128
    - Rijndael::blockEncryptNeon
    - Rijndael::blockEncryptSSE
    - Copy128
    linkageType: ''
    returnType: void
    signature: void Rijndael::blockEncrypt(const byte *input,size_t inputLen,byte
      *outBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:222,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:228,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:230,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:233,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:234,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:238,1
    - Dst: _mm_aesenc_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:239,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:242,1
    - Dst: _mm_aesenclast_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:243,1
    - Dst: _mm_storeu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:244,1
    - Dst: _mm_storeu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - input
    - numBlocks
    - outBuffer
    argTypes:
    - byte*
    - size_t
    - byte*
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: Rijndael::blockEncryptSSE
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - _mm_loadu_si128
    - _mm_aesenclast_si128
    - _mm_xor_si128
    - _mm_aesenc_si128
    - _mm_storeu_si128
    linkageType: ''
    returnType: void
    signature: void Rijndael::blockEncryptSSE(const byte *input,size_t numBlocks,byte
      *outBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vst1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:260,1
    - Dst: veorq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:260,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:260,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:260,1
    - Dst: vst1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:262,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:262,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:264,1
    - Dst: vaeseq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:267,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:267,1
    - Dst: vaesmcq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:268,1
    - Dst: vaeseq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:270,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:270,1
    - Dst: veorq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:271,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:271,1
    - Dst: vst1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:272,1
    - Dst: vst1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:280,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - input
    - numBlocks
    - outBuffer
    argTypes:
    - byte*
    - size_t
    - byte*
    constantsTouched: []
    func_position:
      end: 282
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 282
    functionName: Rijndael::blockEncryptNeon
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - veorq_u8
    - vaesmcq_u8
    - vld1q_u8
    - vaeseq_u8
    - vst1q_u8
    linkageType: ''
    returnType: void
    signature: void Rijndael::blockEncryptNeon(const byte *input,size_t numBlocks,byte
      *outBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rijndael::blockDecryptSSE
      Src: /src/clamav/libclamunrar/rijndael.cpp:295,1
    - Dst: Rijndael::blockDecryptNeon
      Src: /src/clamav/libclamunrar/rijndael.cpp:301,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rijndael.cpp:307,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:313,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:315,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:316,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:317,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:318,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:322,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:323,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:324,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:325,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:326,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:329,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:346,1
    - Dst: Xor128
      Src: /src/clamav/libclamunrar/rijndael.cpp:349,1
    - Dst: Copy128
      Src: /src/clamav/libclamunrar/rijndael.cpp:351,1
    - Dst: Copy128
      Src: /src/clamav/libclamunrar/rijndael.cpp:352,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rijndael.cpp:358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 3
    argNames:
    - input
    - inputLen
    - outBuffer
    argTypes:
    - byte*
    - size_t
    - byte*
    constantsTouched: []
    func_position:
      end: 359
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 359
    functionName: Rijndael::blockDecrypt
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached:
    - Rijndael::blockDecryptNeon
    - Xor128
    - Rijndael::blockDecryptSSE
    - Copy128
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Rijndael::blockDecrypt(const byte *input, size_t inputLen, byte
      *outBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:365,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:371,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:372,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:373,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:377,1
    - Dst: _mm_aesdec_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:378,1
    - Dst: _mm_loadu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:381,1
    - Dst: _mm_aesdeclast_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:382,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:385,1
    - Dst: _mm_storeu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:387,1
    - Dst: _mm_storeu_si128
      Src: /src/clamav/libclamunrar/rijndael.cpp:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - input
    - numBlocks
    - outBuffer
    argTypes:
    - byte*
    - size_t
    - byte*
    constantsTouched: []
    func_position:
      end: 391
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 391
    functionName: Rijndael::blockDecryptSSE
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - _mm_aesdec_si128
    - _mm_loadu_si128
    - _mm_xor_si128
    - _mm_aesdeclast_si128
    - _mm_storeu_si128
    linkageType: ''
    returnType: void
    signature: void Rijndael::blockDecryptSSE(const byte *input, size_t numBlocks,
      byte *outBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rijndael.cpp:399,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:403,1
    - Dst: vaesdq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:407,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:407,1
    - Dst: vaesimcq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:408,1
    - Dst: vaesdq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:411,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:411,1
    - Dst: veorq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:412,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:412,1
    - Dst: veorq_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:415,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:415,1
    - Dst: vst1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:417,1
    - Dst: vld1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:417,1
    - Dst: vst1q_u8
      Src: /src/clamav/libclamunrar/rijndael.cpp:418,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rijndael.cpp:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - input
    - numBlocks
    - outBuffer
    argTypes:
    - byte*
    - size_t
    - byte*
    constantsTouched: []
    func_position:
      end: 426
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 426
    functionName: Rijndael::blockDecryptNeon
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - vaesimcq_u8
    - veorq_u8
    - vld1q_u8
    - memcpy
    - vaesdq_u8
    - vst1q_u8
    linkageType: ''
    returnType: void
    signature: void Rijndael::blockDecryptNeon(const byte *input, size_t numBlocks,
      byte *outBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rijndael.cpp:447,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 1
    argNames:
    - key
    argTypes:
    - byte[][]
    constantsTouched: []
    func_position:
      end: 504
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 504
    functionName: Rijndael::keySched
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Rijndael::keySched(byte key[_MAX_KEY_COLUMNS][4])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rijndael.cpp:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 519
    functionName: Rijndael::keyEncToDec
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Rijndael::keyEncToDec()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - byte
    - byte
    constantsTouched: []
    func_position:
      end: 534
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 534
    functionName: gmul
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte gmul(byte a, byte b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gmul
      Src: /src/clamav/libclamunrar/rijndael.cpp:548,1
    - Dst: gmul
      Src: /src/clamav/libclamunrar/rijndael.cpp:549,1
    - Dst: gmul
      Src: /src/clamav/libclamunrar/rijndael.cpp:552,1
    - Dst: gmul
      Src: /src/clamav/libclamunrar/rijndael.cpp:553,1
    - Dst: gmul
      Src: /src/clamav/libclamunrar/rijndael.cpp:554,1
    - Dst: gmul
      Src: /src/clamav/libclamunrar/rijndael.cpp:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 557
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 557
    functionName: Rijndael::GenerateTables
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - gmul
    linkageType: ''
    returnType: void
    signature: void Rijndael::GenerateTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestRijndael
      Src: /src/clamav/libclamunrar/rijndael.cpp:562,1
    - Dst: exit
      Src: /src/clamav/libclamunrar/rijndael.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 562
    functionName: TestRij
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 0
    functionsReached:
    - exit
    - TestRijndael
    linkageType: ''
    returnType: void
    signature: void TestRij()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rijndael::Rijndael
      Src: /src/clamav/libclamunrar/rijndael.cpp:584,1
    - Dst: Rijndael::Init
      Src: /src/clamav/libclamunrar/rijndael.cpp:591,1
    - Dst: Rijndael::blockEncrypt
      Src: /src/clamav/libclamunrar/rijndael.cpp:593,1
    - Dst: BinToHex
      Src: /src/clamav/libclamunrar/rijndael.cpp:594,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/rijndael.cpp:594,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/rijndael.cpp:595,1
    - Dst: BinToHex
      Src: /src/clamav/libclamunrar/rijndael.cpp:596,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/rijndael.cpp:596,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/rijndael.cpp:597,1
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/rijndael.cpp:598,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/rijndael.cpp:599,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/rijndael.cpp:602,1
    - Dst: getchar
      Src: /src/clamav/libclamunrar/rijndael.cpp:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 606
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 606
    functionName: TestRijndael
    functionSourceFile: /src/clamav/libclamunrar/rijndael.cpp
    functionUses: 1
    functionsReached:
    - getchar
    - memcmp
    - BinToHex
    - Rijndael::blockEncrypt
    - mprintf
    - ASIZE
    - Rijndael::Rijndael
    - Rijndael::Init
    linkageType: ''
    returnType: void
    signature: void TestRijndael()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpInitData
      Src: /src/clamav/libclamunrar/unpack15.cpp:42,1
    - Dst: Unpack::UnpInitData15
      Src: /src/clamav/libclamunrar/unpack15.cpp:43,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack15.cpp:44,1
    - Dst: Unpack::InitHuff
      Src: /src/clamav/libclamunrar/unpack15.cpp:47,1
    - Dst: Unpack::GetFlagsBuf
      Src: /src/clamav/libclamunrar/unpack15.cpp:55,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack15.cpp:63,1
    - Dst: Unpack::UnpWriteBuf20
      Src: /src/clamav/libclamunrar/unpack15.cpp:66,1
    - Dst: Unpack::HuffDecode
      Src: /src/clamav/libclamunrar/unpack15.cpp:69,1
    - Dst: Unpack::GetFlagsBuf
      Src: /src/clamav/libclamunrar/unpack15.cpp:75,1
    - Dst: Unpack::LongLZ
      Src: /src/clamav/libclamunrar/unpack15.cpp:83,1
    - Dst: Unpack::HuffDecode
      Src: /src/clamav/libclamunrar/unpack15.cpp:85,1
    - Dst: Unpack::GetFlagsBuf
      Src: /src/clamav/libclamunrar/unpack15.cpp:92,1
    - Dst: Unpack::HuffDecode
      Src: /src/clamav/libclamunrar/unpack15.cpp:99,1
    - Dst: Unpack::LongLZ
      Src: /src/clamav/libclamunrar/unpack15.cpp:101,1
    - Dst: Unpack::ShortLZ
      Src: /src/clamav/libclamunrar/unpack15.cpp:106,1
    - Dst: Unpack::UnpWriteBuf20
      Src: /src/clamav/libclamunrar/unpack15.cpp:110,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 111
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 111
    functionName: Unpack::Unpack15
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpReadBuf
    - Unpack::GetFlagsBuf
    - Unpack::UnpWriteBuf20
    - Unpack::HuffDecode
    - Unpack::LongLZ
    - Unpack::UnpInitData15
    - Unpack::UnpInitData
    - Unpack::ShortLZ
    - Unpack::InitHuff
    linkageType: ''
    returnType: void
    signature: void Unpack::Unpack15(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:136,1
    - Dst: Unpack::CopyString15
      Src: /src/clamav/libclamunrar/unpack15.cpp:139,1
    - Dst: GetShortLen1
      Src: /src/clamav/libclamunrar/unpack15.cpp:154,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:156,1
    - Dst: GetShortLen1
      Src: /src/clamav/libclamunrar/unpack15.cpp:156,1
    - Dst: GetShortLen2
      Src: /src/clamav/libclamunrar/unpack15.cpp:161,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:163,1
    - Dst: GetShortLen2
      Src: /src/clamav/libclamunrar/unpack15.cpp:163,1
    - Dst: Unpack::CopyString15
      Src: /src/clamav/libclamunrar/unpack15.cpp:171,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:177,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:177,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:178,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:179,1
    - Dst: Unpack::CopyString15
      Src: /src/clamav/libclamunrar/unpack15.cpp:182,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:189,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:189,1
    - Dst: Unpack::CopyString15
      Src: /src/clamav/libclamunrar/unpack15.cpp:204,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:212,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:212,1
    - Dst: Unpack::CopyString15
      Src: /src/clamav/libclamunrar/unpack15.cpp:225,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 226
    functionName: Unpack::ShortLZ
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 1
    functionsReached:
    - GetShortLen2
    - fgetbits
    - faddbits
    - Unpack::CopyString15
    - Unpack::DecodeNum
    - GetShortLen1
    linkageType: ''
    returnType: void
    signature: void Unpack::ShortLZ()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:247,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:250,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:255,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:261,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:267,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:269,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:272,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:274,1
    - Dst: Unpack::CorrHuff
      Src: /src/clamav/libclamunrar/unpack15.cpp:283,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:291,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:292,1
    - Dst: Unpack::CopyString15
      Src: /src/clamav/libclamunrar/unpack15.cpp:317,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 318
    functionName: Unpack::LongLZ
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 1
    functionsReached:
    - Unpack::CorrHuff
    - fgetbits
    - faddbits
    - Unpack::CopyString15
    - Unpack::DecodeNum
    linkageType: ''
    returnType: void
    signature: void Unpack::LongLZ()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:331,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:334,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:337,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:340,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:342,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:350,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:351,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:360,1
    - Dst: Unpack::DecodeNum
      Src: /src/clamav/libclamunrar/unpack15.cpp:361,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:361,1
    - Dst: fgetbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:362,1
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:363,1
    - Dst: Unpack::CopyString15
      Src: /src/clamav/libclamunrar/unpack15.cpp:364,1
    - Dst: Unpack::CorrHuff
      Src: /src/clamav/libclamunrar/unpack15.cpp:389,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 396
    functionName: Unpack::HuffDecode
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 1
    functionsReached:
    - Unpack::CorrHuff
    - fgetbits
    - faddbits
    - Unpack::CopyString15
    - Unpack::DecodeNum
    linkageType: ''
    returnType: void
    signature: void Unpack::HuffDecode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::CorrHuff
      Src: /src/clamav/libclamunrar/unpack15.cpp:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 424
    functionName: Unpack::GetFlagsBuf
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 1
    functionsReached:
    - Unpack::CorrHuff
    linkageType: ''
    returnType: void
    signature: void Unpack::GetFlagsBuf()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 441
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 441
    functionName: Unpack::UnpInitData15
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpInitData15(int Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack15.cpp:452,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack15.cpp:453,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack15.cpp:454,1
    - Dst: Unpack::CorrHuff
      Src: /src/clamav/libclamunrar/unpack15.cpp:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 456
    functionName: Unpack::InitHuff
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 2
    functionsReached:
    - memset
    - Unpack::CorrHuff
    linkageType: ''
    returnType: void
    signature: void Unpack::InitHuff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack15.cpp:465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - CharSet
    - NumToPlace
    argTypes:
    - ushort*
    - byte*
    constantsTouched: []
    func_position:
      end: 468
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 468
    functionName: Unpack::CorrHuff
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Unpack::CorrHuff(ushort *CharSet,byte *NumToPlace)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - Distance
    - Length
    argTypes:
    - uint
    - uint
    constantsTouched: []
    func_position:
      end: 479
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 479
    functionName: Unpack::CopyString15
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Unpack::CopyString15(uint Distance,uint Length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: faddbits
      Src: /src/clamav/libclamunrar/unpack15.cpp:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - Num
    - StartPos
    - DecTab
    - PosTab
    argTypes:
    - uint
    - uint
    - uint*
    - uint*
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: Unpack::DecodeNum
    functionSourceFile: /src/clamav/libclamunrar/unpack15.cpp
    functionUses: 3
    functionsReached:
    - faddbits
    linkageType: ''
    returnType: uint
    signature: uint Unpack::DecodeNum(uint Num,uint StartPos,uint *DecTab,uint *PosTab)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sha256_context*
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: sha256_init
    functionSourceFile: /src/clamav/libclamunrar/sha256.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sha256_init(sha256_context *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawGetBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:56,1
    - Dst: sg1
      Src: /src/clamav/libclamunrar/sha256.cpp:58,1
    - Dst: sg0
      Src: /src/clamav/libclamunrar/sha256.cpp:58,1
    - Dst: Sg1
      Src: /src/clamav/libclamunrar/sha256.cpp:66,1
    - Dst: Ch
      Src: /src/clamav/libclamunrar/sha256.cpp:66,1
    - Dst: Sg0
      Src: /src/clamav/libclamunrar/sha256.cpp:77,1
    - Dst: Maj
      Src: /src/clamav/libclamunrar/sha256.cpp:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sha256_context*
    constantsTouched: []
    func_position:
      end: 87
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 87
    functionName: sha256_transform
    functionSourceFile: /src/clamav/libclamunrar/sha256.cpp
    functionUses: 0
    functionsReached:
    - Ch
    - RawGetBE4
    - Sg0
    - sg0
    - sg1
    - Maj
    - Sg1
    linkageType: ''
    returnType: void
    signature: void sha256_transform(sha256_context *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/sha256.cpp:100,1
    - Dst: sha256_transform
      Src: /src/clamav/libclamunrar/sha256.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - Data
    - Size
    argTypes:
    - sha256_context*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: sha256_process
    functionSourceFile: /src/clamav/libclamunrar/sha256.cpp
    functionUses: 3
    functionsReached:
    - memcpy
    - sha256_transform
    linkageType: ''
    returnType: void
    signature: void sha256_process(sha256_context *ctx, const void *Data, size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_transform
      Src: /src/clamav/libclamunrar/sha256.cpp:129,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/sha256.cpp:130,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:133,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:134,1
    - Dst: sha256_transform
      Src: /src/clamav/libclamunrar/sha256.cpp:136,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:138,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:139,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:140,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:141,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:142,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:143,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:144,1
    - Dst: RawPutBE4
      Src: /src/clamav/libclamunrar/sha256.cpp:145,1
    - Dst: sha256_init
      Src: /src/clamav/libclamunrar/sha256.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - Digest
    argTypes:
    - sha256_context*
    - byte*
    constantsTouched: []
    func_position:
      end: 148
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 148
    functionName: sha256_done
    functionSourceFile: /src/clamav/libclamunrar/sha256.cpp
    functionUses: 3
    functionsReached:
    - sha256_transform
    - memset
    - sha256_init
    - RawPutBE4
    linkageType: ''
    returnType: void
    signature: void sha256_done(sha256_context *ctx, byte *Digest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::CopyString
      Src: /src/clamav/libclamunrar/unpack20.cpp:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - Length
    - Distance
    argTypes:
    - uint
    - uint
    constantsTouched: []
    func_position:
      end: 10
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 10
    functionName: Unpack::CopyString20
    functionSourceFile: /src/clamav/libclamunrar/unpack20.cpp
    functionUses: 0
    functionsReached:
    - Unpack::CopyString
    linkageType: ''
    returnType: void
    signature: void Unpack::CopyString20(uint Length,uint Distance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpInitData
      Src: /src/clamav/libclamunrar/unpack20.cpp:27,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack20.cpp:28,1
    - Dst: Unpack::ReadTables20
      Src: /src/clamav/libclamunrar/unpack20.cpp:30,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack20.cpp:40,1
    - Dst: Unpack::UnpWriteBuf20
      Src: /src/clamav/libclamunrar/unpack20.cpp:44,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack20.cpp:50,1
    - Dst: Unpack::ReadTables20
      Src: /src/clamav/libclamunrar/unpack20.cpp:54,1
    - Dst: Unpack::DecodeAudio
      Src: /src/clamav/libclamunrar/unpack20.cpp:58,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack20.cpp:65,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:77,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:78,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack20.cpp:81,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:85,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:86,1
    - Dst: Unpack::CopyString20
      Src: /src/clamav/libclamunrar/unpack20.cpp:96,1
    - Dst: Unpack::ReadTables20
      Src: /src/clamav/libclamunrar/unpack20.cpp:101,1
    - Dst: Unpack::CopyString20
      Src: /src/clamav/libclamunrar/unpack20.cpp:107,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack20.cpp:113,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:117,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:118,1
    - Dst: Unpack::CopyString20
      Src: /src/clamav/libclamunrar/unpack20.cpp:130,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:138,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:139,1
    - Dst: Unpack::CopyString20
      Src: /src/clamav/libclamunrar/unpack20.cpp:141,1
    - Dst: Unpack::ReadLastTables
      Src: /src/clamav/libclamunrar/unpack20.cpp:145,1
    - Dst: Unpack::UnpWriteBuf20
      Src: /src/clamav/libclamunrar/unpack20.cpp:146,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 90
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 147
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 147
    functionName: Unpack::Unpack20
    functionSourceFile: /src/clamav/libclamunrar/unpack20.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpReadBuf
    - Unpack::UnpWriteBuf20
    - Unpack::DecodeNumber
    - addbits
    - Unpack::ReadLastTables
    - Unpack::UnpInitData
    - Unpack::DecodeAudio
    - getbits
    - Unpack::CopyString20
    - Unpack::ReadTables20
    linkageType: ''
    returnType: void
    signature: void Unpack::Unpack20(bool Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnpWrite
      Src: /src/clamav/libclamunrar/unpack20.cpp:156,1
    - Dst: UnpWrite
      Src: /src/clamav/libclamunrar/unpack20.cpp:157,1
    - Dst: UnpWrite
      Src: /src/clamav/libclamunrar/unpack20.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: Unpack::UnpWriteBuf20
    functionSourceFile: /src/clamav/libclamunrar/unpack20.cpp
    functionUses: 2
    functionsReached:
    - UnpWrite
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpWriteBuf20()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack20.cpp:171,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:173,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack20.cpp:177,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:178,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:186,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:194,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:195,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack20.cpp:197,1
    - Dst: Unpack::UnpReadBuf
      Src: /src/clamav/libclamunrar/unpack20.cpp:201,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack20.cpp:203,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:212,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:213,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:228,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:229,1
    - Dst: getbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:233,1
    - Dst: addbits
      Src: /src/clamav/libclamunrar/unpack20.cpp:234,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack20.cpp:245,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack20.cpp:248,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack20.cpp:249,1
    - Dst: Unpack::MakeDecodeTables
      Src: /src/clamav/libclamunrar/unpack20.cpp:250,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpack20.cpp:252,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 254
    functionName: Unpack::ReadTables20
    functionSourceFile: /src/clamav/libclamunrar/unpack20.cpp
    functionUses: 1
    functionsReached:
    - Unpack::UnpReadBuf
    - memset
    - Unpack::DecodeNumber
    - Unpack::MakeDecodeTables
    - getbits
    - memcpy
    - addbits
    linkageType: ''
    returnType: bool
    signature: bool Unpack::ReadTables20()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack20.cpp:262,1
    - Dst: Unpack::ReadTables20
      Src: /src/clamav/libclamunrar/unpack20.cpp:263,1
    - Dst: Unpack::DecodeNumber
      Src: /src/clamav/libclamunrar/unpack20.cpp:266,1
    - Dst: Unpack::ReadTables20
      Src: /src/clamav/libclamunrar/unpack20.cpp:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 268
    functionName: Unpack::ReadLastTables
    functionSourceFile: /src/clamav/libclamunrar/unpack20.cpp
    functionUses: 1
    functionsReached:
    - Unpack::DecodeNumber
    - Unpack::ReadTables20
    linkageType: ''
    returnType: void
    signature: void Unpack::ReadLastTables()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack20.cpp:281,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack20.cpp:282,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unpack20.cpp:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - Solid
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 285
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 285
    functionName: Unpack::UnpInitData20
    functionSourceFile: /src/clamav/libclamunrar/unpack20.cpp
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Unpack::UnpInitData20(int Solid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:306,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:307,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:308,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:309,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:310,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:311,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:312,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:313,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:314,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:315,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/unpack20.cpp:316,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unpack20.cpp:325,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 1
    argNames:
    - Delta
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 379
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 379
    functionName: Unpack::DecodeAudio
    functionSourceFile: /src/clamav/libclamunrar/unpack20.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - abs
    linkageType: ''
    returnType: byte
    signature: byte Unpack::DecodeAudio(int Delta)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - Distance
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 7
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 7
    functionName: Unpack::InsertOldDist
    functionSourceFile: /src/clamav/libclamunrar/unpackinline.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: _forceinline
    signature: _forceinline Unpack::InsertOldDist(uint Distance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/unpackinline.cpp:54,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - Length
    - Distance
    argTypes:
    - uint
    - uint
    constantsTouched: []
    func_position:
      end: 79
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 79
    functionName: Unpack::CopyString
    functionSourceFile: /src/clamav/libclamunrar/unpackinline.cpp
    functionUses: 5
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: _forceinline
    signature: _forceinline Unpack::CopyString(uint Length,uint Distance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitInput::getbits
      Src: /src/clamav/libclamunrar/unpackinline.cpp:85,1
    - Dst: BitInput::addbits
      Src: /src/clamav/libclamunrar/unpackinline.cpp:90,1
    - Dst: BitInput::addbits
      Src: /src/clamav/libclamunrar/unpackinline.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - Inp
    - Dec
    argTypes:
    - BitInput
    - DecodeTable*
    constantsTouched: []
    func_position:
      end: 124
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 124
    functionName: Unpack::DecodeNumber
    functionSourceFile: /src/clamav/libclamunrar/unpackinline.cpp
    functionUses: 9
    functionsReached:
    - BitInput::getbits
    - BitInput::addbits
    linkageType: ''
    returnType: _forceinline
    signature: _forceinline Unpack::DecodeNumber(BitInput &Inp,DecodeTable *Dec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitInput::getbits
      Src: /src/clamav/libclamunrar/unpackinline.cpp:143,1
    - Dst: BitInput::addbits
      Src: /src/clamav/libclamunrar/unpackinline.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - Inp
    - Slot
    argTypes:
    - BitInput
    - uint
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: Unpack::SlotToLength
    functionSourceFile: /src/clamav/libclamunrar/unpackinline.cpp
    functionUses: 3
    functionsReached:
    - BitInput::getbits
    - BitInput::addbits
    linkageType: ''
    returnType: _forceinline
    signature: _forceinline Unpack::SlotToLength(BitInput &Inp,uint Slot)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CryptData::CryptData
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:6,1
    - Dst: CryptData::CryptData
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:7,1
    - Dst: ComprDataIO::Init
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11
      start: 3
    functionDepth: 2
    functionLinenumber: 3
    functionLinenumberEnd: 11
    functionName: ComprDataIO::ComprDataIO
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 3
    functionsReached:
    - ComprDataIO::Init
    - CryptData::CryptData
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::ComprDataIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 42
    functionName: ComprDataIO::Init
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: ComprDataIO::~ComprDataIO()
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::~ComprDataIO()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:75,1
    - Dst: IsOpened
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:99,1
    - Dst: Read
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:101,1
    - Dst: Update
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:104,1
    - Dst: MergeArchive
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:128,1
    - Dst: ComprDataIO::ShowUnpRead
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:140,1
    - Dst: DecryptBlock
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:146,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:149,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 2
    argNames:
    - Addr
    - Count
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 151
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 151
    functionName: ComprDataIO::UnpRead
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached:
    - Update
    - DecryptBlock
    - Read
    - IsOpened
    - MergeArchive
    - memcpy
    - Wait
    - ComprDataIO::ShowUnpRead
    linkageType: ''
    returnType: int
    signature: int ComprDataIO::UnpRead(byte *Addr,size_t Count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCommandData
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:158,1
    - Dst: CommandData*::Callback
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:162,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:163,1
    - Dst: Exit
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:168,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:179,1
    - Dst: Write
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:186,1
    - Dst: Update
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:189,1
    - Dst: ComprDataIO::ShowUnpWrite
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:190,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - Addr
    - Count
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 192
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 192
    functionName: ComprDataIO::UnpWrite
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached:
    - ComprDataIO::ShowUnpWrite
    - GetCommandData
    - CommandData*::Callback
    - Update
    - Exit
    - Write
    - memcpy
    - Wait
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::UnpWrite(byte *Addr,size_t Count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive*::GetCommandData
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:207,1
    - Dst: uiExtractProgress
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ArcPos
    - ArcSize
    argTypes:
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: ComprDataIO::ShowUnpRead
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached:
    - Archive*::GetCommandData
    - uiExtractProgress
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::ShowUnpRead(int64 ArcPos,int64 ArcSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: ComprDataIO::ShowUnpWrite
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::ShowUnpWrite()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - SrcFile
    - DestFile
    argTypes:
    - File*
    - File*
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: ComprDataIO::SetFiles
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::SetFiles(File *SrcFile,File *DestFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - byte**
    - size_t*
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: ComprDataIO::GetUnpackedData
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::GetUnpackedData(byte **Data,size_t *Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetCryptKeys
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:255,1
    - Dst: SetCryptKeys
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - Encrypt
    - Method
    - Password
    - Salt
    - InitV
    - Lg2Cnt
    - HashKey
    - PswCheck
    argTypes:
    - bool
    - CRYPT_METHOD
    - SecPassword*
    - byte*
    - byte*
    - uint
    - byte*
    - byte*
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: ComprDataIO::SetEncryption
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 0
    functionsReached:
    - SetCryptKeys
    linkageType: ''
    returnType: void
    signature: "void ComprDataIO::SetEncryption(bool Encrypt,CRYPT_METHOD Method,\n
      \    SecPassword *Password,const byte *Salt,const byte *InitV,\n     uint Lg2Cnt,byte
      *HashKey,byte *PswCheck)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ComprDataIO::SetAV15Encryption
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: ComprDataIO::SetAV15Encryption
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached:
    - ComprDataIO::SetAV15Encryption
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::SetAV15Encryption()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ComprDataIO::SetCmt13Encryption
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: ComprDataIO::SetCmt13Encryption
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 2
    functionsReached:
    - ComprDataIO::SetCmt13Encryption
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::SetCmt13Encryption()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - Addr
    - Size
    argTypes:
    - byte*
    - uint
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: ComprDataIO::SetUnpackToMemory
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::SetUnpackToMemory(byte *Addr,uint Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive*::IsSeekable
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:302,1
    - Dst: Archive*::FileLength
      Src: /src/clamav/libclamunrar/rdwrfn.cpp:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - Arc
    argTypes:
    - Archive*
    constantsTouched: []
    func_position:
      end: 322
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 322
    functionName: ComprDataIO::AdjustTotalArcSize
    functionSourceFile: /src/clamav/libclamunrar/rdwrfn.cpp
    functionUses: 0
    functionsReached:
    - Archive*::FileLength
    - Archive*::IsSeekable
    linkageType: ''
    returnType: void
    signature: void ComprDataIO::AdjustTotalArcSize(Archive *Arc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/hash.cpp:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - Type
    argTypes:
    - HASH_TYPE
    constantsTouched: []
    func_position:
      end: 26
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 26
    functionName: HashValue::Init
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void HashValue::Init(HASH_TYPE Type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamunrar/hash.cpp:37,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - cmp
    argTypes:
    - HashValue
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: HashValue::operator == (const HashValue &cmp) const
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool HashValue::operator == (const HashValue &cmp) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: DataHash::DataHash
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataHash::DataHash()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/hash.cpp:58,1
    - Dst: cleandata
      Src: /src/clamav/libclamunrar/hash.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: DataHash::~DataHash()
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 0
    functionsReached:
    - cleandata
    linkageType: ''
    returnType: void
    signature: void DataHash::~DataHash()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2sp_state::blake2sp_state
      Src: /src/clamav/libclamunrar/hash.cpp:70,1
    - Dst: blake2sp_init
      Src: /src/clamav/libclamunrar/hash.cpp:77,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/hash.cpp:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - Type
    - MaxThreads
    argTypes:
    - HASH_TYPE
    - uint
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: DataHash::Init
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 2
    functionsReached:
    - Min
    - blake2sp_state::blake2sp_state
    - blake2sp_init
    linkageType: ''
    returnType: void
    signature: void DataHash::Init(HASH_TYPE Type,uint MaxThreads)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Checksum14
      Src: /src/clamav/libclamunrar/hash.cpp:88,1
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/hash.cpp:91,1
    - Dst: ThreadPool::ThreadPool
      Src: /src/clamav/libclamunrar/hash.cpp:97,1
    - Dst: blake2sp_update
      Src: /src/clamav/libclamunrar/hash.cpp:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - Data
    - DataSize
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 103
    functionName: DataHash::Update
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 0
    functionsReached:
    - blake2sp_update
    - CRC32
    - ThreadPool::ThreadPool
    - Checksum14
    linkageType: ''
    returnType: void
    signature: void DataHash::Update(const void *Data,size_t DataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blake2sp_final
      Src: /src/clamav/libclamunrar/hash.cpp:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - Result
    argTypes:
    - HashValue*
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: DataHash::Result
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 0
    functionsReached:
    - blake2sp_final
    linkageType: ''
    returnType: void
    signature: void DataHash::Result(HashValue *Result)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: DataHash::GetCRC32
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint DataHash::GetCRC32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DataHash::Result
      Src: /src/clamav/libclamunrar/hash.cpp:131,1
    - Dst: ConvertHashToMAC
      Src: /src/clamav/libclamunrar/hash.cpp:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - CmpValue
    - Key
    argTypes:
    - HashValue*
    - byte*
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: DataHash::Cmp
    functionSourceFile: /src/clamav/libclamunrar/hash.cpp
    functionUses: 1
    functionsReached:
    - ConvertHashToMAC
    - DataHash::Result
    linkageType: ''
    returnType: bool
    signature: bool DataHash::Cmp(HashValue *CmpValue,byte *Key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 9
    functionName: EncodeFileName::EncodeFileName
    functionSourceFile: /src/clamav/libclamunrar/encname.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EncodeFileName::EncodeFileName()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 41
    argCount: 6
    argNames:
    - Name
    - NameSize
    - EncName
    - EncSize
    - NameW
    - MaxDecSize
    argTypes:
    - char*
    - size_t
    - byte*
    - size_t
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 67
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 67
    functionName: EncodeFileName::Decode
    functionSourceFile: /src/clamav/libclamunrar/encname.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void EncodeFileName::Decode(char *Name,size_t NameSize,byte *EncName,size_t
      EncSize,\n                            wchar *NameW,size_t MaxDecSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/log.cpp:9,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/log.cpp:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - LogFileName
    - CSet
    argTypes:
    - wchar*
    - RAR_CHARSET
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: InitLogOptions
    functionSourceFile: /src/clamav/libclamunrar/log.cpp
    functionUses: 2
    functionsReached:
    - ASIZE
    - wcsncpyz
    linkageType: ''
    returnType: void
    signature: void InitLogOptions(const wchar *LogFileName,RAR_CHARSET CSet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uiAlarm
      Src: /src/clamav/libclamunrar/log.cpp:20,1
    - Dst: PrintfPrepareFmt
      Src: /src/clamav/libclamunrar/log.cpp:25,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/log.cpp:25,1
    - Dst: va_start
      Src: /src/clamav/libclamunrar/log.cpp:29,1
    - Dst: vswprintf
      Src: /src/clamav/libclamunrar/log.cpp:30,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/log.cpp:30,1
    - Dst: va_end
      Src: /src/clamav/libclamunrar/log.cpp:31,1
    - Dst: eprintf
      Src: /src/clamav/libclamunrar/log.cpp:32,1
    - Dst: SetSystemErrorCode
      Src: /src/clamav/libclamunrar/log.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ArcName
    - fmt
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 34
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 34
    functionName: Log
    functionSourceFile: /src/clamav/libclamunrar/log.cpp
    functionUses: 2
    functionsReached:
    - eprintf
    - uiAlarm
    - va_start
    - PrintfPrepareFmt
    - vswprintf
    - va_end
    - ASIZE
    - SetSystemErrorCode
    linkageType: ''
    returnType: void
    signature: void Log(const wchar *ArcName,const wchar *fmt,...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 6
    functionName: RarVM::RarVM
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RarVM::RarVM()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: RarVM::~RarVM()
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RarVM::~RarVM()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: byte::byte
      Src: /src/clamav/libclamunrar/rarvm.cpp:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: RarVM::Init
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 0
    functionsReached:
    - byte::byte
    linkageType: ''
    returnType: void
    signature: void RarVM::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/rarvm.cpp:24,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - Prg
    argTypes:
    - VM_PreparedProgram*
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: RarVM::Execute
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void RarVM::Execute(VM_PreparedProgram *Prg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC32
      Src: /src/clamav/libclamunrar/rarvm.cpp:62,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/rarvm.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - Code
    - CodeSize
    - Prg
    argTypes:
    - byte*
    - uint
    - VM_PreparedProgram*
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: RarVM::Prepare
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - CRC32
    linkageType: ''
    returnType: void
    signature: void RarVM::Prepare(byte *Code,uint CodeSize,VM_PreparedProgram *Prg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:74,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:78,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:84,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:89,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:93,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:94,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:95,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:98,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:99,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:100,1
    - Dst: BitInput::fgetbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:101,1
    - Dst: BitInput::faddbits
      Src: /src/clamav/libclamunrar/rarvm.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - Inp
    argTypes:
    - BitInput
    constantsTouched: []
    func_position:
      end: 105
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 105
    functionName: RarVM::ReadData
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 1
    functionsReached:
    - BitInput::faddbits
    - BitInput::fgetbits
    linkageType: ''
    returnType: uint
    signature: uint RarVM::ReadData(BitInput &Inp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/clamav/libclamunrar/rarvm.cpp:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - Pos
    - Data
    - DataSize
    argTypes:
    - size_t
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: RarVM::SetMemory
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void RarVM::SetMemory(size_t Pos,byte *Data,size_t DataSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RawGet4
      Src: /src/clamav/libclamunrar/rarvm.cpp:144,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/rarvm.cpp:151,1
    - Dst: RawPut4
      Src: /src/clamav/libclamunrar/rarvm.cpp:155,1
    - Dst: RarVM::FilterItanium_GetBits
      Src: /src/clamav/libclamunrar/rarvm.cpp:186,1
    - Dst: RarVM::FilterItanium_GetBits
      Src: /src/clamav/libclamunrar/rarvm.cpp:189,1
    - Dst: RarVM::FilterItanium_SetBits
      Src: /src/clamav/libclamunrar/rarvm.cpp:190,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/rarvm.cpp:272,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/rarvm.cpp:295,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/rarvm.cpp:296,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/rarvm.cpp:297,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/rarvm.cpp:298,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/rarvm.cpp:299,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/rarvm.cpp:300,1
    - Dst: abs
      Src: /src/clamav/libclamunrar/rarvm.cpp:301,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/rarvm.cpp:307,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 137
    argCount: 1
    argNames:
    - FilterType
    argTypes:
    - VM_StandardFilters
    constantsTouched: []
    func_position:
      end: 332
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 332
    functionName: RarVM::ExecuteStandardFilter
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 0
    functionsReached:
    - RarVM::FilterItanium_GetBits
    - memset
    - RarVM::FilterItanium_SetBits
    - abs
    - RawPut4
    - ASIZE
    - RawGet4
    linkageType: ''
    returnType: bool
    signature: bool RarVM::ExecuteStandardFilter(VM_StandardFilters FilterType)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - Data
    - BitPos
    - BitCount
    argTypes:
    - byte*
    - uint
    - uint
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: RarVM::FilterItanium_GetBits
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RarVM::FilterItanium_GetBits(byte *Data,uint BitPos,uint BitCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - Data
    - BitField
    - BitPos
    - BitCount
    argTypes:
    - byte*
    - uint
    - uint
    - uint
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: RarVM::FilterItanium_SetBits
    functionSourceFile: /src/clamav/libclamunrar/rarvm.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RarVM::FilterItanium_SetBits(byte *Data,uint BitField,uint BitPos,uint
      BitCount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnixSlashToDos
      Src: /src/clamav/libclamunrar/pathfn.hpp:42,1
    - Dst: DosSlashToUnix
      Src: /src/clamav/libclamunrar/pathfn.hpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - SrcName
    - DestName
    - MaxLength
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: SlashToNative
    functionSourceFile: /src/clamav/libclamunrar/pathfn.hpp
    functionUses: 1
    functionsReached:
    - UnixSlashToDos
    - DosSlashToUnix
    linkageType: ''
    returnType: void
    signature: void SlashToNative(const char *SrcName,char *DestName,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnixSlashToDos
      Src: /src/clamav/libclamunrar/pathfn.hpp:51,1
    - Dst: DosSlashToUnix
      Src: /src/clamav/libclamunrar/pathfn.hpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - SrcName
    - DestName
    - MaxLength
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: SlashToNative
    functionSourceFile: /src/clamav/libclamunrar/pathfn.hpp
    functionUses: 1
    functionsReached:
    - UnixSlashToDos
    - DosSlashToUnix
    linkageType: ''
    returnType: void
    signature: void SlashToNative(const wchar *SrcName,wchar *DestName,size_t MaxLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointToLastChar
      Src: /src/clamav/libclamunrar/filefn.cpp:8,1
    - Dst: CreateDirectory
      Src: /src/clamav/libclamunrar/filefn.cpp:10,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/filefn.cpp:11,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:14,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:14,1
    - Dst: CreateDirectory
      Src: /src/clamav/libclamunrar/filefn.cpp:15,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/filefn.cpp:20,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:29,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:29,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - Name
    - SetAttr
    - Attr
    argTypes:
    - wchar*
    - bool
    - uint
    constantsTouched: []
    func_position:
      end: 38
      start: 3
    functionDepth: 3
    functionLinenumber: 3
    functionLinenumberEnd: 38
    functionName: MakeDir
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 2
    functionsReached:
    - CreateDirectory
    - FileExist
    - PointToLastChar
    - GetWinLongPath
    - WideToChar
    - ASIZE
    - SetFileAttr
    linkageType: ''
    returnType: MKDIR_CODE
    signature: MKDIR_CODE MakeDir(const wchar *Name,bool SetAttr,uint Attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:57,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/filefn.cpp:63,1
    - Dst: wcsncpy
      Src: /src/clamav/libclamunrar/filefn.cpp:72,1
    - Dst: MakeDir
      Src: /src/clamav/libclamunrar/filefn.cpp:75,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/filefn.cpp:78,1
    - Dst: St
      Src: /src/clamav/libclamunrar/filefn.cpp:78,1
    - Dst: mprintf
      Src: /src/clamav/libclamunrar/filefn.cpp:79,1
    - Dst: St
      Src: /src/clamav/libclamunrar/filefn.cpp:79,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/filefn.cpp:83,1
    - Dst: PointToLastChar
      Src: /src/clamav/libclamunrar/filefn.cpp:83,1
    - Dst: MakeDir
      Src: /src/clamav/libclamunrar/filefn.cpp:84,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 3
    argNames:
    - Path
    - SkipLastName
    - Silent
    argTypes:
    - wchar*
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 86
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 86
    functionName: CreatePath
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 6
    functionsReached:
    - St
    - wcsncpy
    - MakeDir
    - PointToLastChar
    - IsPathDiv
    - ASIZE
    - mprintf
    linkageType: ''
    returnType: bool
    signature: bool CreatePath(const wchar *Path,bool SkipLastName,bool Silent)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/filefn.cpp:96,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/filefn.cpp:99,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/filefn.cpp:101,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:106,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:106,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/filefn.cpp:107,1
    - Dst: RarTime*::GetWinFT
      Src: /src/clamav/libclamunrar/filefn.cpp:115,1
    - Dst: RarTime*::GetWinFT
      Src: /src/clamav/libclamunrar/filefn.cpp:117,1
    - Dst: RarTime*::GetWinFT
      Src: /src/clamav/libclamunrar/filefn.cpp:119,1
    - Dst: SetFileTime
      Src: /src/clamav/libclamunrar/filefn.cpp:120,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/filefn.cpp:121,1
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/filefn.cpp:123,1
    - Dst: File::SetCloseFileTimeByName
      Src: /src/clamav/libclamunrar/filefn.cpp:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 4
    argNames:
    - Name
    - ftm
    - ftc
    - fta
    argTypes:
    - wchar*
    - RarTime*
    - RarTime*
    - RarTime*
    constantsTouched: []
    func_position:
      end: 128
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 128
    functionName: SetDirTime
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - SetFileTime
    - RarTime*::GetWinFT
    - GetFileAttr
    - GetWinLongPath
    - CreateFile
    - File::SetCloseFileTimeByName
    - CloseHandle
    - ASIZE
    - SetFileAttr
    linkageType: ''
    returnType: void
    signature: void SetDirTime(const wchar *Name,RarTime *ftm,RarTime *ftc,RarTime
      *fta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPathRoot
      Src: /src/clamav/libclamunrar/filefn.cpp:135,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: IsRemovable
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - GetPathRoot
    linkageType: ''
    returnType: bool
    signature: bool IsRemovable(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFilePath
      Src: /src/clamav/libclamunrar/filefn.cpp:149,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:149,1
    - Dst: GetDiskFreeSpaceEx
      Src: /src/clamav/libclamunrar/filefn.cpp:153,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/filefn.cpp:155,1
    - Dst: GetFilePath
      Src: /src/clamav/libclamunrar/filefn.cpp:159,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:159,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:161,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:161,1
    - Dst: statvfs
      Src: /src/clamav/libclamunrar/filefn.cpp:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 171
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 171
    functionName: GetFreeDisk
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - statvfs
    - GetDiskFreeSpaceEx
    - WideToChar
    - INT32TO64
    - ASIZE
    - GetFilePath
    linkageType: ''
    returnType: int64
    signature: int64 GetFreeDisk(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetPathRoot
      Src: /src/clamav/libclamunrar/filefn.cpp:181,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:181,1
    - Dst: GetVolumeInformation
      Src: /src/clamav/libclamunrar/filefn.cpp:183,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:183,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/filefn.cpp:184,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/filefn.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: IsFAT
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - wcscmp
    - GetVolumeInformation
    - GetPathRoot
    linkageType: ''
    returnType: bool
    signature: bool IsFAT(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttr
      Src: /src/clamav/libclamunrar/filefn.cpp:193,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:196,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:196,1
    - Dst: access
      Src: /src/clamav/libclamunrar/filefn.cpp:197,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/filefn.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: FileExist
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 20
    functionsReached:
    - access
    - GetFileAttr
    - WideToChar
    - FindFile::FastFind
    - ASIZE
    linkageType: ''
    returnType: bool
    signature: bool FileExist(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsWildcard
      Src: /src/clamav/libclamunrar/filefn.cpp:207,1
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/filefn.cpp:209,1
    - Dst: FindFile::SetMask
      Src: /src/clamav/libclamunrar/filefn.cpp:210,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/filefn.cpp:212,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/filefn.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: WildFileExist
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - FindFile::FindFile
    - FindFile::Next
    - FileExist
    - IsWildcard
    - FindFile::SetMask
    linkageType: ''
    returnType: bool
    signature: bool WildFileExist(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Attr
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: IsDir
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDir(uint Attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S_ISFIFO
      Src: /src/clamav/libclamunrar/filefn.cpp:232,1
    - Dst: S_ISSOCK
      Src: /src/clamav/libclamunrar/filefn.cpp:232,1
    - Dst: S_ISCHR
      Src: /src/clamav/libclamunrar/filefn.cpp:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - Attr
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: IsUnreadable
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 0
    functionsReached:
    - S_ISCHR
    - S_ISFIFO
    - S_ISSOCK
    linkageType: ''
    returnType: bool
    signature: bool IsUnreadable(uint Attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - Attr
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: IsLink
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsLink(uint Attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - FileAttr
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: IsDeleteAllowed
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDeleteAllowed(uint FileAttr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFileAttr
      Src: /src/clamav/libclamunrar/filefn.cpp:267,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:273,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:273,1
    - Dst: chmod
      Src: /src/clamav/libclamunrar/filefn.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: PrepareToDelete
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - SetFileAttr
    - chmod
    - WideToChar
    linkageType: ''
    returnType: void
    signature: void PrepareToDelete(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributes
      Src: /src/clamav/libclamunrar/filefn.cpp:283,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:287,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:287,1
    - Dst: GetFileAttributes
      Src: /src/clamav/libclamunrar/filefn.cpp:288,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:293,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:293,1
    - Dst: stat
      Src: /src/clamav/libclamunrar/filefn.cpp:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 299
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 299
    functionName: GetFileAttr
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 7
    functionsReached:
    - GetWinLongPath
    - WideToChar
    - stat
    - ASIZE
    - GetFileAttributes
    linkageType: ''
    returnType: uint
    signature: uint GetFileAttr(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:309,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:309,1
    - Dst: SetFileAttributes
      Src: /src/clamav/libclamunrar/filefn.cpp:310,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:315,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:315,1
    - Dst: chmod
      Src: /src/clamav/libclamunrar/filefn.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - Name
    - Attr
    argTypes:
    - wchar*
    - uint
    constantsTouched: []
    func_position:
      end: 320
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 320
    functionName: SetFileAttr
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 9
    functionsReached:
    - GetWinLongPath
    - WideToChar
    - SetFileAttributes
    - ASIZE
    - chmod
    linkageType: ''
    returnType: bool
    signature: bool SetFileAttr(const wchar *Name,uint Attr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RarTime::RarTime
      Src: /src/clamav/libclamunrar/filefn.cpp:327,1
    - Dst: RarTime::SetCurrentTime
      Src: /src/clamav/libclamunrar/filefn.cpp:328,1
    - Dst: RarTime::GetWin
      Src: /src/clamav/libclamunrar/filefn.cpp:332,1
    - Dst: GetCurrentProcessId
      Src: /src/clamav/libclamunrar/filefn.cpp:338,1
    - Dst: getpid
      Src: /src/clamav/libclamunrar/filefn.cpp:340,1
    - Dst: swprintf
      Src: /src/clamav/libclamunrar/filefn.cpp:347,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:347,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/filefn.cpp:348,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/filefn.cpp:350,1
    - Dst: FileExist
      Src: /src/clamav/libclamunrar/filefn.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - Name
    - MaxSize
    argTypes:
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 355
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 355
    functionName: MkTemp
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - getpid
    - wcsncpyz
    - FileExist
    - RarTime::GetWin
    - GetCurrentProcessId
    - RarTime::SetCurrentTime
    - RarTime::RarTime
    - ASIZE
    - swprintf
    - wcslen
    linkageType: ''
    returnType: wchar
    signature: wchar *MkTemp(wchar *Name,size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File*::Tell
      Src: /src/clamav/libclamunrar/filefn.cpp:361,1
    - Dst: File*::FileLength
      Src: /src/clamav/libclamunrar/filefn.cpp:363,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/filefn.cpp:367,1
    - Dst: File*::Seek
      Src: /src/clamav/libclamunrar/filefn.cpp:370,1
    - Dst: DataHash::DataHash
      Src: /src/clamav/libclamunrar/filefn.cpp:376,1
    - Dst: DataHash::Init
      Src: /src/clamav/libclamunrar/filefn.cpp:377,1
    - Dst: Init
      Src: /src/clamav/libclamunrar/filefn.cpp:378,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/filefn.cpp:388,1
    - Dst: uiExtractProgress
      Src: /src/clamav/libclamunrar/filefn.cpp:401,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/filefn.cpp:406,1
    - Dst: ToPercent
      Src: /src/clamav/libclamunrar/filefn.cpp:406,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/filefn.cpp:409,1
    - Dst: DataHash::Update
      Src: /src/clamav/libclamunrar/filefn.cpp:413,1
    - Dst: Update
      Src: /src/clamav/libclamunrar/filefn.cpp:415,1
    - Dst: File*::Seek
      Src: /src/clamav/libclamunrar/filefn.cpp:420,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/filefn.cpp:423,1
    - Dst: DataHash::GetCRC32
      Src: /src/clamav/libclamunrar/filefn.cpp:426,1
    - Dst: Result
      Src: /src/clamav/libclamunrar/filefn.cpp:430,1
    - Dst: memcpy
      Src: /src/clamav/libclamunrar/filefn.cpp:431,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 6
    argNames:
    - SrcFile
    - CRC32
    - Blake2
    - Threads
    - Size
    - Flags
    argTypes:
    - File*
    - uint*
    - byte*
    - uint
    - int64
    - uint
    constantsTouched: []
    func_position:
      end: 433
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 433
    functionName: CalcFileSum
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 4
    functionsReached:
    - Init
    - File*::FileLength
    - DataHash::Update
    - memcpy
    - Update
    - File*::Seek
    - ToPercent
    - DataHash::DataHash
    - uiExtractProgress
    - DataHash::Init
    - DataHash::GetCRC32
    - uiMsg
    - Result
    - Min
    - Wait
    - File*::Tell
    linkageType: ''
    returnType: void
    signature: void CalcFileSum(File *SrcFile,uint *CRC32,byte *Blake2,uint Threads,int64
      Size,uint Flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:444,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:444,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:445,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:445,1
    - Dst: MoveFile
      Src: /src/clamav/libclamunrar/filefn.cpp:446,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:451,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:451,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:452,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - SrcName
    - DestName
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 456
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 456
    functionName: RenameFile
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 3
    functionsReached:
    - ASIZE
    - MoveFile
    - GetWinLongPath
    - WideToChar
    linkageType: ''
    returnType: bool
    signature: bool RenameFile(const wchar *SrcName,const wchar *DestName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:466,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:466,1
    - Dst: DeleteFile
      Src: /src/clamav/libclamunrar/filefn.cpp:467,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:472,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 476
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 476
    functionName: DelFile
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 5
    functionsReached:
    - ASIZE
    - DeleteFile
    - GetWinLongPath
    - WideToChar
    linkageType: ''
    returnType: bool
    signature: bool DelFile(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:486,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:486,1
    - Dst: RemoveDirectory
      Src: /src/clamav/libclamunrar/filefn.cpp:487,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/filefn.cpp:492,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 496
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 496
    functionName: DelDir
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - RemoveDirectory
    - GetWinLongPath
    - WideToChar
    linkageType: ''
    returnType: bool
    signature: bool DelDir(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/filefn.cpp:502,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/filefn.cpp:508,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:508,1
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/filefn.cpp:509,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/filefn.cpp:519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - Name
    - State
    argTypes:
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 521
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 521
    functionName: SetFileCompression
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 2
    functionsReached:
    - ASIZE
    - CloseHandle
    - GetWinLongPath
    - CreateFile
    linkageType: ''
    returnType: bool
    signature: bool SetFileCompression(const wchar *Name,bool State)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/clamav/libclamunrar/filefn.cpp:528,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamunrar/filefn.cpp:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 533
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 533
    functionName: ResetFileCache
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 1
    functionsReached:
    - CloseHandle
    - CreateFile
    linkageType: ''
    returnType: void
    signature: void ResetFileCache(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/filefn.cpp:567,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:567,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/filefn.cpp:569,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/filefn.cpp:569,1
    - Dst: wcsncmp
      Src: /src/clamav/libclamunrar/filefn.cpp:573,1
    - Dst: std::wstring::size
      Src: /src/clamav/libclamunrar/filefn.cpp:577,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/filefn.cpp:578,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/filefn.cpp:586,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/filefn.cpp:590,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/filefn.cpp:591,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/filefn.cpp:595,1
    - Dst: DelDir
      Src: /src/clamav/libclamunrar/filefn.cpp:597,1
    - Dst: DelFile
      Src: /src/clamav/libclamunrar/filefn.cpp:599,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 3
    argNames:
    - SrcName
    - SkipPart
    - LastChecked
    argTypes:
    - wchar*
    - wchar*
    - std::wstring
    constantsTouched: []
    func_position:
      end: 606
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 606
    functionName: LinksToDirs
    functionSourceFile: /src/clamav/libclamunrar/filefn.cpp
    functionUses: 2
    functionsReached:
    - wcsncpyz
    - std::wstring::size
    - DelDir
    - IsPathDiv
    - FindFile::FastFind
    - ASIZE
    - DelFile
    - wcsncmp
    - wcslen
    linkageType: ''
    returnType: bool
    signature: bool LinksToDirs(const wchar *SrcName,const wchar *SkipPart,std::wstring
      &LastChecked)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtractACL20
      Src: /src/clamav/libclamunrar/extinfo.cpp:31,1
    - Dst: ExtractStreams20
      Src: /src/clamav/libclamunrar/extinfo.cpp:34,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - Cmd
    - Arc
    - Name
    argTypes:
    - CommandData*
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: SetExtraInfo20
    functionSourceFile: /src/clamav/libclamunrar/extinfo.cpp
    functionUses: 1
    functionsReached:
    - ExtractStreams20
    - ExtractACL20
    linkageType: ''
    returnType: void
    signature: void SetExtraInfo20(CommandData *Cmd,Archive &Arc,wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Archive::SubHead::CmpName
      Src: /src/clamav/libclamunrar/extinfo.cpp:47,1
    - Dst: ExtractUnixOwner30
      Src: /src/clamav/libclamunrar/extinfo.cpp:48,1
    - Dst: Archive::SubHead::CmpName
      Src: /src/clamav/libclamunrar/extinfo.cpp:51,1
    - Dst: ExtractACL
      Src: /src/clamav/libclamunrar/extinfo.cpp:52,1
    - Dst: Archive::SubHead::CmpName
      Src: /src/clamav/libclamunrar/extinfo.cpp:53,1
    - Dst: ExtractStreams
      Src: /src/clamav/libclamunrar/extinfo.cpp:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 3
    argNames:
    - Cmd
    - Arc
    - Name
    argTypes:
    - CommandData*
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: SetExtraInfo
    functionSourceFile: /src/clamav/libclamunrar/extinfo.cpp
    functionUses: 1
    functionsReached:
    - ExtractStreams
    - Archive::SubHead::CmpName
    - ExtractACL
    - ExtractUnixOwner30
    linkageType: ''
    returnType: void
    signature: void SetExtraInfo(CommandData *Cmd,Archive &Arc,wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetUnixOwner
      Src: /src/clamav/libclamunrar/extinfo.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 3
    argNames:
    - Cmd
    - Arc
    - Name
    argTypes:
    - CommandData*
    - Archive
    - wchar*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: SetFileHeaderExtra
    functionSourceFile: /src/clamav/libclamunrar/extinfo.cpp
    functionUses: 2
    functionsReached:
    - SetUnixOwner
    linkageType: ''
    returnType: void
    signature: void SetFileHeaderExtra(CommandData *Cmd,Archive &Arc,wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extinfo.cpp:77,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extinfo.cpp:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 11
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: CalcAllowedDepth
    functionSourceFile: /src/clamav/libclamunrar/extinfo.cpp
    functionUses: 0
    functionsReached:
    - IsPathDiv
    linkageType: ''
    returnType: int
    signature: int CalcAllowedDepth(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/extinfo.cpp:97,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extinfo.cpp:97,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/extinfo.cpp:99,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/extinfo.cpp:99,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/extinfo.cpp:100,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extinfo.cpp:101,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/extinfo.cpp:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: LinkInPath
    functionSourceFile: /src/clamav/libclamunrar/extinfo.cpp
    functionUses: 0
    functionsReached:
    - wcsncpyz
    - IsPathDiv
    - FindFile::FastFind
    - ASIZE
    - wcslen
    linkageType: ''
    returnType: bool
    signature: bool LinkInPath(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsFullRootPath
      Src: /src/clamav/libclamunrar/extinfo.cpp:117,1
    - Dst: IsFullRootPath
      Src: /src/clamav/libclamunrar/extinfo.cpp:117,1
    - Dst: LinkInPath
      Src: /src/clamav/libclamunrar/extinfo.cpp:139,1
    - Dst: wcsncmp
      Src: /src/clamav/libclamunrar/extinfo.cpp:152,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/extinfo.cpp:155,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 16
    argCount: 4
    argNames:
    - Cmd
    - SrcName
    - PrepSrcName
    - TargetName
    argTypes:
    - CommandData*
    - wchar*
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 161
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 161
    functionName: IsRelativeSymlinkSafe
    functionSourceFile: /src/clamav/libclamunrar/extinfo.cpp
    functionUses: 3
    functionsReached:
    - IsFullRootPath
    - IsPathDiv
    - wcsncmp
    - LinkInPath
    linkageType: ''
    returnType: bool
    signature: bool IsRelativeSymlinkSafe(CommandData *Cmd,const wchar *SrcName,const
      wchar *PrepSrcName,const wchar *TargetName)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsstr
      Src: /src/clamav/libclamunrar/extinfo.cpp:174,1
    - Dst: ExtractUnixLink30
      Src: /src/clamav/libclamunrar/extinfo.cpp:180,1
    - Dst: ExtractUnixLink50
      Src: /src/clamav/libclamunrar/extinfo.cpp:182,1
    - Dst: CreateReparsePoint
      Src: /src/clamav/libclamunrar/extinfo.cpp:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 5
    argNames:
    - Cmd
    - DataIO
    - Arc
    - LinkName
    - UpLink
    argTypes:
    - CommandData*
    - ComprDataIO
    - Archive
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 190
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 190
    functionName: ExtractSymlink
    functionSourceFile: /src/clamav/libclamunrar/extinfo.cpp
    functionUses: 1
    functionsReached:
    - wcsstr
    - CreateReparsePoint
    - ExtractUnixLink50
    - ExtractUnixLink30
    linkageType: ''
    returnType: bool
    signature: bool ExtractSymlink(CommandData *Cmd,ComprDataIO &DataIO,Archive &Arc,const
      wchar *LinkName,bool &UpLink)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 12
    functionName: FindFile::FindFile
    functionSourceFile: /src/clamav/libclamunrar/find.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FindFile::FindFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/clamav/libclamunrar/find.cpp:19,1
    - Dst: closedir
      Src: /src/clamav/libclamunrar/find.cpp:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: FindFile::~FindFile()
    functionSourceFile: /src/clamav/libclamunrar/find.cpp
    functionUses: 0
    functionsReached:
    - FindClose
    - closedir
    linkageType: ''
    returnType: void
    signature: void FindFile::~FindFile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/find.cpp:29,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - Mask
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: FindFile::SetMask
    functionSourceFile: /src/clamav/libclamunrar/find.cpp
    functionUses: 5
    functionsReached:
    - ASIZE
    - wcsncpyz
    linkageType: ''
    returnType: void
    signature: void FindFile::SetMask(const wchar *Mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindFile::Win32Find
      Src: /src/clamav/libclamunrar/find.cpp:42,1
    - Dst: FindFile::Win32Find
      Src: /src/clamav/libclamunrar/find.cpp:46,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/find.cpp:52,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:52,1
    - Dst: RemoveNameFromPath
      Src: /src/clamav/libclamunrar/find.cpp:53,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/find.cpp:55,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:55,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/find.cpp:57,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:57,1
    - Dst: opendir
      Src: /src/clamav/libclamunrar/find.cpp:58,1
    - Dst: readdir
      Src: /src/clamav/libclamunrar/find.cpp:67,1
    - Dst: strcmp
      Src: /src/clamav/libclamunrar/find.cpp:70,1
    - Dst: strcmp
      Src: /src/clamav/libclamunrar/find.cpp:70,1
    - Dst: CharToWide
      Src: /src/clamav/libclamunrar/find.cpp:72,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:72,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/find.cpp:73,1
    - Dst: CmpName
      Src: /src/clamav/libclamunrar/find.cpp:75,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/find.cpp:78,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:78,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/find.cpp:79,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/find.cpp:80,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/find.cpp:80,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:80,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/find.cpp:82,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/find.cpp:85,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:85,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/find.cpp:86,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/find.cpp:88,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/find.cpp:91,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:91,1
    - Dst: IsDir
      Src: /src/clamav/libclamunrar/find.cpp:97,1
    - Dst: IsLink
      Src: /src/clamav/libclamunrar/find.cpp:98,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/find.cpp:101,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/find.cpp:102,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/find.cpp:102,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/find.cpp:103,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 2
    argNames:
    - fd
    - GetSymLink
    argTypes:
    - FindData*
    - bool
    constantsTouched: []
    func_position:
      end: 105
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 105
    functionName: FindFile::Next
    functionSourceFile: /src/clamav/libclamunrar/find.cpp
    functionUses: 6
    functionsReached:
    - RemoveNameFromPath
    - CmpName
    - WideToChar
    - FindFile::Win32Find
    - readdir
    - FindFile::FastFind
    - IsDir
    - OpenErrorMsg
    - strcmp
    - wcsncpyz
    - PointToName
    - wcscmp
    - wcsncatz
    - ASIZE
    - uiMsg
    - CharToWide
    - wcslen
    - FindFile::Next
    - IsLink
    - opendir
    linkageType: ''
    returnType: bool
    signature: bool FindFile::Next(FindData *fd,bool GetSymLink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsWildcard
      Src: /src/clamav/libclamunrar/find.cpp:112,1
    - Dst: FindFile::Win32Find
      Src: /src/clamav/libclamunrar/find.cpp:116,1
    - Dst: FindClose
      Src: /src/clamav/libclamunrar/find.cpp:119,1
    - Dst: WideToChar
      Src: /src/clamav/libclamunrar/find.cpp:122,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:122,1
    - Dst: lstat
      Src: /src/clamav/libclamunrar/find.cpp:128,1
    - Dst: stat
      Src: /src/clamav/libclamunrar/find.cpp:130,1
    - Dst: stat
      Src: /src/clamav/libclamunrar/find.cpp:138,1
    - Dst: File::StatToRarTime
      Src: /src/clamav/libclamunrar/find.cpp:146,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/find.cpp:148,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:148,1
    - Dst: IsDir
      Src: /src/clamav/libclamunrar/find.cpp:151,1
    - Dst: IsLink
      Src: /src/clamav/libclamunrar/find.cpp:152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - FindMask
    - fd
    - GetSymLink
    argTypes:
    - wchar*
    - FindData*
    - bool
    constantsTouched: []
    func_position:
      end: 155
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 155
    functionName: FindFile::FastFind
    functionSourceFile: /src/clamav/libclamunrar/find.cpp
    functionUses: 8
    functionsReached:
    - FindClose
    - IsLink
    - wcsncpyz
    - IsWildcard
    - WideToChar
    - FindFile::Win32Find
    - File::StatToRarTime
    - stat
    - IsDir
    - ASIZE
    - lstat
    linkageType: ''
    returnType: bool
    signature: bool FindFile::FastFind(const wchar *FindMask,FindData *fd,bool GetSymLink)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFile
      Src: /src/clamav/libclamunrar/find.cpp:164,1
    - Dst: GetWinLongPath
      Src: /src/clamav/libclamunrar/find.cpp:168,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:168,1
    - Dst: FindFirstFile
      Src: /src/clamav/libclamunrar/find.cpp:169,1
    - Dst: FindNextFile
      Src: /src/clamav/libclamunrar/find.cpp:185,1
    - Dst: GetLastError
      Src: /src/clamav/libclamunrar/find.cpp:188,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/find.cpp:193,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:193,1
    - Dst: SetName
      Src: /src/clamav/libclamunrar/find.cpp:194,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/find.cpp:194,1
    - Dst: INT32TO64
      Src: /src/clamav/libclamunrar/find.cpp:195,1
    - Dst: FindData*::mtime::SetWinFT
      Src: /src/clamav/libclamunrar/find.cpp:200,1
    - Dst: FindData*::ctime::SetWinFT
      Src: /src/clamav/libclamunrar/find.cpp:201,1
    - Dst: FindData*::atime::SetWinFT
      Src: /src/clamav/libclamunrar/find.cpp:202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - hFind
    - Mask
    - fd
    argTypes:
    - HANDLE
    - wchar*
    - FindData*
    constantsTouched: []
    func_position:
      end: 208
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 208
    functionName: FindFile::Win32Find
    functionSourceFile: /src/clamav/libclamunrar/find.cpp
    functionUses: 2
    functionsReached:
    - SetName
    - FindNextFile
    - GetLastError
    - wcsncpyz
    - GetWinLongPath
    - FindFirstFile
    - INT32TO64
    - FindData*::ctime::SetWinFT
    - FindData*::atime::SetWinFT
    - ASIZE
    - FindData*::mtime::SetWinFT
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE FindFile::Win32Find(HANDLE hFind,const wchar *Mask,FindData
      *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: ScanTree::GetSpecPathLength
    functionSourceFile: /src/clamav/libclamunrar/scantree.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetSpecPathLength()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: ScanTree::GetErrors
    functionSourceFile: /src/clamav/libclamunrar/scantree.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetErrors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.hpp:69,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.hpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Name
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ScanTree::SetErrArcName
    functionSourceFile: /src/clamav/libclamunrar/scantree.hpp
    functionUses: 0
    functionsReached:
    - ASIZE
    - wcsncpyz
    linkageType: ''
    returnType: void
    signature: void SetErrArcName(const wchar *Name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Cmd
    argTypes:
    - CommandData*
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ScanTree::SetCommandData
    functionSourceFile: /src/clamav/libclamunrar/scantree.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCommandData(CommandData *Cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - List
    - Lengths
    argTypes:
    - StringList*
    - Array<uint>*
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: ScanTree::SetErrDirList
    functionSourceFile: /src/clamav/libclamunrar/scantree.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetErrDirList(StringList *List,Array<uint> *Lengths)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: toupperw
      Src: /src/clamav/libclamunrar/match.cpp:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ch
    - ForceCase
    argTypes:
    - uint
    - bool
    constantsTouched: []
    func_position:
      end: 16
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 16
    functionName: touppercw
    functionSourceFile: /src/clamav/libclamunrar/match.cpp
    functionUses: 0
    functionsReached:
    - toupperw
    linkageType: ''
    returnType: uint
    signature: uint touppercw(uint ch,bool ForceCase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mwcsnicompc
      Src: /src/clamav/libclamunrar/match.cpp:29,1
    - Dst: GetFilePath
      Src: /src/clamav/libclamunrar/match.cpp:43,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/match.cpp:43,1
    - Dst: GetFilePath
      Src: /src/clamav/libclamunrar/match.cpp:44,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/match.cpp:44,1
    - Dst: mwcsicompc
      Src: /src/clamav/libclamunrar/match.cpp:47,1
    - Dst: match
      Src: /src/clamav/libclamunrar/match.cpp:50,1
    - Dst: IsWildcard
      Src: /src/clamav/libclamunrar/match.cpp:52,1
    - Dst: match
      Src: /src/clamav/libclamunrar/match.cpp:53,1
    - Dst: IsWildcard
      Src: /src/clamav/libclamunrar/match.cpp:55,1
    - Dst: mwcsnicompc
      Src: /src/clamav/libclamunrar/match.cpp:57,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/match.cpp:57,1
    - Dst: mwcsicompc
      Src: /src/clamav/libclamunrar/match.cpp:61,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/match.cpp:64,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/match.cpp:65,1
    - Dst: mwcsicompc
      Src: /src/clamav/libclamunrar/match.cpp:73,1
    - Dst: match
      Src: /src/clamav/libclamunrar/match.cpp:75,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 28
    argCount: 3
    argNames:
    - Wildcard
    - Name
    - CmpMode
    argTypes:
    - wchar*
    - wchar*
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 76
    functionName: CmpName
    functionSourceFile: /src/clamav/libclamunrar/match.cpp
    functionUses: 10
    functionsReached:
    - IsWildcard
    - mwcsicompc
    - mwcsnicompc
    - match
    - ASIZE
    - PointToName
    - GetFilePath
    - wcslen
    linkageType: ''
    returnType: bool
    signature: bool CmpName(const wchar *Wildcard,const wchar *Name,int CmpMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: touppercw
      Src: /src/clamav/libclamunrar/match.cpp:83,1
    - Dst: touppercw
      Src: /src/clamav/libclamunrar/match.cpp:84,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/match.cpp:100,1
    - Dst: wcspbrk
      Src: /src/clamav/libclamunrar/match.cpp:106,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/match.cpp:106,1
    - Dst: mwcsicompc
      Src: /src/clamav/libclamunrar/match.cpp:107,1
    - Dst: match
      Src: /src/clamav/libclamunrar/match.cpp:112,1
    - Dst: match
      Src: /src/clamav/libclamunrar/match.cpp:120,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 3
    argNames:
    - pattern
    - string
    - ForceCase
    argTypes:
    - wchar*
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 127
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 127
    functionName: match
    functionSourceFile: /src/clamav/libclamunrar/match.cpp
    functionUses: 3
    functionsReached:
    - wcspbrk
    - touppercw
    - mwcsicompc
    - match
    - wcschr
    linkageType: ''
    returnType: bool
    signature: bool match(const wchar *pattern,const wchar *string,bool ForceCase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/match.cpp:133,1
    - Dst: wcsicompc
      Src: /src/clamav/libclamunrar/match.cpp:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - Str1
    - Str2
    - ForceCase
    argTypes:
    - wchar*
    - wchar*
    - bool
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: mwcsicompc
    functionSourceFile: /src/clamav/libclamunrar/match.cpp
    functionUses: 2
    functionsReached:
    - wcscmp
    - wcsicompc
    linkageType: ''
    returnType: int
    signature: int mwcsicompc(const wchar *Str1,const wchar *Str2,bool ForceCase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcsncmp
      Src: /src/clamav/libclamunrar/match.cpp:141,1
    - Dst: wcsncmp
      Src: /src/clamav/libclamunrar/match.cpp:143,1
    - Dst: wcsnicomp
      Src: /src/clamav/libclamunrar/match.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - Str1
    - Str2
    - N
    - ForceCase
    argTypes:
    - wchar*
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: mwcsnicompc
    functionSourceFile: /src/clamav/libclamunrar/match.cpp
    functionUses: 1
    functionsReached:
    - wcsnicomp
    - wcsncmp
    linkageType: ''
    returnType: int
    signature: int mwcsnicompc(const wchar *Str1,const wchar *Str2,size_t N,bool ForceCase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/scantree.cpp:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - FileMasks
    - Recurse
    - GetLinks
    - GetDirs
    argTypes:
    - StringList*
    - RECURSE_MODE
    - bool
    - SCAN_DIRS
    constantsTouched: []
    func_position:
      end: 22
      start: 3
    functionDepth: 1
    functionLinenumber: 3
    functionLinenumberEnd: 22
    functionName: ScanTree::ScanTree
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ScanTree::ScanTree(StringList *FileMasks,RECURSE_MODE Recurse,bool
      GetLinks,SCAN_DIRS GetDirs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: ScanTree::~ScanTree()
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScanTree::~ScanTree()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScanTree::GetNextMask
      Src: /src/clamav/libclamunrar/scantree.cpp:45,1
    - Dst: Wait
      Src: /src/clamav/libclamunrar/scantree.cpp:53,1
    - Dst: ScanTree::FindProc
      Src: /src/clamav/libclamunrar/scantree.cpp:56,1
    - Dst: ScanTree::GetNextMask
      Src: /src/clamav/libclamunrar/scantree.cpp:66,1
    - Dst: ItemsCount
      Src: /src/clamav/libclamunrar/scantree.cpp:68,1
    - Dst: CommandData::CheckArgs
      Src: /src/clamav/libclamunrar/scantree.cpp:69,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 25
    argCount: 1
    argNames:
    - FD
    argTypes:
    - FindData*
    constantsTouched: []
    func_position:
      end: 74
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 74
    functionName: ScanTree::GetNext
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 1
    functionsReached:
    - ScanTree::FindProc
    - ScanTree::GetNextMask
    - CommandData::CheckArgs
    - ItemsCount
    - Wait
    linkageType: ''
    returnType: SCAN_CODE
    signature: SCAN_CODE ScanTree::GetNext(FindData *FD)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/scantree.cpp:86,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:97,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:97,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/scantree.cpp:101,1
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/scantree.cpp:102,1
    - Dst: FindFile::SetMask
      Src: /src/clamav/libclamunrar/scantree.cpp:103,1
    - Dst: FindFile::Next
      Src: /src/clamav/libclamunrar/scantree.cpp:105,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/scantree.cpp:108,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:108,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/scantree.cpp:112,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/scantree.cpp:113,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/scantree.cpp:113,1
    - Dst: RemoveNameFromPath
      Src: /src/clamav/libclamunrar/scantree.cpp:114,1
    - Dst: AddString
      Src: /src/clamav/libclamunrar/scantree.cpp:116,1
    - Dst: ItemsCount
      Src: /src/clamav/libclamunrar/scantree.cpp:118,1
    - Dst: GetString
      Src: /src/clamav/libclamunrar/scantree.cpp:121,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:121,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 123
    functionName: ScanTree::ExpandFolderMask
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 0
    functionsReached:
    - FindFile::FindFile
    - FindFile::Next
    - RemoveNameFromPath
    - AddString
    - Reset
    - wcsncpyz
    - GetString
    - wcscmp
    - IsPathDiv
    - FindFile::SetMask
    - wcsncatz
    - ASIZE
    - ItemsCount
    - PointToName
    linkageType: ''
    returnType: bool
    signature: bool ScanTree::ExpandFolderMask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ItemsCount
      Src: /src/clamav/libclamunrar/scantree.cpp:133,1
    - Dst: GetString
      Src: /src/clamav/libclamunrar/scantree.cpp:133,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:133,1
    - Dst: Reset
      Src: /src/clamav/libclamunrar/scantree.cpp:137,1
    - Dst: GetString
      Src: /src/clamav/libclamunrar/scantree.cpp:138,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:138,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/scantree.cpp:154,1
    - Dst: IsDriveDiv
      Src: /src/clamav/libclamunrar/scantree.cpp:154,1
    - Dst: ScanTree::ExpandFolderMask
      Src: /src/clamav/libclamunrar/scantree.cpp:175,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:179,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:179,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/scantree.cpp:180,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:180,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/scantree.cpp:182,1
    - Dst: IsDriveDiv
      Src: /src/clamav/libclamunrar/scantree.cpp:182,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/scantree.cpp:183,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:183,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/scantree.cpp:187,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/scantree.cpp:188,1
    - Dst: wcscmp
      Src: /src/clamav/libclamunrar/scantree.cpp:188,1
    - Dst: AddString
      Src: /src/clamav/libclamunrar/scantree.cpp:191,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/scantree.cpp:203,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:203,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/scantree.cpp:204,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:204,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 129
    functionDepth: 5
    functionLinenumber: 129
    functionLinenumberEnd: 207
    functionName: ScanTree::GetFilteredMask
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 0
    functionsReached:
    - IsDriveDiv
    - AddString
    - Reset
    - wcsncpyz
    - GetString
    - ScanTree::ExpandFolderMask
    - wcscmp
    - IsPathDiv
    - wcsncatz
    - ASIZE
    - AddEndSlash
    - ItemsCount
    - PointToName
    linkageType: ''
    returnType: bool
    signature: bool ScanTree::GetFilteredMask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScanTree::GetFilteredMask
      Src: /src/clamav/libclamunrar/scantree.cpp:212,1
    - Dst: UnixSlashToDos
      Src: /src/clamav/libclamunrar/scantree.cpp:215,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:215,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/scantree.cpp:223,1
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/scantree.cpp:226,1
    - Dst: IsDriveLetter
      Src: /src/clamav/libclamunrar/scantree.cpp:231,1
    - Dst: IsPathDiv
      Src: /src/clamav/libclamunrar/scantree.cpp:231,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/scantree.cpp:234,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/scantree.cpp:236,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:236,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/scantree.cpp:239,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:239,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/scantree.cpp:240,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:240,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:245,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:245,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 210
    functionDepth: 6
    functionLinenumber: 210
    functionLinenumberEnd: 248
    functionName: ScanTree::GetNextMask
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 1
    functionsReached:
    - IsDriveLetter
    - wcsncpyz
    - UnixSlashToDos
    - IsPathDiv
    - ScanTree::GetFilteredMask
    - wcsncatz
    - ASIZE
    - AddEndSlash
    - PointToName
    - wcschr
    linkageType: ''
    returnType: bool
    signature: bool ScanTree::GetNextMask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindFile::FindFile
      Src: /src/clamav/libclamunrar/scantree.cpp:284,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:287,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:287,1
    - Dst: SetName
      Src: /src/clamav/libclamunrar/scantree.cpp:289,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:289,1
    - Dst: SetMask
      Src: /src/clamav/libclamunrar/scantree.cpp:290,1
    - Dst: ExclCheck
      Src: /src/clamav/libclamunrar/scantree.cpp:311,1
    - Dst: OpenErrorMsg
      Src: /src/clamav/libclamunrar/scantree.cpp:315,1
    - Dst: SetErrorCode
      Src: /src/clamav/libclamunrar/scantree.cpp:317,1
    - Dst: Next
      Src: /src/clamav/libclamunrar/scantree.cpp:338,1
    - Dst: ScanTree::ScanError
      Src: /src/clamav/libclamunrar/scantree.cpp:345,1
    - Dst: wcsrchr
      Src: /src/clamav/libclamunrar/scantree.cpp:365,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:369,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:369,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:371,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/scantree.cpp:371,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:371,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:373,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:373,1
    - Dst: wcsrchr
      Src: /src/clamav/libclamunrar/scantree.cpp:374,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:376,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:376,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/scantree.cpp:380,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:380,1
    - Dst: FindFile::FastFind
      Src: /src/clamav/libclamunrar/scantree.cpp:384,1
    - Dst: ExclCheck
      Src: /src/clamav/libclamunrar/scantree.cpp:405,1
    - Dst: ExclDirByAttr
      Src: /src/clamav/libclamunrar/scantree.cpp:406,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:419,1
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/scantree.cpp:419,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:419,1
    - Dst: wcsncpyz
      Src: /src/clamav/libclamunrar/scantree.cpp:420,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:420,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/scantree.cpp:422,1
    - Dst: wcslen
      Src: /src/clamav/libclamunrar/scantree.cpp:422,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/scantree.cpp:424,1
    - Dst: AddEndSlash
      Src: /src/clamav/libclamunrar/scantree.cpp:428,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:428,1
    - Dst: wcsncatz
      Src: /src/clamav/libclamunrar/scantree.cpp:429,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:429,1
    - Dst: CmpName
      Src: /src/clamav/libclamunrar/scantree.cpp:454,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 80
    argCount: 1
    argNames:
    - FD
    argTypes:
    - FindData*
    constantsTouched: []
    func_position:
      end: 458
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 458
    functionName: ScanTree::FindProc
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 1
    functionsReached:
    - SetMask
    - CmpName
    - FindFile::FastFind
    - ExclCheck
    - OpenErrorMsg
    - wcsrchr
    - wcsncpyz
    - ScanTree::ScanError
    - ExclDirByAttr
    - SetErrorCode
    - Next
    - PointToName
    - wcsncatz
    - ASIZE
    - uiMsg
    - wcslen
    - FindFile::FindFile
    - SetName
    - AddEndSlash
    linkageType: ''
    returnType: SCAN_CODE
    signature: SCAN_CODE ScanTree::FindProc(FindData *FD)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PointToName
      Src: /src/clamav/libclamunrar/scantree.cpp:473,1
    - Dst: GetFileAttributes
      Src: /src/clamav/libclamunrar/scantree.cpp:477,1
    - Dst: wcsstr
      Src: /src/clamav/libclamunrar/scantree.cpp:485,1
    - Dst: ExclCheck
      Src: /src/clamav/libclamunrar/scantree.cpp:490,1
    - Dst: AddString
      Src: /src/clamav/libclamunrar/scantree.cpp:496,1
    - Dst: Push
      Src: /src/clamav/libclamunrar/scantree.cpp:498,1
    - Dst: ConvertNameToFull
      Src: /src/clamav/libclamunrar/scantree.cpp:501,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/scantree.cpp:501,1
    - Dst: uiMsg
      Src: /src/clamav/libclamunrar/scantree.cpp:502,1
    - Dst: SysErrMsg
      Src: /src/clamav/libclamunrar/scantree.cpp:503,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - Error
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 505
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 505
    functionName: ScanTree::ScanError
    functionSourceFile: /src/clamav/libclamunrar/scantree.cpp
    functionUses: 1
    functionsReached:
    - wcsstr
    - SysErrMsg
    - AddString
    - ConvertNameToFull
    - Push
    - ExclCheck
    - ASIZE
    - uiMsg
    - GetFileAttributes
    - PointToName
    linkageType: ''
    returnType: void
    signature: void ScanTree::ScanError(bool &Error)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - Name
    - MaxNameSize
    - FileSize
    - FileTime
    - Flags
    argTypes:
    - wchar*
    - size_t
    - int64
    - RarTime*
    - uint
    constantsTouched: []
    func_position:
      end: 5
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 5
    functionName: uiAskReplace
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UIASKREP_RESULT
    signature: UIASKREP_RESULT uiAskReplace(wchar *Name,size_t MaxNameSize,int64 FileSize,RarTime
      *FileTime,uint Flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - Extract
    - ArcName
    argTypes:
    - bool
    - wchar*
    constantsTouched: []
    func_position:
      end: 12
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 12
    functionName: uiStartArchiveExtract
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiStartArchiveExtract(bool Extract,const wchar *ArcName)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - FileName
    - Extract
    - Test
    - Skip
    argTypes:
    - wchar*
    - bool
    - bool
    - bool
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: uiStartFileExtract
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uiStartFileExtract(const wchar *FileName,bool Extract,bool Test,bool
      Skip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - CurFileSize
    - TotalFileSize
    - CurSize
    - TotalSize
    argTypes:
    - int64
    - int64
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: uiExtractProgress
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiExtractProgress(int64 CurFileSize,int64 TotalFileSize,int64
      CurSize,int64 TotalSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - Command
    - CurSize
    - TotalSize
    argTypes:
    - char*
    - int64
    - int64
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: uiProcessProgress
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiProcessProgress(const char *Command,int64 CurSize,int64 TotalSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: uiMsgStore::Msg
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiMsgStore::Msg()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - Type
    - FileName
    - Password
    - CheckPwd
    argTypes:
    - UIPASSWORD_TYPE
    - wchar*
    - SecPassword*
    - CheckPassword*
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: uiGetPassword
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool uiGetPassword(UIPASSWORD_TYPE Type,const wchar *FileName,\n                   SecPassword
      *Password,CheckPassword *CheckPwd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: uiIsGlobalPasswordSet
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uiIsGlobalPasswordSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - Type
    argTypes:
    - UIALARM_TYPE
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: uiAlarm
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiAlarm(UIALARM_TYPE Type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: uiIsAborted
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uiIsAborted()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: uiGiveTick
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiGiveTick()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Month
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: uiGetMonthName
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar *uiGetMonthName(int Month)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: uiEolAfterMsg
    functionSourceFile: /src/clamav/libclamunrar/uisilent.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uiEolAfterMsg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSCoder16::gfInit
      Src: /src/clamav/libclamunrar/rs16.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: RSCoder16::RSCoder16
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 2
    functionsReached:
    - RSCoder16::gfInit
    linkageType: ''
    returnType: void
    signature: void RSCoder16::RSCoder16()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: RSCoder16::~RSCoder16()
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSCoder16::~RSCoder16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uint::uint
      Src: /src/clamav/libclamunrar/rs16.cpp:35,1
    - Dst: uint::uint
      Src: /src/clamav/libclamunrar/rs16.cpp:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: RSCoder16::gfInit
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 1
    functionsReached:
    - uint::uint
    linkageType: ''
    returnType: void
    signature: void RSCoder16::gfInit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint
    - uint
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: RSCoder16::gfAdd
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RSCoder16::gfAdd(uint a,uint b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint
    - uint
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: RSCoder16::gfMul
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RSCoder16::gfMul(uint a,uint b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: RSCoder16::gfInv
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint
    signature: uint RSCoder16::gfInv(uint a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::bool
      Src: /src/clamav/libclamunrar/rs16.cpp:84,1
    - Dst: uint::uint
      Src: /src/clamav/libclamunrar/rs16.cpp:106,1
    - Dst: RSCoder16::MakeDecoderMatrix
      Src: /src/clamav/libclamunrar/rs16.cpp:107,1
    - Dst: RSCoder16::InvertDecoderMatrix
      Src: /src/clamav/libclamunrar/rs16.cpp:108,1
    - Dst: uint::uint
      Src: /src/clamav/libclamunrar/rs16.cpp:112,1
    - Dst: RSCoder16::MakeEncoderMatrix
      Src: /src/clamav/libclamunrar/rs16.cpp:113,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - DataCount
    - RecCount
    - ValidityFlags
    argTypes:
    - uint
    - uint
    - bool*
    constantsTouched: []
    func_position:
      end: 116
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 116
    functionName: RSCoder16::Init
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 1
    functionsReached:
    - RSCoder16::InvertDecoderMatrix
    - RSCoder16::MakeEncoderMatrix
    - bool::bool
    - uint::uint
    - RSCoder16::MakeDecoderMatrix
    linkageType: ''
    returnType: bool
    signature: bool RSCoder16::Init(uint DataCount, uint RecCount, bool *ValidityFlags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSCoder16::gfInv
      Src: /src/clamav/libclamunrar/rs16.cpp:125,1
    - Dst: RSCoder16::gfAdd
      Src: /src/clamav/libclamunrar/rs16.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: RSCoder16::MakeEncoderMatrix
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 1
    functionsReached:
    - RSCoder16::gfAdd
    - RSCoder16::gfInv
    linkageType: ''
    returnType: void
    signature: void RSCoder16::MakeEncoderMatrix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSCoder16::gfInv
      Src: /src/clamav/libclamunrar/rs16.cpp:142,1
    - Dst: RSCoder16::gfAdd
      Src: /src/clamav/libclamunrar/rs16.cpp:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: RSCoder16::MakeDecoderMatrix
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 1
    functionsReached:
    - RSCoder16::gfAdd
    - RSCoder16::gfInv
    linkageType: ''
    returnType: void
    signature: void RSCoder16::MakeDecoderMatrix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uint::uint
      Src: /src/clamav/libclamunrar/rs16.cpp:156,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/rs16.cpp:157,1
    - Dst: RSCoder16::gfInv
      Src: /src/clamav/libclamunrar/rs16.cpp:188,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:192,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:193,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:206,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:207,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 217
    functionName: RSCoder16::InvertDecoderMatrix
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 1
    functionsReached:
    - RSCoder16::gfMul
    - memset
    - uint::uint
    - RSCoder16::gfInv
    linkageType: ''
    returnType: void
    signature: void RSCoder16::InvertDecoderMatrix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - Data
    - Out
    argTypes:
    - uint*
    - uint*
    constantsTouched: []
    func_position:
      end: 257
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 257
    functionName: RSCoder16::Process
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 0
    functionsReached:
    - RSCoder16::gfMul
    linkageType: ''
    returnType: void
    signature: void RSCoder16::Process(const uint *Data, uint *Out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/rs16.cpp:266,1
    - Dst: RSCoder16::SSE_UpdateECC
      Src: /src/clamav/libclamunrar/rs16.cpp:277,1
    - Dst: uint::uint
      Src: /src/clamav/libclamunrar/rs16.cpp:286,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/rs16.cpp:310,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/rs16.cpp:311,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 5
    argNames:
    - DataNum
    - ECCNum
    - Data
    - ECC
    - BlockSize
    argTypes:
    - uint
    - uint
    - byte*
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 313
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 313
    functionName: RSCoder16::UpdateECC
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 0
    functionsReached:
    - byte
    - memset
    - RSCoder16::SSE_UpdateECC
    - uint::uint
    linkageType: ''
    returnType: void
    signature: void RSCoder16::UpdateECC(uint DataNum, uint ECCNum, const byte *Data,
      byte *ECC, size_t BlockSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:336,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:337,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:338,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:339,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:340,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:341,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:342,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:343,1
    - Dst: _mm_set1_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:348,1
    - Dst: _mm_set1_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:349,1
    - Dst: _mm_slli_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:350,1
    - Dst: _mm_srli_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:360,1
    - Dst: _mm_and_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:361,1
    - Dst: _mm_srli_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:362,1
    - Dst: _mm_and_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:363,1
    - Dst: _mm_packus_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:364,1
    - Dst: _mm_packus_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:365,1
    - Dst: _mm_and_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:369,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:370,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:371,1
    - Dst: _mm_and_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:374,1
    - Dst: _mm_srli_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:375,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:376,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:377,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:380,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:381,1
    - Dst: _mm_and_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:384,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:385,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:386,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:389,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:390,1
    - Dst: _mm_and_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:393,1
    - Dst: _mm_srli_epi16
      Src: /src/clamav/libclamunrar/rs16.cpp:394,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:395,1
    - Dst: _mm_shuffle_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:396,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:399,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:400,1
    - Dst: _mm_unpacklo_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:403,1
    - Dst: _mm_unpackhi_epi8
      Src: /src/clamav/libclamunrar/rs16.cpp:404,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:409,1
    - Dst: _mm_xor_si128
      Src: /src/clamav/libclamunrar/rs16.cpp:410,1
    - Dst: RSCoder16::gfMul
      Src: /src/clamav/libclamunrar/rs16.cpp:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - DataNum
    - ECCNum
    - Data
    - ECC
    - BlockSize
    argTypes:
    - uint
    - uint
    - byte*
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 420
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 420
    functionName: RSCoder16::SSE_UpdateECC
    functionSourceFile: /src/clamav/libclamunrar/rs16.cpp
    functionUses: 1
    functionsReached:
    - _mm_slli_epi16
    - _mm_srli_epi16
    - _mm_unpacklo_epi8
    - _mm_packus_epi16
    - _mm_set1_epi16
    - _mm_set1_epi8
    - _mm_xor_si128
    - _mm_unpackhi_epi8
    - RSCoder16::gfMul
    - _mm_shuffle_epi8
    - _mm_and_si128
    linkageType: ''
    returnType: bool
    signature: bool RSCoder16::SSE_UpdateECC(uint DataNum, uint ECCNum, const byte
      *Data, byte *ECC, size_t BlockSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: SecPassword::IsSet
    functionSourceFile: /src/clamav/libclamunrar/secpassword.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSet()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WideCharToMultiByte
      Src: /src/clamav/libclamunrar/unicode.cpp:26,1
    - Dst: WideToUtf
      Src: /src/clamav/libclamunrar/unicode.cpp:31,1
    - Dst: WideToCharMap
      Src: /src/clamav/libclamunrar/unicode.cpp:34,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:37,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:52,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:54,1
    - Dst: wcsrtombs
      Src: /src/clamav/libclamunrar/unicode.cpp:55,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - Src
    - Dest
    - DestSize
    argTypes:
    - wchar*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 82
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 82
    functionName: WideToChar
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 26
    functionsReached:
    - memset
    - WideCharToMultiByte
    - WideToCharMap
    - WideToUtf
    - wcsrtombs
    linkageType: ''
    returnType: bool
    signature: bool WideToChar(const wchar *Src,char *Dest,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/clamav/libclamunrar/unicode.cpp:91,1
    - Dst: UtfToWide
      Src: /src/clamav/libclamunrar/unicode.cpp:96,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:100,1
    - Dst: CharToWideMap
      Src: /src/clamav/libclamunrar/unicode.cpp:109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - Src
    - Dest
    - DestSize
    argTypes:
    - char*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 128
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 128
    functionName: CharToWide
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 26
    functionsReached:
    - memset
    - MultiByteToWideChar
    - UtfToWide
    - CharToWideMap
    linkageType: ''
    returnType: bool
    signature: bool CharToWide(const char *Src,wchar *Dest,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/clamav/libclamunrar/unicode.cpp:138,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:144,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unicode.cpp:150,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unicode.cpp:157,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unicode.cpp:157,1
    - Dst: uint
      Src: /src/clamav/libclamunrar/unicode.cpp:158,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:162,1
    - Dst: wcrtomb
      Src: /src/clamav/libclamunrar/unicode.cpp:163,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:169,1
    - Dst: Max
      Src: /src/clamav/libclamunrar/unicode.cpp:171,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unicode.cpp:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - Src
    - Dest
    - DestSize
    - Success
    argTypes:
    - wchar*
    - char*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 176
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 176
    functionName: WideToCharMap
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 1
    functionsReached:
    - memset
    - wcrtomb
    - Max
    - uint
    - Min
    - wcschr
    linkageType: ''
    returnType: bool
    signature: bool WideToCharMap(const wchar *Src,char *Dest,size_t DestSize,bool
      &Success)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:199,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/unicode.cpp:205,1
    - Dst: byte
      Src: /src/clamav/libclamunrar/unicode.cpp:214,1
    - Dst: memset
      Src: /src/clamav/libclamunrar/unicode.cpp:221,1
    - Dst: Max
      Src: /src/clamav/libclamunrar/unicode.cpp:223,1
    - Dst: Min
      Src: /src/clamav/libclamunrar/unicode.cpp:227,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - Src
    - Dest
    - DestSize
    - Success
    argTypes:
    - char*
    - wchar*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 228
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 228
    functionName: CharToWideMap
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 1
    functionsReached:
    - memset
    - Min
    - byte
    - Max
    linkageType: ''
    returnType: void
    signature: void CharToWideMap(const char *Src,wchar *Dest,size_t DestSize,bool
      &Success)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - Src
    - SrcSize
    - Dest
    - DestSize
    argTypes:
    - wchar*
    - size_t
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: WideToRaw
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte * WideToRaw(const wchar *Src,size_t SrcSize,byte *Dest,size_t
      DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - Src
    - Dest
    - DestSize
    argTypes:
    - byte*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: RawToWide
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: wchar
    signature: wchar * RawToWide(const byte *Src,wchar *Dest,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - Src
    - Dest
    - DestSize
    argTypes:
    - wchar*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 295
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 295
    functionName: WideToUtf
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WideToUtf(const wchar *Src,char *Dest,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - Src
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 322
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 322
    functionName: WideToUtfSize
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t WideToUtfSize(const wchar *Src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: byte
      Src: /src/clamav/libclamunrar/unicode.cpp:332,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 3
    argNames:
    - Src
    - Dest
    - DestSize
    argTypes:
    - char*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 397
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 397
    functionName: UtfToWide
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 7
    functionsReached:
    - byte
    linkageType: ''
    returnType: bool
    signature: bool UtfToWide(const char *Src,wchar *Dest,size_t DestSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsTextUtf8
      Src: /src/clamav/libclamunrar/unicode.cpp:403,1
    - Dst: strlen
      Src: /src/clamav/libclamunrar/unicode.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - Src
    argTypes:
    - byte*
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: IsTextUtf8
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 2
    functionsReached:
    - strlen
    - IsTextUtf8
    linkageType: ''
    returnType: bool
    signature: bool IsTextUtf8(const byte *Src)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - Src
    - SrcSize
    argTypes:
    - byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 423
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 423
    functionName: IsTextUtf8
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsTextUtf8(const byte *Src,size_t SrcSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompareStringW
      Src: /src/clamav/libclamunrar/unicode.cpp:429,1
    - Dst: towupper
      Src: /src/clamav/libclamunrar/unicode.cpp:433,1
    - Dst: towupper
      Src: /src/clamav/libclamunrar/unicode.cpp:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - wchar*
    - wchar*
    constantsTouched: []
    func_position:
      end: 444
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 444
    functionName: wcsicomp
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 10
    functionsReached:
    - CompareStringW
    - towupper
    linkageType: ''
    returnType: int
    signature: int wcsicomp(const wchar *s1,const wchar *s2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompareStringW
      Src: /src/clamav/libclamunrar/unicode.cpp:455,1
    - Dst: towupper
      Src: /src/clamav/libclamunrar/unicode.cpp:461,1
    - Dst: towupper
      Src: /src/clamav/libclamunrar/unicode.cpp:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - wchar*
    - wchar*
    - size_t
    constantsTouched: []
    func_position:
      end: 472
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 472
    functionName: wcsnicomp
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 6
    functionsReached:
    - CompareStringW
    - towupper
    linkageType: ''
    returnType: int
    signature: int wcsnicomp(const wchar *s1,const wchar *s2,size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolowerw
      Src: /src/clamav/libclamunrar/unicode.cpp:483,1
    - Dst: tolowerw
      Src: /src/clamav/libclamunrar/unicode.cpp:483,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - str
    - search
    argTypes:
    - wchar_t*
    - wchar_t*
    constantsTouched: []
    func_position:
      end: 487
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 487
    functionName: wcscasestr
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 0
    functionsReached:
    - tolowerw
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t * wcscasestr(const wchar_t *str, const wchar_t *search)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CharLower
      Src: /src/clamav/libclamunrar/unicode.cpp:496,1
    - Dst: towlower
      Src: /src/clamav/libclamunrar/unicode.cpp:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 502
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 502
    functionName: wcslower
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 1
    functionsReached:
    - towlower
    - CharLower
    linkageType: ''
    returnType: wchar
    signature: wchar * wcslower(wchar *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CharUpper
      Src: /src/clamav/libclamunrar/unicode.cpp:512,1
    - Dst: towupper
      Src: /src/clamav/libclamunrar/unicode.cpp:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 518
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 518
    functionName: wcsupper
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 2
    functionsReached:
    - towupper
    - CharUpper
    linkageType: ''
    returnType: wchar
    signature: wchar * wcsupper(wchar *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CharUpper
      Src: /src/clamav/libclamunrar/unicode.cpp:531,1
    - Dst: towupper
      Src: /src/clamav/libclamunrar/unicode.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 535
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 535
    functionName: toupperw
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 15
    functionsReached:
    - towupper
    - CharUpper
    linkageType: ''
    returnType: int
    signature: int toupperw(int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CharLower
      Src: /src/clamav/libclamunrar/unicode.cpp:544,1
    - Dst: towlower
      Src: /src/clamav/libclamunrar/unicode.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 548
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 548
    functionName: tolowerw
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 1
    functionsReached:
    - towlower
    - CharLower
    linkageType: ''
    returnType: int
    signature: int tolowerw(int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atoilw
      Src: /src/clamav/libclamunrar/unicode.cpp:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: atoiw
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 3
    functionsReached:
    - atoilw
    linkageType: ''
    returnType: int
    signature: int atoiw(const wchar *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: int64
      Src: /src/clamav/libclamunrar/unicode.cpp:575,1
    - Dst: int64
      Src: /src/clamav/libclamunrar/unicode.cpp:575,1
    - Dst: int64
      Src: /src/clamav/libclamunrar/unicode.cpp:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar*
    constantsTouched: []
    func_position:
      end: 576
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 576
    functionName: atoilw
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 2
    functionsReached:
    - int64
    linkageType: ''
    returnType: int64
    signature: int64 atoilw(const wchar *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SupportDBCS::Init
      Src: /src/clamav/libclamunrar/unicode.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: SupportDBCS::SupportDBCS
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 0
    functionsReached:
    - SupportDBCS::Init
    linkageType: ''
    returnType: void
    signature: void SupportDBCS::SupportDBCS()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCPInfo
      Src: /src/clamav/libclamunrar/unicode.cpp:591,1
    - Dst: ASIZE
      Src: /src/clamav/libclamunrar/unicode.cpp:593,1
    - Dst: IsDBCSLeadByte
      Src: /src/clamav/libclamunrar/unicode.cpp:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: SupportDBCS::Init
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 1
    functionsReached:
    - ASIZE
    - IsDBCSLeadByte
    - GetCPInfo
    linkageType: ''
    returnType: void
    signature: void SupportDBCS::Init()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: SupportDBCS::charnext
    functionSourceFile: /src/clamav/libclamunrar/unicode.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * SupportDBCS::charnext(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:198,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/ishield.c:199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:200,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:205,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:205,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:205,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:205,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:205,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:205,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:209,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:210,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/ishield.c:224,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:225,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/ishield.c:232,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/ishield.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:234,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:239,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:244,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/ishield.c:249,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:252,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/ishield.c:253,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:255,1
    - Dst: open
      Src: /src/clamav/libclamav/ishield.c:260,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:261,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:262,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:264,1
    - Dst: memset
      Src: /src/clamav/libclamav/ishield.c:273,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/ishield.c:274,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ishield.c:280,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/ishield.c:281,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:282,1
    - Dst: inflate
      Src: /src/clamav/libclamav/ishield.c:298,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:300,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ishield.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:311,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/ishield.c:319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:322,1
    - Dst: lseek
      Src: /src/clamav/libclamav/ishield.c:324,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:325,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/ishield.c:328,1
    - Dst: close
      Src: /src/clamav/libclamav/ishield.c:330,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/ishield.c:333,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:337,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:340,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:349,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 123
    argCount: 2
    argNames:
    - ctx
    - 'off'
    argTypes:
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 354
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 354
    functionName: cli_scanishield_msi
    functionSourceFile: /src/clamav/libclamav/ishield.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - cli_readint32
    - le64_to_host
    - CLI_ISCONTAINED_0_TO
    - inflateInit
    - inflate
    - lseek
    - fmap_need_off_once
    - cli_dbgmsg
    - MIN
    - inflateEnd
    - cli_writen
    - close
    - memset
    - cli_unlink
    - open
    - fmap_readn
    - free
    - cli_safer_strdup
    - strlen
    - cli_gentemp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanishield_msi(cli_ctx *ctx, off_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/ishield.c:384,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:386,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/ishield.c:388,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:390,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/ishield.c:392,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:394,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/ishield.c:396,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:398,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:400,1
    - Dst: strtol
      Src: /src/clamav/libclamav/ishield.c:402,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:408,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/ishield.c:409,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/ishield.c:416,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/ishield.c:418,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:420,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/ishield.c:426,1
    - Dst: strtol
      Src: /src/clamav/libclamav/ishield.c:428,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/ishield.c:429,1
    - Dst: cli_max_realloc_or_free
      Src: /src/clamav/libclamav/ishield.c:435,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:439,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/ishield.c:446,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:450,1
    - Dst: is_dump_and_scan
      Src: /src/clamav/libclamav/ishield.c:451,1
    - Dst: is_parse_hdr
      Src: /src/clamav/libclamav/ishield.c:458,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:461,1
    - Dst: is_dump_and_scan
      Src: /src/clamav/libclamav/ishield.c:462,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:465,1
    - Dst: is_dump_and_scan
      Src: /src/clamav/libclamav/ishield.c:466,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:475,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 82
    argCount: 3
    argNames:
    - ctx
    - 'off'
    - sz
    argTypes:
    - cli_ctx*
    - off_t
    - size_t
    constantsTouched: []
    func_position:
      end: 479
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 479
    functionName: cli_scanishield
    functionSourceFile: /src/clamav/libclamav/ishield.c
    functionUses: 0
    functionsReached:
    - cli_matchmeta
    - is_dump_and_scan
    - strlen
    - cli_warnmsg
    - strcasecmp
    - fmap_unneed_ptr
    - fmap_need_offstr
    - cli_dbgmsg
    - cli_max_realloc_or_free
    - is_parse_hdr
    - strncasecmp
    - strtol
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanishield(cli_ctx *ctx, off_t off, size_t sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:490,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/ishield.c:494,1
    - Dst: open
      Src: /src/clamav/libclamav/ishield.c:498,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ishield.c:499,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:500,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/ishield.c:506,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:507,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ishield.c:511,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:520,1
    - Dst: lseek
      Src: /src/clamav/libclamav/ishield.c:521,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:522,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/ishield.c:525,1
    - Dst: close
      Src: /src/clamav/libclamav/ishield.c:528,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/ishield.c:531,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:536,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - ctx
    - 'off'
    - fsize
    argTypes:
    - cli_ctx*
    - off_t
    - size_t
    constantsTouched: []
    func_position:
      end: 538
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 538
    functionName: is_dump_and_scan
    functionSourceFile: /src/clamav/libclamav/ishield.c
    functionUses: 1
    functionsReached:
    - lseek
    - cli_magic_scan_desc
    - close
    - cli_unlink
    - cli_errmsg
    - open
    - fmap_need_off_once
    - cli_gentemp
    - cli_dbgmsg
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t is_dump_and_scan(cli_ctx *ctx, off_t off, size_t fsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:554,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/ishield.c:558,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:559,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/ishield.c:564,1
    - Dst: fmap_need_ptr
      Src: /src/clamav/libclamav/ishield.c:565,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:567,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:571,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/ishield.c:573,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:574,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:578,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/ishield.c:596,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/ishield.c:613,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/ishield.c:614,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:615,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/ishield.c:617,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ishield.c:626,1
    - Dst: md5str
      Src: /src/clamav/libclamav/ishield.c:627,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/ishield.c:628,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/ishield.c:629,1
    - Dst: fmap_need_str
      Src: /src/clamav/libclamav/ishield.c:630,1
    - Dst: fmap_need_str
      Src: /src/clamav/libclamav/ishield.c:633,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/ishield.c:636,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/ishield.c:637,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/ishield.c:638,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/ishield.c:639,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/ishield.c:641,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:644,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:650,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:656,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:663,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/ishield.c:670,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:673,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:675,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:675,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:677,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:677,1
    - Dst: is_extract_cab
      Src: /src/clamav/libclamav/ishield.c:680,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:687,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:695,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:695,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:697,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:697,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:701,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:706,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:709,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:709,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:711,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ishield.c:711,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/ishield.c:712,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:715,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 107
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - cli_ctx*
    - struct IS_CABSTUFF*
    constantsTouched: []
    func_position:
      end: 720
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 720
    functionName: is_parse_hdr
    functionSourceFile: /src/clamav/libclamav/ishield.c
    functionUses: 1
    functionsReached:
    - md5str
    - le32_to_host
    - fmap_need_ptr
    - cli_readint32
    - strlen
    - fmap_need_ptr_once
    - CLI_ISCONTAINED
    - le16_to_host
    - is_extract_cab
    - le64_to_host
    - cli_dbgmsg
    - fmap_need_str
    - fmap_unneed_ptr
    - memcpy
    - fmap_need_off
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t is_parse_hdr(cli_ctx *ctx, struct IS_CABSTUFF *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sum
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 733
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 733
    functionName: md5str
    functionSourceFile: /src/clamav/libclamav/ishield.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void md5str(uint8_t *sum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/ishield.c:749,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ishield.c:750,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/ishield.c:754,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:755,1
    - Dst: open
      Src: /src/clamav/libclamav/ishield.c:758,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ishield.c:759,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:760,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:761,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:769,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/ishield.c:773,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:774,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:780,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:784,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/ishield.c:788,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:789,1
    - Dst: memset
      Src: /src/clamav/libclamav/ishield.c:793,1
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/ishield.c:794,1
    - Dst: inflate
      Src: /src/clamav/libclamav/ishield.c:801,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ishield.c:804,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:812,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:819,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/ishield.c:822,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:825,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:828,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:830,1
    - Dst: lseek
      Src: /src/clamav/libclamav/ishield.c:831,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ishield.c:832,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/ishield.c:833,1
    - Dst: close
      Src: /src/clamav/libclamav/ishield.c:836,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/ishield.c:838,1
    - Dst: free
      Src: /src/clamav/libclamav/ishield.c:839,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 88
    argCount: 4
    argNames:
    - ctx
    - 'off'
    - size
    - csize
    argTypes:
    - cli_ctx*
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 841
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 841
    functionName: is_extract_cab
    functionSourceFile: /src/clamav/libclamav/ishield.c
    functionUses: 1
    functionsReached:
    - lseek
    - memset
    - cli_magic_scan_desc
    - close
    - cli_unlink
    - cli_errmsg
    - open
    - inflateEnd
    - fmap_need_off_once
    - cli_gentemp
    - cli_dbgmsg
    - inflate
    - inflateInit2
    - malloc
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t is_extract_cab(cli_ctx *ctx, uint64_t off, uint64_t size,
      uint64_t csize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/openioc.c:47,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/openioc.c:49,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:51,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: openioc_read
    functionSourceFile: /src/clamav/libclamav/openioc.c
    functionUses: 0
    functionsReached:
    - xmlTextReaderRead
    - xmlTextReaderConstLocalName
    - cli_dbgmsg
    - xmlTextReaderNodeType
    linkageType: ''
    returnType: xmlChar
    signature: xmlChar *openioc_read(xmlTextReaderPtr reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderGetAttribute
      Src: /src/clamav/libclamav/openioc.c:59,1
    - Dst: xmlTextReaderGetAttribute
      Src: /src/clamav/libclamav/openioc.c:60,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/openioc.c:64,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/openioc.c:65,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/openioc.c:66,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/openioc.c:67,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/openioc.c:70,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/openioc.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - xmlTextReaderPtr
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: openioc_is_context_hash
    functionSourceFile: /src/clamav/libclamav/openioc.c
    functionUses: 0
    functionsReached:
    - xmlFree
    - xmlStrcmp
    - xmlTextReaderGetAttribute
    linkageType: ''
    returnType: int
    signature: int openioc_is_context_hash(xmlTextReaderPtr reader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderGetAttribute
      Src: /src/clamav/libclamav/openioc.c:83,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:85,1
    - Dst: xmlStrcasecmp
      Src: /src/clamav/libclamav/openioc.c:89,1
    - Dst: xmlStrcasecmp
      Src: /src/clamav/libclamav/openioc.c:90,1
    - Dst: xmlStrcasecmp
      Src: /src/clamav/libclamav/openioc.c:91,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/openioc.c:92,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/openioc.c:96,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/openioc.c:99,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:99,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/openioc.c:100,1
    - Dst: calloc
      Src: /src/clamav/libclamav/openioc.c:102,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:104,1
    - Dst: xmlStrdup
      Src: /src/clamav/libclamav/openioc.c:107,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:111,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - reader
    - elems
    - context_hash
    argTypes:
    - xmlTextReaderPtr
    - struct openioc_hash**
    - int
    constantsTouched: []
    func_position:
      end: 117
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 117
    functionName: openioc_parse_content
    functionSourceFile: /src/clamav/libclamav/openioc.c
    functionUses: 0
    functionsReached:
    - xmlStrdup
    - xmlTextReaderGetAttribute
    - calloc
    - xmlTextReaderNodeType
    - xmlTextReaderConstValue
    - xmlFree
    - cli_dbgmsg
    - xmlStrcasecmp
    - xmlTextReaderRead
    linkageType: ''
    returnType: int
    signature: int openioc_parse_content(xmlTextReaderPtr reader, struct openioc_hash
      **elems, int context_hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: openioc_read
      Src: /src/clamav/libclamav/openioc.c:126,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:129,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:130,1
    - Dst: openioc_is_context_hash
      Src: /src/clamav/libclamav/openioc.c:131,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:132,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:133,1
    - Dst: openioc_parse_content
      Src: /src/clamav/libclamav/openioc.c:134,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:138,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - reader
    - elems
    argTypes:
    - xmlTextReaderPtr
    - struct openioc_hash**
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: openioc_parse_indicatoritem
    functionSourceFile: /src/clamav/libclamav/openioc.c
    functionUses: 0
    functionsReached:
    - openioc_is_context_hash
    - openioc_parse_content
    - openioc_read
    - xmlTextReaderNodeType
    - xmlStrEqual
    linkageType: ''
    returnType: int
    signature: int openioc_parse_indicatoritem(xmlTextReaderPtr reader, struct openioc_hash
      **elems)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: openioc_read
      Src: /src/clamav/libclamav/openioc.c:152,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:155,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:156,1
    - Dst: openioc_parse_indicator
      Src: /src/clamav/libclamav/openioc.c:157,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:159,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:162,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:163,1
    - Dst: openioc_parse_indicatoritem
      Src: /src/clamav/libclamav/openioc.c:164,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:168,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - reader
    - elems
    argTypes:
    - xmlTextReaderPtr
    - struct openioc_hash**
    constantsTouched: []
    func_position:
      end: 174
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 174
    functionName: openioc_parse_indicator
    functionSourceFile: /src/clamav/libclamav/openioc.c
    functionUses: 1
    functionsReached:
    - openioc_parse_indicatoritem
    - openioc_read
    - xmlTextReaderNodeType
    - xmlStrEqual
    - cli_dbgmsg
    - openioc_parse_indicator
    linkageType: ''
    returnType: int
    signature: int openioc_parse_indicator(xmlTextReaderPtr reader, struct openioc_hash
      **elems)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:193,1
    - Dst: xmlReaderForFd
      Src: /src/clamav/libclamav/openioc.c:195,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:197,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/openioc.c:200,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/openioc.c:202,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:203,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:204,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:205,1
    - Dst: openioc_parse_indicator
      Src: /src/clamav/libclamav/openioc.c:206,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/openioc.c:208,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/openioc.c:209,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/openioc.c:213,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/openioc.c:214,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/openioc.c:217,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/openioc.c:220,1
    - Dst: strlen
      Src: /src/clamav/libclamav/openioc.c:227,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/openioc.c:231,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/openioc.c:233,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/openioc.c:234,1
    - Dst: isspace
      Src: /src/clamav/libclamav/openioc.c:251,1
    - Dst: strlen
      Src: /src/clamav/libclamav/openioc.c:253,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/openioc.c:255,1
    - Dst: free
      Src: /src/clamav/libclamav/openioc.c:256,1
    - Dst: isspace
      Src: /src/clamav/libclamav/openioc.c:260,1
    - Dst: calloc
      Src: /src/clamav/libclamav/openioc.c:264,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:266,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/openioc.c:267,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/openioc.c:268,1
    - Dst: isspace
      Src: /src/clamav/libclamav/openioc.c:288,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/openioc.c:297,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/openioc.c:303,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:305,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/openioc.c:306,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/openioc.c:307,1
    - Dst: free
      Src: /src/clamav/libclamav/openioc.c:308,1
    - Dst: free
      Src: /src/clamav/libclamav/openioc.c:312,1
    - Dst: hm_addhash_str
      Src: /src/clamav/libclamav/openioc.c:314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:316,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/openioc.c:321,1
    - Dst: free
      Src: /src/clamav/libclamav/openioc.c:322,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/openioc.c:326,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/openioc.c:328,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/openioc.c:331,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/openioc.c:332,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 120
    argCount: 4
    argNames:
    - fname
    - fd
    - engine
    - options
    argTypes:
    - char*
    - int
    - struct cl_engine*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 335
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 335
    functionName: openioc_parse
    functionSourceFile: /src/clamav/libclamav/openioc.c
    functionUses: 0
    functionsReached:
    - CLI_MPOOL_VIRNAME
    - cli_warnmsg
    - isspace
    - MPOOL_CALLOC
    - isxdigit
    - hm_addhash_str
    - xmlStrEqual
    - cli_dbgmsg
    - strrchr
    - calloc
    - xmlTextReaderNodeType
    - xmlReaderForFd
    - xmlTextReaderConstLocalName
    - xmlFree
    - xmlFreeTextReader
    - xmlTextReaderRead
    - free
    - xmlTextReaderClose
    - strlen
    - openioc_parse_indicator
    linkageType: ''
    returnType: int
    signature: int openioc_parse(const char *fname, int fd, struct cl_engine *engine,
      unsigned int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_oct
      Src: /src/clamav/libclamav/is_tar.c:40,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/is_tar.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - nbytes
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: is_tar
    functionSourceFile: /src/clamav/libclamav/is_tar.c
    functionUses: 0
    functionsReached:
    - from_oct
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_tar(const unsigned char *buf, unsigned int nbytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/clamav/libclamav/is_tar.c:75,1
    - Dst: isodigit
      Src: /src/clamav/libclamav/is_tar.c:81,1
    - Dst: isspace
      Src: /src/clamav/libclamav/is_tar.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - digs
    - where
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: from_oct
    functionSourceFile: /src/clamav/libclamav/is_tar.c
    functionUses: 1
    functionsReached:
    - isodigit
    - isspace
    linkageType: ''
    returnType: int
    signature: int from_oct(int digs, char *where)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:147,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:148,1
    - Dst: memset
      Src: /src/clamav/libclamav/asn1.c:151,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/asn1.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - map
    - data
    - len
    - raw
    argTypes:
    - fmap_t*
    - void*
    - unsigned int
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: map_raw
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fmap_need_ptr_once
    - memset
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int map_raw(fmap_t *map, const void *data, unsigned int len, uint8_t
      raw[CRT_RAWMAXLEN])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:159,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:160,1
    - Dst: cl_sha512
      Src: /src/clamav/libclamav/asn1.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - map
    - data
    - len
    - sha512
    argTypes:
    - fmap_t*
    - void*
    - unsigned int
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: map_sha512
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - fmap_need_ptr_once
    - cli_dbgmsg
    - cl_sha512
    linkageType: ''
    returnType: int
    signature: int map_sha512(fmap_t *map, const void *data, unsigned int len, uint8_t
      sha512[SHA512_HASH_SIZE])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:168,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:169,1
    - Dst: cl_sha384
      Src: /src/clamav/libclamav/asn1.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - map
    - data
    - len
    - sha384
    argTypes:
    - fmap_t*
    - void*
    - unsigned int
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: map_sha384
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - fmap_need_ptr_once
    - cli_dbgmsg
    - cl_sha384
    linkageType: ''
    returnType: int
    signature: int map_sha384(fmap_t *map, const void *data, unsigned int len, uint8_t
      sha384[SHA384_HASH_SIZE])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:178,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/asn1.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - map
    - data
    - len
    - sha256
    argTypes:
    - fmap_t*
    - void*
    - unsigned int
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: map_sha256
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - fmap_need_ptr_once
    - cli_dbgmsg
    - cl_sha256
    linkageType: ''
    returnType: int
    signature: int map_sha256(fmap_t *map, const void *data, unsigned int len, uint8_t
      sha256[SHA256_HASH_SIZE])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:186,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:187,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/asn1.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - map
    - data
    - len
    - sha1
    argTypes:
    - fmap_t*
    - void*
    - unsigned int
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: map_sha1
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - cl_sha1
    - fmap_need_ptr_once
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int map_sha1(fmap_t *map, const void *data, unsigned int len, uint8_t
      sha1[SHA1_HASH_SIZE])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:195,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:196,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/asn1.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - map
    - data
    - len
    - md5
    argTypes:
    - fmap_t*
    - void*
    - unsigned int
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: map_md5
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - fmap_need_ptr_once
    - cl_hash_data
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int map_md5(fmap_t *map, const void *data, unsigned int len, uint8_t
      *md5)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:206,1
    - Dst: map_md5
      Src: /src/clamav/libclamav/asn1.c:210,1
    - Dst: map_sha256
      Src: /src/clamav/libclamav/asn1.c:214,1
    - Dst: map_sha384
      Src: /src/clamav/libclamav/asn1.c:218,1
    - Dst: map_sha512
      Src: /src/clamav/libclamav/asn1.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - map
    - data
    - len
    - out_hash
    - hashtype
    argTypes:
    - fmap_t*
    - void*
    - unsigned int
    - uint8_t*
    - cli_crt_hashtype
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: map_hash
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - map_sha384
    - map_sha512
    - map_md5
    - map_sha1
    - cli_dbgmsg
    - map_sha256
    linkageType: ''
    returnType: int
    signature: int map_hash(fmap_t *map, const void *data, unsigned int len, uint8_t
      *out_hash, cli_crt_hashtype hashtype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/asn1.c:236,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/asn1.c:238,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/asn1.c:240,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/asn1.c:242,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/asn1.c:244,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - hashtype
    argTypes:
    - cli_crt_hashtype
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: get_hash_ctx
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - cl_hash_init
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void *get_hash_ctx(cli_crt_hashtype hashtype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:258,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:261,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 4
    argNames:
    - map
    - asn1data
    - asn1len
    - obj
    argTypes:
    - fmap_t*
    - void*
    - unsigned int*
    - struct cli_asn1*
    constantsTouched: []
    func_position:
      end: 303
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 303
    functionName: asn1_get_obj
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - fmap_need_ptr_once
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int asn1_get_obj(fmap_t *map, const void *asn1data, unsigned int *asn1len,
      struct cli_asn1 *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - map
    - asn1data
    - asn1len
    - obj
    - type
    argTypes:
    - fmap_t*
    - void*
    - unsigned int*
    - struct cli_asn1*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: asn1_expect_objtype
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int asn1_expect_objtype(fmap_t *map, const void *asn1data, unsigned
      int *asn1len, struct cli_asn1 *obj, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:324,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:328,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:329,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:332,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - map
    - asn1data
    - asn1len
    - type
    - size
    - content
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - uint8_t
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 339
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 339
    functionName: asn1_expect_obj
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - fmap_need_ptr_once
    - cli_dbgmsg
    - memcmp
    linkageType: ''
    returnType: int
    signature: int asn1_expect_obj(fmap_t *map, const void **asn1data, unsigned int
      *asn1len, uint8_t type, unsigned int size, const void *content)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:346,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:351,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:357,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:358,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - map
    - asn1data
    - asn1len
    - algo_size
    - algo
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 366
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 366
    functionName: asn1_expect_algo
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - asn1_expect_objtype
    - asn1_expect_obj
    linkageType: ''
    returnType: int
    signature: int asn1_expect_algo(fmap_t *map, const void **asn1data, unsigned int
      *asn1len, unsigned int algo_size, const void *algo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:382,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:383,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:389,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:390,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:395,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:399,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:400,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:411,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:417,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:424,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:429,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 5
    argNames:
    - map
    - asn1data
    - asn1len
    - alts
    - alts_count
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - oid_alternative_t[]
    - unsigned int
    constantsTouched: []
    func_position:
      end: 433
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 433
    functionName: asn1_expect_algo_multi
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - asn1_expect_objtype
    - fmap_need_ptr_once
    - cli_dbgmsg
    - asn1_expect_obj
    - memcmp
    linkageType: ''
    returnType: oid_alternative_t
    signature: "oid_alternative_t *asn1_expect_algo_multi(fmap_t *map, const void
      **asn1data, unsigned int *asn1len,\n                                                       const
      oid_alternative_t alts[], unsigned int alts_count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:440,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:441,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:442,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:443,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:444,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:445,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:446,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:447,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:448,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:449,1
    - Dst: asn1_expect_algo_multi
      Src: /src/clamav/libclamav/asn1.c:452,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - map
    - asn1data
    - asn1len
    - hashtype
    - hashsize
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - cli_crt_hashtype*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 461
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 461
    functionName: asn1_expect_hash_algo
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - lenof
    - cli_dbgmsg
    - asn1_expect_algo_multi
    linkageType: ''
    returnType: int
    signature: int asn1_expect_hash_algo(fmap_t *map, const void **asn1data, unsigned
      int *asn1len, cli_crt_hashtype *hashtype, unsigned int *hashsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:469,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:472,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:475,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:478,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:481,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:484,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:487,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:490,1
    - Dst: asn1_expect_algo_multi
      Src: /src/clamav/libclamav/asn1.c:493,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - map
    - asn1data
    - asn1len
    - hashtype
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - cli_crt_hashtype*
    constantsTouched: []
    func_position:
      end: 501
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 501
    functionName: asn1_expect_rsa
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - lenof
    - cli_dbgmsg
    - asn1_expect_algo_multi
    linkageType: ''
    returnType: int
    signature: int asn1_expect_rsa(fmap_t *map, const void **asn1data, unsigned int
      *asn1len, cli_crt_hashtype *hashtype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:508,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:509,1
    - Dst: asn1_expect_algo_multi
      Src: /src/clamav/libclamav/asn1.c:512,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - map
    - asn1data
    - asn1len
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 519
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 519
    functionName: asn1_expect_list_member
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - lenof
    - cli_dbgmsg
    - asn1_expect_algo_multi
    linkageType: ''
    returnType: int
    signature: int asn1_expect_list_member(fmap_t *map, const void **asn1data, unsigned
      int *asn1len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 527
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 527
    functionName: asn1_getnum
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int asn1_getnum(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:546,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:550,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:551,1
    - Dst: memset
      Src: /src/clamav/libclamav/asn1.c:555,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:558,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:561,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:567,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:577,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:579,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:585,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:587,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:593,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:595,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:601,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:603,1
    - Dst: asn1_getnum
      Src: /src/clamav/libclamav/asn1.c:624,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:626,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:633,1
    - Dst: mktime
      Src: /src/clamav/libclamav/asn1.c:638,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 81
    argCount: 4
    argNames:
    - map
    - asn1data
    - size
    - tm
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - time_t*
    constantsTouched: []
    func_position:
      end: 641
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 641
    functionName: asn1_get_time
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - memset
    - fmap_need_ptr_once
    - mktime
    - cli_dbgmsg
    - asn1_getnum
    linkageType: ''
    returnType: int
    signature: int asn1_get_time(fmap_t *map, const void **asn1data, unsigned int
      *size, time_t *tm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:648,1
    - Dst: asn1_expect_algo
      Src: /src/clamav/libclamav/asn1.c:653,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:653,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:654,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:658,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:661,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:667,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:668,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:672,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:678,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:681,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:686,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:689,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:693,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:694,1
    - Dst: BN_bin2bn
      Src: /src/clamav/libclamav/asn1.c:698,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:701,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:704,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:708,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:711,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:712,1
    - Dst: BN_bin2bn
      Src: /src/clamav/libclamav/asn1.c:716,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 4
    argNames:
    - map
    - asn1data
    - size
    - x509
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 720
      start: 643
    functionDepth: 3
    functionLinenumber: 643
    functionLinenumberEnd: 720
    functionName: asn1_get_rsa_pubkey
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - asn1_expect_objtype
    - fmap_need_ptr_once
    - BN_bin2bn
    - cli_dbgmsg
    - lenof
    - asn1_expect_algo
    linkageType: ''
    returnType: int
    signature: int asn1_get_rsa_pubkey(fmap_t *map, const void **asn1data, unsigned
      int *size, cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_crt_init
      Src: /src/clamav/libclamav/asn1.c:744,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:745,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:749,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:750,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:760,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:761,1
    - Dst: asn1_get_obj
      Src: /src/clamav/libclamav/asn1.c:773,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:774,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:781,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:782,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:786,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:791,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:792,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:810,1
    - Dst: map_raw
      Src: /src/clamav/libclamav/asn1.c:814,1
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:816,1
    - Dst: asn1_expect_rsa
      Src: /src/clamav/libclamav/asn1.c:819,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:820,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:824,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:825,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:831,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:832,1
    - Dst: asn1_get_time
      Src: /src/clamav/libclamav/asn1.c:838,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:839,1
    - Dst: asn1_get_time
      Src: /src/clamav/libclamav/asn1.c:842,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:843,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:847,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:851,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:855,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:856,1
    - Dst: map_raw
      Src: /src/clamav/libclamav/asn1.c:859,1
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:861,1
    - Dst: asn1_get_rsa_pubkey
      Src: /src/clamav/libclamav/asn1.c:863,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:864,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:869,1
    - Dst: asn1_get_obj
      Src: /src/clamav/libclamav/asn1.c:875,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:880,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:889,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:894,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:899,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:904,1
    - Dst: asn1_get_obj
      Src: /src/clamav/libclamav/asn1.c:908,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:915,1
    - Dst: asn1_get_obj
      Src: /src/clamav/libclamav/asn1.c:919,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:925,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:930,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:937,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:941,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:947,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:951,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:956,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:966,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:970,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:975,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:981,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:987,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:991,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:993,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:995,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:996,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1000,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1007,1
    - Dst: asn1_get_obj
      Src: /src/clamav/libclamav/asn1.c:1014,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1021,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1026,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1074,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1079,1
    - Dst: map_raw
      Src: /src/clamav/libclamav/asn1.c:1082,1
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:1084,1
    - Dst: asn1_expect_rsa
      Src: /src/clamav/libclamav/asn1.c:1087,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1091,1
    - Dst: crtmgr_lookup
      Src: /src/clamav/libclamav/asn1.c:1096,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1097,1
    - Dst: cli_crt_clear
      Src: /src/clamav/libclamav/asn1.c:1098,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1102,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1103,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1107,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1110,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1111,1
    - Dst: BN_bin2bn
      Src: /src/clamav/libclamav/asn1.c:1115,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1119,1
    - Dst: map_hash
      Src: /src/clamav/libclamav/asn1.c:1123,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1124,1
    - Dst: crtmgr_add
      Src: /src/clamav/libclamav/asn1.c:1128,1
    - Dst: cli_crt_clear
      Src: /src/clamav/libclamav/asn1.c:1130,1
    - Dst: cli_crt_clear
      Src: /src/clamav/libclamav/asn1.c:1133,1
    CyclomaticComplexity: 152
    EdgeCount: 152
    ICount: 310
    argCount: 4
    argNames:
    - map
    - asn1data
    - size
    - crts
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - crtmgr*
    constantsTouched: []
    func_position:
      end: 1135
      start: 732
    functionDepth: 4
    functionLinenumber: 732
    functionLinenumberEnd: 1135
    functionName: asn1_get_x509
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - asn1_expect_objtype
    - asn1_get_time
    - fmap_need_ptr_once
    - cli_crt_clear
    - BN_bin2bn
    - cli_crt_init
    - map_raw
    - asn1_expect_rsa
    - asn1_get_rsa_pubkey
    - map_hash
    - cli_dbgmsg
    - map_sha1
    - asn1_expect_obj
    - asn1_get_obj
    - memcmp
    - crtmgr_lookup
    - crtmgr_add
    linkageType: ''
    returnType: int
    signature: int asn1_get_x509(fmap_t *map, const void **asn1data, unsigned int
      *size, crtmgr *crts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1155,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1161,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1162,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1167,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1171,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1172,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1178,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1178,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1179,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1185,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1189,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1190,1
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:1194,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1195,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1200,1
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:1205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1211,1
    - Dst: asn1_expect_hash_algo
      Src: /src/clamav/libclamav/asn1.c:1215,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1216,1
    - Dst: map_hash
      Src: /src/clamav/libclamav/asn1.c:1220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1221,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1226,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1227,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1232,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1241,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1245,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1246,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1250,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1253,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1253,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1254,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1258,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1258,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1260,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1260,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1262,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1262,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1267,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1272,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1278,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1287,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1288,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1294,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1294,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1302,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1306,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1310,1
    - Dst: asn1_get_time
      Src: /src/clamav/libclamav/asn1.c:1315,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1316,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1321,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1335,1
    - Dst: asn1_expect_rsa
      Src: /src/clamav/libclamav/asn1.c:1344,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1345,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1350,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1354,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1355,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1359,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1363,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1366,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1367,1
    - Dst: get_hash_ctx
      Src: /src/clamav/libclamav/asn1.c:1371,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/asn1.c:1375,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/asn1.c:1376,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/asn1.c:1377,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1379,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1380,1
    - Dst: crtmgr_verify_pkcs7
      Src: /src/clamav/libclamav/asn1.c:1383,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1384,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1388,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 202
    argCount: 8
    argNames:
    - map
    - asn1data
    - size
    - cmgr
    - message
    - message_size
    - not_before
    - not_after
    argTypes:
    - fmap_t*
    - void**
    - unsigned int*
    - crtmgr*
    - uint8_t*
    - unsigned int
    - time_t
    - time_t
    constantsTouched: []
    func_position:
      end: 1395
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1395
    functionName: asn1_parse_countersignature
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - asn1_expect_objtype
    - asn1_get_time
    - fmap_need_ptr_once
    - asn1_expect_hash_algo
    - asn1_expect_rsa
    - map_hash
    - cli_dbgmsg
    - map_sha1
    - asn1_expect_obj
    - memcmp
    - get_hash_ctx
    - cl_update_hash
    - crtmgr_verify_pkcs7
    - lenof
    - cl_finish_hash
    linkageType: ''
    returnType: int
    signature: int asn1_parse_countersignature(fmap_t *map, const void **asn1data,
      unsigned int *size, crtmgr *cmgr, const uint8_t *message, const unsigned int
      message_size, time_t not_before, time_t not_after)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1416,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/asn1.c:1419,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1420,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1424,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1425,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1435,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1435,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1436,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1439,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1440,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1444,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1448,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1449,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1453,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1458,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1459,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1463,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1464,1
    - Dst: asn1_expect_hash_algo
      Src: /src/clamav/libclamav/asn1.c:1472,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1473,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1477,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1484,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1493,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1493,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1494,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1494,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1495,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1499,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1500,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1504,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1508,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1509,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1513,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1538,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1539,1
    - Dst: crtmgr_init
      Src: /src/clamav/libclamav/asn1.c:1546,1
    - Dst: asn1_get_x509
      Src: /src/clamav/libclamav/asn1.c:1548,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1553,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:1557,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1558,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1563,1
    - Dst: BN_bn2hex
      Src: /src/clamav/libclamav/asn1.c:1571,1
    - Dst: BN_bn2hex
      Src: /src/clamav/libclamav/asn1.c:1572,1
    - Dst: memset
      Src: /src/clamav/libclamav/asn1.c:1573,1
    - Dst: memset
      Src: /src/clamav/libclamav/asn1.c:1574,1
    - Dst: memset
      Src: /src/clamav/libclamav/asn1.c:1575,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:1577,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:1579,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:1581,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:1583,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:1584,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:1585,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1593,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1594,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1595,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1596,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1597,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1598,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1599,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1600,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1601,1
    - Dst: OPENSSL_free
      Src: /src/clamav/libclamav/asn1.c:1604,1
    - Dst: OPENSSL_free
      Src: /src/clamav/libclamav/asn1.c:1605,1
    - Dst: crtmgr_block_list_lookup
      Src: /src/clamav/libclamav/asn1.c:1629,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1631,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/asn1.c:1633,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:1635,1
    - Dst: crtmgr_trust_list_lookup
      Src: /src/clamav/libclamav/asn1.c:1655,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1657,1
    - Dst: strdup
      Src: /src/clamav/libclamav/asn1.c:1660,1
    - Dst: crtmgr_add
      Src: /src/clamav/libclamav/asn1.c:1662,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1663,1
    - Dst: crtmgr_del
      Src: /src/clamav/libclamav/asn1.c:1666,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:1674,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:1679,1
    - Dst: crtmgr_trust_list_lookup
      Src: /src/clamav/libclamav/asn1.c:1695,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1697,1
    - Dst: crtmgr_del
      Src: /src/clamav/libclamav/asn1.c:1698,1
    - Dst: crtmgr_verify_crt
      Src: /src/clamav/libclamav/asn1.c:1705,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1709,1
    - Dst: crtmgr_add
      Src: /src/clamav/libclamav/asn1.c:1718,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1719,1
    - Dst: crtmgr_del
      Src: /src/clamav/libclamav/asn1.c:1722,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:1736,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1740,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:1741,1
    - Dst: asn1_get_obj
      Src: /src/clamav/libclamav/asn1.c:1746,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1747,1
    - Dst: asn1_get_obj
      Src: /src/clamav/libclamav/asn1.c:1750,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1751,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1759,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1763,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1764,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1768,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1772,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1773,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1776,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1777,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1783,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1784,1
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:1813,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1814,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1818,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1819,1
    - Dst: map_sha1
      Src: /src/clamav/libclamav/asn1.c:1825,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1826,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1830,1
    - Dst: asn1_expect_hash_algo
      Src: /src/clamav/libclamav/asn1.c:1835,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1836,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1842,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1849,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1854,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1864,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1865,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1869,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1870,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1874,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1876,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1876,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1877,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1881,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1881,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1883,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1883,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1887,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1888,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1893,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1899,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1906,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1906,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:1907,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1907,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1909,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1915,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1916,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1921,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1925,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1926,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/asn1.c:1930,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1934,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1942,1
    - Dst: asn1_expect_algo
      Src: /src/clamav/libclamav/asn1.c:1946,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:1946,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1947,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:1951,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1952,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1958,1
    - Dst: map_hash
      Src: /src/clamav/libclamav/asn1.c:1962,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1963,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:1967,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1968,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1972,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1973,1
    - Dst: get_hash_ctx
      Src: /src/clamav/libclamav/asn1.c:1977,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/asn1.c:1981,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/asn1.c:1982,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/asn1.c:1983,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:1985,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1986,1
    - Dst: crtmgr_verify_pkcs7
      Src: /src/clamav/libclamav/asn1.c:1991,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1992,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:1999,1
    - Dst: time
      Src: /src/clamav/libclamav/asn1.c:2011,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2014,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2019,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2024,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2025,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2030,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2041,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2042,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2046,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2047,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2059,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2060,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2061,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:2065,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2066,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2071,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:2072,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2072,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2076,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:2077,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2077,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2081,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:2082,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2082,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2090,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2091,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2096,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2102,1
    - Dst: asn1_parse_countersignature
      Src: /src/clamav/libclamav/asn1.c:2109,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2119,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2126,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2133,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2141,1
    - Dst: time
      Src: /src/clamav/libclamav/asn1.c:2147,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2150,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2155,1
    - Dst: OPENSSL_free
      Src: /src/clamav/libclamav/asn1.c:2163,1
    - Dst: OPENSSL_free
      Src: /src/clamav/libclamav/asn1.c:2164,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2166,1
    CyclomaticComplexity: 217
    EdgeCount: 217
    ICount: 512
    argCount: 9
    argNames:
    - engine
    - map
    - offset
    - size
    - cmgr
    - embedded
    - hashes
    - hashes_size
    - ctx
    argTypes:
    - struct cl_engine*
    - fmap_t*
    - size_t
    - unsigned int
    - crtmgr*
    - int
    - void**
    - unsigned int*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2169
      start: 1397
    functionDepth: 5
    functionLinenumber: 1397
    functionLinenumberEnd: 2169
    functionName: asn1_parse_mscat
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - fmap_need_ptr_once
    - crtmgr_init
    - BN_bn2hex
    - map_sha1
    - lenof
    - memcmp
    - sprintf
    - asn1_parse_countersignature
    - fmap_need_off_once
    - map_hash
    - cli_dbgmsg
    - OPENSSL_free
    - time
    - crtmgr_del
    - memset
    - asn1_expect_objtype
    - cli_append_virus
    - asn1_expect_hash_algo
    - crtmgr_trust_list_lookup
    - crtmgr_block_list_lookup
    - asn1_expect_obj
    - asn1_get_obj
    - get_hash_ctx
    - cl_update_hash
    - crtmgr_verify_pkcs7
    - crtmgr_add
    - crtmgr_verify_crt
    - asn1_expect_algo
    - asn1_get_x509
    - strdup
    - memcpy
    - crtmgr_free
    - cl_finish_hash
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t asn1_parse_mscat(struct cl_engine *engine, fmap_t *map,
      size_t offset, unsigned int size, crtmgr *cmgr, int embedded, const void **hashes,
      unsigned int *hashes_size, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_parse_mscat
      Src: /src/clamav/libclamav/asn1.c:2185,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2188,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:2190,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2190,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2193,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2196,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2198,1
    - Dst: asn1_expect_list_member
      Src: /src/clamav/libclamav/asn1.c:2201,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2203,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2211,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2213,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2215,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2218,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2228,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2232,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2234,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:2237,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2237,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2238,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:2241,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2241,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2244,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2247,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2251,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2254,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2258,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2261,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2264,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:2267,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2268,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:2271,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2271,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/asn1.c:2273,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2276,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2280,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2283,1
    - Dst: asn1_expect_hash_algo
      Src: /src/clamav/libclamav/asn1.c:2287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2288,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2298,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2302,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2309,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/asn1.c:2312,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2313,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:2320,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2321,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/asn1.c:2324,1
    - Dst: hm_addhash_bin
      Src: /src/clamav/libclamav/asn1.c:2336,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/asn1.c:2337,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 129
    argCount: 2
    argNames:
    - map
    - engine
    argTypes:
    - fmap_t*
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 2344
      start: 2171
    functionDepth: 6
    functionLinenumber: 2171
    functionLinenumberEnd: 2344
    functionName: asn1_load_mscat
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - hm_addhash_bin
    - asn1_expect_list_member
    - asn1_expect_objtype
    - cli_warnmsg
    - fmap_need_ptr_once
    - asn1_expect_hash_algo
    - memcmp
    - MPOOL_CALLOC
    - cli_dbgmsg
    - asn1_expect_obj
    - asn1_parse_mscat
    - lenof
    - sprintf
    linkageType: ''
    returnType: int
    signature: int asn1_load_mscat(fmap_t *map, struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2367,1
    - Dst: crtmgr_init
      Src: /src/clamav/libclamav/asn1.c:2368,1
    - Dst: crtmgr_add_roots
      Src: /src/clamav/libclamav/asn1.c:2370,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:2371,1
    - Dst: asn1_parse_mscat
      Src: /src/clamav/libclamav/asn1.c:2374,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/asn1.c:2375,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2379,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2380,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:2383,1
    - Dst: lenof
      Src: /src/clamav/libclamav/asn1.c:2383,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2384,1
    - Dst: asn1_expect_objtype
      Src: /src/clamav/libclamav/asn1.c:2392,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2393,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2397,1
    - Dst: asn1_expect_hash_algo
      Src: /src/clamav/libclamav/asn1.c:2401,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2402,1
    - Dst: get_hash_ctx
      Src: /src/clamav/libclamav/asn1.c:2406,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/asn1.c:2417,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/asn1.c:2421,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/asn1.c:2424,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/asn1.c:2429,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2430,1
    - Dst: asn1_expect_obj
      Src: /src/clamav/libclamav/asn1.c:2433,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2434,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2438,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/asn1.c:2442,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 7
    argNames:
    - engine
    - map
    - offset
    - size
    - regions
    - nregions
    - ctx
    argTypes:
    - struct cl_engine*
    - fmap_t*
    - size_t
    - unsigned int
    - struct cli_mapped_region*
    - uint32_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2444
      start: 2354
    functionDepth: 6
    functionLinenumber: 2354
    functionLinenumberEnd: 2444
    functionName: asn1_check_mscat
    functionSourceFile: /src/clamav/libclamav/asn1.c
    functionUses: 0
    functionsReached:
    - asn1_expect_objtype
    - crtmgr_add_roots
    - asn1_expect_hash_algo
    - fmap_need_off_once
    - sprintf
    - crtmgr_init
    - cli_dbgmsg
    - asn1_expect_obj
    - asn1_parse_mscat
    - lenof
    - get_hash_ctx
    - crtmgr_free
    - cl_update_hash
    - cl_finish_hash
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t asn1_check_mscat(struct cl_engine *engine, fmap_t *map,
      size_t offset, unsigned int size, struct cli_mapped_region *regions, uint32_t
      nregions, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:66,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:66,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:66,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:78,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - vaddr
    - ph
    - phnum
    - conv
    - err
    argTypes:
    - uint32_t
    - struct elf_program_hdr32*
    - uint16_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: cli_rawaddr32
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - EC32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_rawaddr32(uint32_t vaddr, struct elf_program_hdr32 *ph,
      uint16_t phnum, uint8_t conv, uint8_t *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:86,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:86,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:86,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:98,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - vaddr
    - ph
    - phnum
    - conv
    - err
    argTypes:
    - uint64_t
    - struct elf_program_hdr64*
    - uint16_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: cli_rawaddr64
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - EC64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cli_rawaddr64(uint64_t vaddr, struct elf_program_hdr64 *ph,
      uint16_t phnum, uint8_t conv, uint8_t *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/elf.c:108,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:110,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/elf.c:114,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:115,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:125,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:129,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:130,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:140,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:144,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:150,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:154,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:163,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:164,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:165,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/elf.c:169,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:171,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:176,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:177,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:178,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:179,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:180,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:181,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:182,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:183,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:184,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:185,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:190,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:191,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:192,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:193,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:194,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:195,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:196,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:197,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:198,1
    - Dst: EC16
      Src: /src/clamav/libclamav/elf.c:199,1
    - Dst: memset
      Src: /src/clamav/libclamav/elf.c:202,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 78
    argCount: 5
    argNames:
    - ctx
    - map
    - file_hdr
    - do_convert
    - is64
    argTypes:
    - cli_ctx*
    - fmap_t*
    - union elf_file_hdr*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 206
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 206
    functionName: cli_elf_fileheader
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - memset
    - EC16
    - cli_append_potentially_unwanted
    - EC32
    - fmap_readn
    - cli_dbgmsg
    - EC64
    - memcmp
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_elf_fileheader(cli_ctx *ctx, fmap_t *map, union elf_file_hdr
      *file_hdr,\n                                     uint8_t *do_convert, uint8_t
      *is64)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:222,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:223,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:234,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:235,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:243,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/elf.c:247,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/elf.c:249,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:253,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/elf.c:259,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:264,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:266,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:268,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:276,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:277,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:277,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:278,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:279,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:279,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:280,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:280,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:281,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:281,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:282,1
    - Dst: cli_rawaddr32
      Src: /src/clamav/libclamav/elf.c:286,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:289,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:290,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:296,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:297,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 5
    argNames:
    - ctx
    - map
    - elfinfo
    - file_hdr
    - conv
    argTypes:
    - cli_ctx*
    - fmap_t*
    - struct cli_exe_info*
    - struct elf_file_hdr32*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 306
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 306
    functionName: cli_elf_ph32
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    - cli_rawaddr32
    - EC32
    - fmap_readn
    - cli_dbgmsg
    - free
    - cli_max_calloc
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: "int cli_elf_ph32(cli_ctx *ctx, fmap_t *map, struct cli_exe_info *elfinfo,\n
      \                       struct elf_file_hdr32 *file_hdr, uint8_t conv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:320,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:322,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:323,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:334,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:335,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:343,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/elf.c:347,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/elf.c:349,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:353,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/elf.c:359,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:364,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:366,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:368,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:369,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:376,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:377,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:377,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:378,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:378,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:379,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:379,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:380,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:380,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:381,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:381,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:382,1
    - Dst: cli_rawaddr64
      Src: /src/clamav/libclamav/elf.c:386,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:387,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:389,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:390,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:396,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:397,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 5
    argNames:
    - ctx
    - map
    - elfinfo
    - file_hdr
    - conv
    argTypes:
    - cli_ctx*
    - fmap_t*
    - struct cli_exe_info*
    - struct elf_file_hdr64*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 406
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 406
    functionName: cli_elf_ph64
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    - EC32
    - cli_rawaddr64
    - fmap_readn
    - cli_dbgmsg
    - EC64
    - free
    - cli_max_calloc
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_elf_ph64(cli_ctx *ctx, fmap_t *map, struct cli_exe_info
      *elfinfo,\n                               struct elf_file_hdr64 *file_hdr, uint8_t
      conv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:417,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:419,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:422,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:432,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:433,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:445,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/elf.c:448,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:450,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/elf.c:456,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/elf.c:458,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:462,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/elf.c:470,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:473,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:475,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:476,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:485,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:486,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:487,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:490,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:491,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:491,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:492,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:492,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:494,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:495,1
    - Dst: cli_elf_sectionlog
      Src: /src/clamav/libclamav/elf.c:496,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:498,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:502,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 5
    argNames:
    - ctx
    - map
    - elfinfo
    - file_hdr
    - conv
    argTypes:
    - cli_ctx*
    - fmap_t*
    - struct cli_exe_info*
    - struct elf_file_hdr32*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 504
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 504
    functionName: cli_elf_sh32
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - cli_elf_sectionlog
    - cli_append_potentially_unwanted
    - EC32
    - fmap_readn
    - cli_dbgmsg
    - free
    - cli_max_calloc
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: "int cli_elf_sh32(cli_ctx *ctx, fmap_t *map, struct cli_exe_info *elfinfo,\n
      \                       struct elf_file_hdr32 *file_hdr, uint8_t conv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:516,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:518,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:521,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:531,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:532,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:544,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/elf.c:547,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:549,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/elf.c:555,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/elf.c:557,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:561,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/elf.c:569,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:570,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:572,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:574,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/elf.c:575,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:584,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:585,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:586,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:589,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:590,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:590,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:591,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:591,1
    - Dst: EC32
      Src: /src/clamav/libclamav/elf.c:593,1
    - Dst: EC64
      Src: /src/clamav/libclamav/elf.c:594,1
    - Dst: cli_elf_sectionlog
      Src: /src/clamav/libclamav/elf.c:595,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:597,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:601,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 5
    argNames:
    - ctx
    - map
    - elfinfo
    - file_hdr
    - conv
    argTypes:
    - cli_ctx*
    - fmap_t*
    - struct cli_exe_info*
    - struct elf_file_hdr64*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 603
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 603
    functionName: cli_elf_sh64
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - cli_elf_sectionlog
    - cli_append_potentially_unwanted
    - EC32
    - fmap_readn
    - cli_dbgmsg
    - EC64
    - free
    - cli_max_calloc
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: "int cli_elf_sh64(cli_ctx *ctx, fmap_t *map, struct cli_exe_info *elfinfo,\n
      \                       struct elf_file_hdr64 *file_hdr, uint8_t conv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:610,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:613,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:616,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:619,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:622,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:625,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:628,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:631,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:634,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:637,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:640,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:643,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:646,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:649,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:652,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:655,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:658,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:661,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:665,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:668,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:671,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - sh_type
    - sh_flags
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 672
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 672
    functionName: cli_elf_sectionlog
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 2
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void cli_elf_sectionlog(uint32_t sh_type, uint32_t sh_flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:682,1
    - Dst: cli_elf_fileheader
      Src: /src/clamav/libclamav/elf.c:685,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:695,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:698,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:701,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:704,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:707,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:710,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:716,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:719,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:722,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:725,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:728,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:731,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:734,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:737,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:740,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:743,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:746,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:749,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:752,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:758,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:761,1
    - Dst: cli_elf_ph64
      Src: /src/clamav/libclamav/elf.c:766,1
    - Dst: cli_elf_ph32
      Src: /src/clamav/libclamav/elf.c:768,1
    - Dst: cli_elf_sh64
      Src: /src/clamav/libclamav/elf.c:778,1
    - Dst: cli_elf_sh32
      Src: /src/clamav/libclamav/elf.c:780,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 100
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 789
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 789
    functionName: cli_scanelf
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - cli_elf_ph32
    - cli_dbgmsg
    - cli_elf_sh32
    - cli_elf_sh64
    - cli_elf_fileheader
    - cli_elf_ph64
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanelf(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:800,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:805,1
    - Dst: cli_elf_fileheader
      Src: /src/clamav/libclamav/elf.c:808,1
    - Dst: cli_elf_ph64
      Src: /src/clamav/libclamav/elf.c:815,1
    - Dst: cli_elf_ph32
      Src: /src/clamav/libclamav/elf.c:817,1
    - Dst: cli_elf_sh64
      Src: /src/clamav/libclamav/elf.c:825,1
    - Dst: cli_elf_sh32
      Src: /src/clamav/libclamav/elf.c:827,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - elfinfo
    argTypes:
    - cli_ctx*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 836
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 836
    functionName: cli_elfheader
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - cli_elf_ph32
    - cli_dbgmsg
    - cli_elf_sh32
    - cli_elf_sh64
    - cli_elf_fileheader
    - cli_elf_ph64
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_elfheader(cli_ctx *ctx, struct cli_exe_info *elfinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/libclamav/elf.c:849,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/elf.c:851,1
    - Dst: cli_bytecode_context_setctx
      Src: /src/clamav/libclamav/elf.c:856,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:858,1
    - Dst: cli_bytecode_runhook
      Src: /src/clamav/libclamav/elf.c:859,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:860,1
    - Dst: cli_bytecode_context_getresult_file
      Src: /src/clamav/libclamav/elf.c:863,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:865,1
    - Dst: lseek
      Src: /src/clamav/libclamav/elf.c:867,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/elf.c:869,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/elf.c:870,1
    - Dst: close
      Src: /src/clamav/libclamav/elf.c:877,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/elf.c:881,1
    - Dst: free
      Src: /src/clamav/libclamav/elf.c:883,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/elf.c:887,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 891
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 891
    functionName: cli_unpackelf
    functionSourceFile: /src/clamav/libclamav/elf.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_magic_scan_desc
    - close
    - cli_bytecode_context_destroy
    - cli_bytecode_context_setctx
    - cli_bytecode_runhook
    - cli_unlink
    - cli_dbgmsg
    - cli_bytecode_context_getresult_file
    - cli_bytecode_context_alloc
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unpackelf(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 77
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 77
    functionName: cctld_hash
    functionSourceFile: /src/clamav/libclamav/iana_cctld.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cctld_hash (const char *str, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/iana_cctld.h:500,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 505
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 505
    functionName: in_cctld_set
    functionSourceFile: /src/clamav/libclamav/iana_cctld.h
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: __GNUC_STDC_INLINE__
    signature: '__GNUC_STDC_INLINE__ *

      in_cctld_set (const char *str, unsigned int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:74,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/stats.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - md5
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: get_hash
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - calloc
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *get_hash(unsigned char *md5)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/stats.c:91,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:93,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/stats.c:98,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - names
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: get_sample_names
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - strlen
    - calloc
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *get_sample_names(char **names)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hash
      Src: /src/clamav/libclamav/stats.c:111,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:115,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:116,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:117,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:119,1
    - Dst: get_sample_names
      Src: /src/clamav/libclamav/stats.c:121,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:123,1
    - Dst: get_hash
      Src: /src/clamav/libclamav/stats.c:127,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:129,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:130,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - sample
    argTypes:
    - cli_flagged_sample_t*
    constantsTouched: []
    func_position:
      end: 137
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 137
    functionName: print_sample
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - get_sample_names
    - free
    - get_hash
    linkageType: ''
    returnType: void
    signature: void print_sample(cli_flagged_sample_t *sample)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_intel_t*::engine::cb_stats_get_size
      Src: /src/clamav/libclamav/stats.c:160,1
    - Dst: clamav_stats_get_size
      Src: /src/clamav/libclamav/stats.c:162,1
    - Dst: cli_intel_t*::engine::cb_stats_get_num
      Src: /src/clamav/libclamav/stats.c:166,1
    - Dst: clamav_stats_get_num
      Src: /src/clamav/libclamav/stats.c:168,1
    - Dst: cli_intel_t*::engine::cb_stats_submit
      Src: /src/clamav/libclamav/stats.c:173,1
    - Dst: cli_intel_t*::engine::cb_stats_flush
      Src: /src/clamav/libclamav/stats.c:176,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/stats.c:183,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:185,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:185,1
    - Dst: find_sample
      Src: /src/clamav/libclamav/stats.c:190,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:193,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:197,1
    - Dst: realloc
      Src: /src/clamav/libclamav/stats.c:209,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:211,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:212,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:222,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:224,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:232,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:234,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:235,1
    - Dst: realloc
      Src: /src/clamav/libclamav/stats.c:242,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:244,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:245,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/stats.c:255,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:261,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:263,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/stats.c:265,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:268,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/stats.c:279,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:281,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:281,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 114
    argCount: 5
    argNames:
    - virname
    - md5
    - size
    - sections
    - cbdata
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - stats_section_t*
    - void*
    constantsTouched: []
    func_position:
      end: 285
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 285
    functionName: clamav_stats_add_sample
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - cli_intel_t*::engine::cb_stats_get_num
    - cli_intel_t*::engine::cb_stats_get_size
    - cli_intel_t*::engine::cb_stats_flush
    - calloc
    - clamav_stats_get_num
    - cli_warnmsg
    - strerror
    - clamav_stats_get_size
    - realloc
    - strdup
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - free
    - memcpy
    - cli_intel_t*::engine::cb_stats_submit
    - find_sample
    linkageType: ''
    returnType: void
    signature: void clamav_stats_add_sample(const char *virname, const unsigned char
      *md5, size_t size, stats_section_t *sections, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/stats.c:299,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:301,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:301,1
    - Dst: free_sample
      Src: /src/clamav/libclamav/stats.c:309,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:315,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/stats.c:320,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:322,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - engine
    - cbdata
    argTypes:
    - struct cl_engine*
    - void*
    constantsTouched: []
    func_position:
      end: 324
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 324
    functionName: clamav_stats_flush
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - strerror
    - cli_warnmsg
    - pthread_mutex_unlock
    - free_sample
    - pthread_mutex_lock
    - free
    linkageType: ''
    returnType: void
    signature: void clamav_stats_flush(struct cl_engine *engine, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:332,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:334,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:338,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:339,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sample
    argTypes:
    - cli_flagged_sample_t*
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: free_sample
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_sample(cli_flagged_sample_t *sample)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct cl_engine*::cb_stats_flush
      Src: /src/clamav/libclamav/stats.c:362,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/stats.c:367,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/stats.c:370,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:372,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:372,1
    - Dst: cli_intel_t*::engine::cb_stats_flush
      Src: /src/clamav/libclamav/stats.c:375,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/stats.c:382,1
    - Dst: export_stats_to_json
      Src: /src/clamav/libclamav/stats.c:386,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/stats.c:389,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:391,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:391,1
    - Dst: print_sample
      Src: /src/clamav/libclamav/stats.c:397,1
    - Dst: free_sample
      Src: /src/clamav/libclamav/stats.c:401,1
    - Dst: submit_post
      Src: /src/clamav/libclamav/stats.c:405,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:406,1
    - Dst: free
      Src: /src/clamav/libclamav/stats.c:410,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/stats.c:414,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - engine
    - cbdata
    argTypes:
    - struct cl_engine*
    - void*
    constantsTouched: []
    func_position:
      end: 415
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 415
    functionName: clamav_stats_submit
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - export_stats_to_json
    - cli_intel_t*::engine::cb_stats_flush
    - strerror
    - cli_warnmsg
    - pthread_mutex_unlock
    - submit_post
    - free_sample
    - struct cl_engine*::cb_stats_flush
    - cli_dbgmsg
    - pthread_mutex_lock
    - memcpy
    - print_sample
    - free
    linkageType: ''
    returnType: void
    signature: void clamav_stats_submit(struct cl_engine *engine, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/stats.c:428,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:430,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:430,1
    - Dst: find_sample
      Src: /src/clamav/libclamav/stats.c:435,1
    - Dst: free_sample
      Src: /src/clamav/libclamav/stats.c:443,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/stats.c:448,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:450,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - virname
    - md5
    - size
    - cbdata
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 453
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 453
    functionName: clamav_stats_remove_sample
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - strerror
    - cli_warnmsg
    - pthread_mutex_unlock
    - free_sample
    - pthread_mutex_lock
    - find_sample
    linkageType: ''
    returnType: void
    signature: void clamav_stats_remove_sample(const char *virname, const unsigned
      char *md5, size_t size, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/stats.c:466,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:468,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:468,1
    - Dst: find_sample
      Src: /src/clamav/libclamav/stats.c:473,1
    - Dst: cli_intel_t*::engine::cb_stats_remove_sample
      Src: /src/clamav/libclamav/stats.c:479,1
    - Dst: clamav_stats_remove_sample
      Src: /src/clamav/libclamav/stats.c:481,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/stats.c:490,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:492,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:492,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - virname
    - md5
    - size
    - cbdata
    argTypes:
    - char*
    - unsigned char*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 496
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 496
    functionName: clamav_stats_decrement_count
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - strerror
    - cli_warnmsg
    - pthread_mutex_unlock
    - cli_intel_t*::engine::cb_stats_remove_sample
    - clamav_stats_remove_sample
    - pthread_mutex_lock
    - find_sample
    linkageType: ''
    returnType: void
    signature: void clamav_stats_decrement_count(const char *virname, const unsigned
      char *md5, size_t size, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: clamav_stats_get_num
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t clamav_stats_get_num(void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/stats.c:524,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:526,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:526,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats.c:535,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/stats.c:541,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/stats.c:543,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats.c:543,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 548
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 548
    functionName: clamav_stats_get_size
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 1
    functionsReached:
    - strerror
    - cli_warnmsg
    - strlen
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: size_t
    signature: size_t clamav_stats_get_size(void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentHwProfile
      Src: /src/clamav/libclamav/stats.c:555,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:556,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: clamav_stats_get_hostid
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - GetCurrentHwProfile
    - strdup
    linkageType: ''
    returnType: char
    signature: char *clamav_stats_get_hostid(void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/clamav/libclamav/stats.c:566,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:568,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: clamav_stats_get_hostid
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - uname
    - strdup
    linkageType: ''
    returnType: char
    signature: char *clamav_stats_get_hostid(void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/stats.c:582,1
    - Dst: sysctlbyname
      Src: /src/clamav/libclamav/stats.c:590,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats.c:597,1
    - Dst: sysctlbyname
      Src: /src/clamav/libclamav/stats.c:598,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:599,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:604,1
    - Dst: internal_get_host_id
      Src: /src/clamav/libclamav/stats.c:606,1
    - Dst: strdup
      Src: /src/clamav/libclamav/stats.c:608,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 611
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 611
    functionName: clamav_stats_get_hostid
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached:
    - sysctlbyname
    - calloc
    - UNUSEDPARAM
    - strdup
    - internal_get_host_id
    linkageType: ''
    returnType: char
    signature: char *clamav_stats_get_hostid(void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/stats.c:625,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/stats.c:635,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/stats.c:647,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 5
    argNames:
    - intel
    - virname
    - md5
    - size
    - sections
    argTypes:
    - cli_intel_t*
    - char*
    - unsigned char*
    - size_t
    - stats_section_t*
    constantsTouched: []
    func_position:
      end: 652
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 652
    functionName: find_sample
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 3
    functionsReached:
    - memcmp
    - strcmp
    linkageType: ''
    returnType: cli_flagged_sample_t
    signature: cli_flagged_sample_t *find_sample(cli_intel_t *intel, const char *virname,
      const unsigned char *md5, size_t size, stats_section_t *sections)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_submit
    constantsTouched: []
    func_position:
      end: 657
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 657
    functionName: cl_engine_set_clcb_stats_submit
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_submit(struct cl_engine *engine, clcb_stats_submit
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - cbdata
    argTypes:
    - struct cl_engine*
    - void*
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: cl_engine_set_stats_set_cbdata
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_stats_set_cbdata(struct cl_engine *engine, void
      *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_add_sample
    constantsTouched: []
    func_position:
      end: 667
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: cl_engine_set_clcb_stats_add_sample
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_add_sample(struct cl_engine *engine,
      clcb_stats_add_sample callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_remove_sample
    constantsTouched: []
    func_position:
      end: 672
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 672
    functionName: cl_engine_set_clcb_stats_remove_sample
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_remove_sample(struct cl_engine *engine,
      clcb_stats_remove_sample callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_decrement_count
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 677
    functionName: cl_engine_set_clcb_stats_decrement_count
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_decrement_count(struct cl_engine *engine,
      clcb_stats_decrement_count callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_flush
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: cl_engine_set_clcb_stats_flush
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_flush(struct cl_engine *engine, clcb_stats_flush
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_get_num
    constantsTouched: []
    func_position:
      end: 687
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 687
    functionName: cl_engine_set_clcb_stats_get_num
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_get_num(struct cl_engine *engine, clcb_stats_get_num
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_get_size
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: cl_engine_set_clcb_stats_get_size
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_get_size(struct cl_engine *engine, clcb_stats_get_size
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_stats_get_hostid
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: cl_engine_set_clcb_stats_get_hostid
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_stats_get_hostid(struct cl_engine *engine,
      clcb_stats_get_hostid callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: cl_engine_stats_enable
    functionSourceFile: /src/clamav/libclamav/stats.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_stats_enable(struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:57,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/special.c:68,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:75,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/special.c:79,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:81,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:82,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:83,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:84,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:85,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:86,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:87,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:88,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:92,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:93,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:94,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:95,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:96,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:97,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:98,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:99,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/special.c:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 104
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 104
    functionName: cli_check_mydoom_log
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    - fmap_need_off_once
    - cli_dbgmsg
    - memcpy
    - memcmp
    - be32_to_host
    linkageType: ''
    returnType: int
    signature: int cli_check_mydoom_log(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/special.c:109,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/special.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - big_endian
    argTypes:
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: riff_endian_convert_32
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - be32_to_host
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t riff_endian_convert_32(uint32_t value, int big_endian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:123,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/special.c:127,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/special.c:132,1
    - Dst: riff_endian_convert_32
      Src: /src/clamav/libclamav/special.c:134,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:136,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:139,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:141,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:145,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:146,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:147,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:148,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/special.c:149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:150,1
    - Dst: riff_read_chunk
      Src: /src/clamav/libclamav/special.c:154,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - map
    - offset
    - big_endian
    - rec_level
    argTypes:
    - fmap_t*
    - off_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: riff_read_chunk
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 1
    functionsReached:
    - fmap_need_ptr_once
    - fmap_need_off_once
    - riff_endian_convert_32
    - cli_dbgmsg
    - memcpy
    - memcmp
    - riff_read_chunk
    linkageType: ''
    returnType: int
    signature: int riff_read_chunk(fmap_t *map, off_t *offset, int big_endian, int
      rec_level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:176,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/special.c:178,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:181,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:183,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/special.c:190,1
    - Dst: riff_read_chunk
      Src: /src/clamav/libclamav/special.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 202
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 202
    functionName: cli_check_riff_exploit
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 0
    functionsReached:
    - memcmp
    - riff_read_chunk
    - cli_dbgmsg
    - fmap_need_off_once
    linkageType: ''
    returnType: int
    signature: int cli_check_riff_exploit(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint16_t[]
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: swizz_j48
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int swizz_j48(const uint16_t n[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/clamav/libclamav/special.c:235,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/special.c:242,1
    - Dst: tolower
      Src: /src/clamav/libclamav/special.c:245,1
    - Dst: memset
      Src: /src/clamav/libclamav/special.c:250,1
    - Dst: memset
      Src: /src/clamav/libclamav/special.c:251,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:272,1
    - Dst: swizz_j48
      Src: /src/clamav/libclamav/special.c:278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:280,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:283,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 57
    argCount: 4
    argNames:
    - str
    - len
    - stats
    - blob
    argTypes:
    - unsigned char*
    - uint32_t
    - struct swizz_stats*
    - int
    constantsTouched: []
    func_position:
      end: 286
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 286
    functionName: cli_detect_swizz_str
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 0
    functionsReached:
    - tolower
    - swizz_j48
    - memset
    - isalnum
    - cli_dbgmsg
    - isdigit
    linkageType: ''
    returnType: void
    signature: void cli_detect_swizz_str(const unsigned char *str, uint32_t len, struct
      swizz_stats *stats, int blob)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 1
    argNames:
    - gn
    argTypes:
    - uint32_t[]
    constantsTouched: []
    func_position:
      end: 310
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 310
    functionName: swizz_j48_global
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int swizz_j48_global(const uint32_t gn[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:319,1
    - Dst: memset
      Src: /src/clamav/libclamav/special.c:322,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:333,1
    - Dst: cli_eprintf
      Src: /src/clamav/libclamav/special.c:338,1
    - Dst: swizz_j48_global
      Src: /src/clamav/libclamav/special.c:340,1
    - Dst: cli_eprintf
      Src: /src/clamav/libclamav/special.c:342,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:343,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/special.c:348,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct swizz_stats*
    constantsTouched: []
    func_position:
      end: 358
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 358
    functionName: cli_detect_swizz
    functionSourceFile: /src/clamav/libclamav/special.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_dbgmsg
    - swizz_j48_global
    - cli_eprintf
    linkageType: ''
    returnType: int
    signature: int cli_detect_swizz(struct swizz_stats *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regex_list_done
      Src: /src/clamav/libclamav/regex_list.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - struct regex_matcher*
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: fatal_error
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - regex_list_done
    linkageType: ''
    returnType: void
    signature: void fatal_error(struct regex_matcher *matcher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:83,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:86,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/regex_list.c:89,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - info
    - buffer
    - pos
    argTypes:
    - struct pre_fixup_info*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: get_char_at_pos_with_skip
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_dbgmsg
    - isalnum
    linkageType: ''
    returnType: char
    signature: char get_char_at_pos_with_skip(const struct pre_fixup_info *info, const
      char *buffer, size_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:106,1
    - Dst: get_char_at_pos_with_skip
      Src: /src/clamav/libclamav/regex_list.c:107,1
    - Dst: get_char_at_pos_with_skip
      Src: /src/clamav/libclamav/regex_list.c:110,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:114,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:115,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:124,1
    - Dst: memmove
      Src: /src/clamav/libclamav/regex_list.c:126,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:128,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:133,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 7
    argNames:
    - regex
    - pre_fixup
    - buffer
    - buffer_len
    - real_url
    - real_len
    - orig_real_url
    argTypes:
    - struct regex_list*
    - struct pre_fixup_info*
    - char*
    - size_t
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 135
    functionName: validate_subdomain
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - strlen
    - memmove
    - cli_dbgmsg
    - get_char_at_pos_with_skip
    linkageType: ''
    returnType: int
    signature: int validate_subdomain(const struct regex_list *regex, const struct
      pre_fixup_info *pre_fixup, const char *buffer, size_t buffer_len, char *real_url,
      size_t real_len, char *orig_real_url)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:166,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:172,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:178,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:188,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:196,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:197,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/regex_list.c:203,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:205,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/regex_list.c:209,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/regex_list.c:218,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:222,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/regex_list.c:224,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/regex_list.c:227,1
    - Dst: reverse_string
      Src: /src/clamav/libclamav/regex_list.c:231,1
    - Dst: filter_search
      Src: /src/clamav/libclamav/regex_list.c:233,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:235,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:236,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/libclamav/regex_list.c:243,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:244,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/regex_list.c:245,1
    - Dst: validate_subdomain
      Src: /src/clamav/libclamav/regex_list.c:262,1
    - Dst: cli_regexec
      Src: /src/clamav/libclamav/regex_list.c:264,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:272,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:275,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:277,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:279,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 101
    argCount: 7
    argNames:
    - matcher
    - real_url
    - display_url
    - pre_fixup
    - hostOnly
    - info
    - is_allow_list_lookup
    argTypes:
    - struct regex_matcher*
    - char*
    - char*
    - struct pre_fixup_info*
    - int
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 282
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 282
    functionName: regex_list_match
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 1
    functionsReached:
    - validate_subdomain
    - strlen
    - cli_ac_freedata
    - strncpy
    - cli_ac_scanbuff
    - cli_ac_initdata
    - cli_regexec
    - cli_max_malloc
    - cli_dbgmsg
    - free
    - reverse_string
    - filter_search
    - cli_safer_strdup
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t regex_list_match(struct regex_matcher *matcher, char *real_url,
      const char *display_url, const struct pre_fixup_info *pre_fixup, int hostOnly,
      const char **info, int is_allow_list_lookup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:294,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:302,1
    - Dst: memset
      Src: /src/clamav/libclamav/regex_list.c:308,1
    - Dst: cli_hashtab_init
      Src: /src/clamav/libclamav/regex_list.c:313,1
    - Dst: cli_ac_init
      Src: /src/clamav/libclamav/regex_list.c:319,1
    - Dst: cli_bm_init
      Src: /src/clamav/libclamav/regex_list.c:326,1
    - Dst: cli_bm_init
      Src: /src/clamav/libclamav/regex_list.c:329,1
    - Dst: filter_init
      Src: /src/clamav/libclamav/regex_list.c:332,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - matcher
    - dconf_prefiltering
    argTypes:
    - struct regex_matcher*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 336
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 336
    functionName: init_regex_list
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 1
    functionsReached:
    - memset
    - cli_errmsg
    - filter_init
    - cli_hashtab_init
    - cli_ac_init
    - cli_bm_init
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t init_regex_list(struct regex_matcher *matcher, uint8_t dconf_prefiltering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/clamav/libclamav/regex_list.c:344,1
    - Dst: strchr
      Src: /src/clamav/libclamav/regex_list.c:350,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex_list.c:357,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:359,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex_list.c:360,1
    - Dst: atoi
      Src: /src/clamav/libclamav/regex_list.c:363,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:364,1
    - Dst: atoi
      Src: /src/clamav/libclamav/regex_list.c:367,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/regex_list.c:369,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:370,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/regex_list.c:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 379
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 379
    functionName: functionality_level_check
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - strlen
    - cl_retflevel
    - strchr
    - cli_dbgmsg
    - strrchr
    - atoi
    - isdigit
    linkageType: ''
    returnType: int
    signature: int functionality_level_check(char *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:388,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:389,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/regex_list.c:394,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/regex_list.c:399,1
    - Dst: cli_hashset_init
      Src: /src/clamav/libclamav/regex_list.c:413,1
    - Dst: cli_hashset_contains
      Src: /src/clamav/libclamav/regex_list.c:419,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/regex_list.c:419,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/libclamav/regex_list.c:420,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:423,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/regex_list.c:428,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:430,1
    - Dst: cli_hashset_addkey
      Src: /src/clamav/libclamav/regex_list.c:435,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/regex_list.c:435,1
    - Dst: cli_bm_addpatt
      Src: /src/clamav/libclamav/regex_list.c:436,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:437,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/regex_list.c:446,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/regex_list.c:449,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/regex_list.c:451,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 4
    argNames:
    - matcher
    - pattern
    - fl
    - is_prefix
    argTypes:
    - struct regex_matcher*
    - char*
    - char
    - int
    constantsTouched: []
    func_position:
      end: 455
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 455
    functionName: add_hash
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - CLI_MPOOL_HEX2STR
    - cli_hashset_addkey
    - cli_readint32
    - cli_bm_addpatt
    - cli_hashset_contains
    - strlen
    - MPOOL_MALLOC
    - cli_bm_scanbuff
    - MPOOL_FREE
    - cli_dbgmsg
    - cli_hashset_init
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: int
    signature: int add_hash(struct regex_matcher *matcher, char *pattern, const char
      fl, int is_prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:465,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:472,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:476,1
    - Dst: init_regex_list
      Src: /src/clamav/libclamav/regex_list.c:478,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:480,1
    - Dst: fatal_error
      Src: /src/clamav/libclamav/regex_list.c:481,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/regex_list.c:506,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/regex_list.c:511,1
    - Dst: functionality_level_check
      Src: /src/clamav/libclamav/regex_list.c:519,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/regex_list.c:522,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:523,1
    - Dst: strchr
      Src: /src/clamav/libclamav/regex_list.c:528,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:530,1
    - Dst: fatal_error
      Src: /src/clamav/libclamav/regex_list.c:531,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:538,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:546,1
    - Dst: fatal_error
      Src: /src/clamav/libclamav/regex_list.c:547,1
    - Dst: regex_list_add_pattern
      Src: /src/clamav/libclamav/regex_list.c:553,1
    - Dst: add_static_pattern
      Src: /src/clamav/libclamav/regex_list.c:558,1
    - Dst: add_hash
      Src: /src/clamav/libclamav/regex_list.c:566,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:567,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:571,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 82
    argCount: 8
    argNames:
    - engine
    - matcher
    - fd
    - signo
    - options
    - is_allow_list_lookup
    - dbio
    - dconf_prefiltering
    argTypes:
    - struct cl_engine*
    - struct regex_matcher*
    - FILE*
    - unsigned int*
    - unsigned int
    - int
    - struct cli_dbio*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 583
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 583
    functionName: load_regex_matcher
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 1
    functionsReached:
    - cli_chomp
    - functionality_level_check
    - cli_dbgets
    - fatal_error
    - add_hash
    - strlen
    - strchr
    - init_regex_list
    - struct cl_engine*::cb_sigload
    - cli_dbgmsg
    - add_static_pattern
    - regex_list_add_pattern
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t load_regex_matcher(struct cl_engine *engine, struct regex_matcher
      *matcher, FILE *fd, unsigned int *signo, unsigned int options, int is_allow_list_lookup,
      struct cli_dbio *dbio, uint8_t dconf_prefiltering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:592,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_list.c:595,1
    - Dst: cli_hashtab_free
      Src: /src/clamav/libclamav/regex_list.c:596,1
    - Dst: cli_ac_buildtrie
      Src: /src/clamav/libclamav/regex_list.c:597,1
    - Dst: cli_hashset_destroy
      Src: /src/clamav/libclamav/regex_list.c:600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - struct regex_matcher*
    constantsTouched: []
    func_position:
      end: 603
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 603
    functionName: cli_build_regex_list
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 2
    functionsReached:
    - cli_hashtab_free
    - cli_dbgmsg
    - cli_ac_buildtrie
    - cli_hashset_destroy
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_build_regex_list(struct regex_matcher *matcher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:609,1
    - Dst: cli_ac_free
      Src: /src/clamav/libclamav/regex_list.c:615,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:622,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:623,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_list.c:626,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/regex_list.c:632,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/regex_list.c:633,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/regex_list.c:635,1
    - Dst: cli_hashtab_free
      Src: /src/clamav/libclamav/regex_list.c:637,1
    - Dst: cli_bm_free
      Src: /src/clamav/libclamav/regex_list.c:638,1
    - Dst: cli_bm_free
      Src: /src/clamav/libclamav/regex_list.c:639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - struct regex_matcher*
    constantsTouched: []
    func_position:
      end: 644
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 644
    functionName: regex_list_done
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 2
    functionsReached:
    - cli_hashtab_free
    - cli_errmsg
    - cli_bm_free
    - MPOOL_FREE
    - cli_regfree
    - cli_ac_free
    - free
    linkageType: ''
    returnType: void
    signature: void regex_list_done(struct regex_matcher *matcher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - struct regex_matcher*
    constantsTouched: []
    func_position:
      end: 656
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 656
    functionName: is_regex_ok
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 2
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int is_regex_ok(struct regex_matcher *matcher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:666,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:673,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:679,1
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/regex_list.c:684,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:686,1
    - Dst: length::length
      Src: /src/clamav/libclamav/regex_list.c:702,1
    - Dst: length::length
      Src: /src/clamav/libclamav/regex_list.c:703,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/regex_list.c:705,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/regex_list.c:705,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/regex_list.c:706,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:707,1
    - Dst: cli_ac_addpatt
      Src: /src/clamav/libclamav/regex_list.c:717,1
    - Dst: filter_add_static
      Src: /src/clamav/libclamav/regex_list.c:721,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:722,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/regex_list.c:731,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/regex_list.c:732,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/regex_list.c:732,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/regex_list.c:734,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 4
    argNames:
    - matcher
    - info
    - suffix
    - len
    argTypes:
    - struct regex_matcher*
    - struct regex_list*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 739
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 739
    functionName: add_newsuffix
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - pattern::pattern
    - length::length
    - MPOOL_MALLOC
    - filter_add_static
    - cli_ac_addpatt
    - MPOOL_FREE
    - MPOOL_CALLOC::MPOOL_CALLOC
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t add_newsuffix(struct regex_matcher *matcher, struct regex_list
      *info, const char *suffix, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ht
    - regex
    argTypes:
    - struct regex_list_ht*
    - struct regex_list*
    constantsTouched: []
    func_position:
      end: 752
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 752
    functionName: list_add_tail
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add_tail(struct regex_list_ht *ht, struct regex_list *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:762,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:767,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:772,1
    - Dst: CLI_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/regex_list.c:777,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:778,1
    - Dst: CLI_SAFER_STRDUP_OR_GOTO_DONE
      Src: /src/clamav/libclamav/regex_list.c:784,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:785,1
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/regex_list.c:790,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:796,1
    - Dst: list_add_tail
      Src: /src/clamav/libclamav/regex_list.c:800,1
    - Dst: cli_hashtab_insert
      Src: /src/clamav/libclamav/regex_list.c:804,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/regex_list.c:805,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:807,1
    - Dst: add_newsuffix
      Src: /src/clamav/libclamav/regex_list.c:815,1
    - Dst: cli_hashtab_delete
      Src: /src/clamav/libclamav/regex_list.c:818,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/regex_list.c:820,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_list.c:828,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_list.c:829,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 4
    argNames:
    - cbdata
    - suffix
    - suffix_len
    - iregex
    argTypes:
    - void*
    - char*
    - size_t
    - struct regex_list*
    constantsTouched: []
    func_position:
      end: 833
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 833
    functionName: add_pattern_suffix
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - cli_hashtab_find
    - CLI_MALLOC_OR_GOTO_DONE
    - cli_hashtab_delete
    - list_add_tail
    - cli_hashtab_insert
    - add_newsuffix
    - CLI_FREE_AND_SET_NULL
    - CLI_MAX_REALLOC_OR_GOTO_DONE
    - cli_errmsg
    - CLI_SAFER_STRDUP_OR_GOTO_DONE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t add_pattern_suffix(void *cbdata, const char *suffix, size_t
      suffix_len, const struct regex_list *iregex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pattern
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 845
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 845
    functionName: reverse_string
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t reverse_string(char *pattern)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/regex_list.c:850,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:852,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/regex_list.c:855,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - struct regex_matcher*
    constantsTouched: []
    func_position:
      end: 862
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 862
    functionName: new_preg
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 0
    functionsReached:
    - MPOOL_MALLOC
    - cli_errmsg
    - MPOOL_REALLOC
    linkageType: ''
    returnType: regex_t
    signature: regex_t *new_preg(struct regex_matcher *matcher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reverse_string
      Src: /src/clamav/libclamav/regex_list.c:870,1
    - Dst: CLI_SAFER_STRDUP_OR_GOTO_DONE
      Src: /src/clamav/libclamav/regex_list.c:872,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_list.c:873,1
    - Dst: add_pattern_suffix
      Src: /src/clamav/libclamav/regex_list.c:876,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_list.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - matcher
    - pattern
    argTypes:
    - struct regex_matcher*
    - char*
    constantsTouched: []
    func_position:
      end: 880
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 880
    functionName: add_static_pattern
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 1
    functionsReached:
    - add_pattern_suffix
    - CLI_FREE_AND_SET_NULL
    - reverse_string
    - cli_errmsg
    - CLI_SAFER_STRDUP_OR_GOTO_DONE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t add_static_pattern(struct regex_matcher *matcher, char *pattern)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_list.c:891,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/regex_list.c:893,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/regex_list.c:899,1
    - Dst: new_preg
      Src: /src/clamav/libclamav/regex_list.c:906,1
    - Dst: cli_regex2suffix
      Src: /src/clamav/libclamav/regex_list.c:910,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/regex_list.c:912,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - matcher
    - pattern
    argTypes:
    - struct regex_matcher*
    - char*
    constantsTouched: []
    func_position:
      end: 916
      start: 882
    functionDepth: 2
    functionLinenumber: 882
    functionLinenumberEnd: 916
    functionName: regex_list_add_pattern
    functionSourceFile: /src/clamav/libclamav/regex_list.c
    functionUses: 2
    functionsReached:
    - new_preg
    - strlen
    - cli_regfree
    - cli_regex2suffix
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t regex_list_add_pattern(struct regex_matcher *matcher, char
      *pattern)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_nojit.c:40,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_nojit.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - bcs
    argTypes:
    - struct cli_all_bc*
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: cli_bytecode_prepare_jit
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_prepare_jit(struct cli_all_bc *bcs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:50,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:51,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bcs
    - ctx
    - func
    argTypes:
    - struct cli_all_bc*
    - struct cli_bc_ctx*
    - struct cli_bc_func*
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: cli_vm_execute_jit
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_vm_execute_jit(const struct cli_all_bc *bcs, struct
      cli_bc_ctx *ctx, const struct cli_bc_func *func)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:58,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - allbc
    - dconfmask
    argTypes:
    - struct cli_all_bc*
    - unsigned
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: cli_bytecode_init_jit
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_init_jit(struct cli_all_bc *allbc, unsigned
      dconfmask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:65,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - allbc
    - partial
    argTypes:
    - struct cli_all_bc*
    - int
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: cli_bytecode_done_jit
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_done_jit(struct cli_all_bc *allbc, int partial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:73,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: cli_bytecode_debug
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_debug(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: bytecode_init
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t bytecode_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: cli_bytecode_debug_printsrc
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_debug_printsrc(const struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode_nojit.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: cli_bytecode_printversion
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_printversion(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: have_clamjit
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool have_clamjit()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: cli_printcxxver
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_printcxxver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_nojit.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct cli_environment*
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: cli_detect_env_jit
    functionSourceFile: /src/clamav/libclamav/bytecode_nojit.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void cli_detect_env_jit(struct cli_environment *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:36,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:42,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-hash.c:46,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:58,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/matcher-hash.c:61,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:62,1
    - Dst: hm_addhash_bin
      Src: /src/clamav/libclamav/matcher-hash.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - root
    - strhash
    - size
    - virusname
    argTypes:
    - struct cli_matcher*
    - char*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 67
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 67
    functionName: hm_addhash_str
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 1
    functionsReached:
    - strlen
    - hm_addhash_bin
    - cli_errmsg
    - cli_hex2str_to
    linkageType: ''
    returnType: int
    signature: int hm_addhash_str(struct cli_matcher *root, const char *strhash, uint32_t
      size, const char *virusname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_HTU32_INIT
      Src: /src/clamav/libclamav/matcher-hash.c:86,1
    - Dst: cli_htu32_find
      Src: /src/clamav/libclamav/matcher-hash.c:90,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-hash.c:93,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:95,1
    - Dst: CLI_HTU32_INSERT
      Src: /src/clamav/libclamav/matcher-hash.c:101,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:103,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:104,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/matcher-hash.c:115,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:117,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:119,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/matcher-hash.c:124,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-hash.c:126,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:128,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 5
    argNames:
    - root
    - binhash
    - type
    - size
    - virusname
    argTypes:
    - struct cli_matcher*
    - void*
    - cli_hash_type_t
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 137
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 137
    functionName: hm_addhash_bin
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 2
    functionsReached:
    - CLI_HTU32_INSERT
    - MPOOL_REALLOC2
    - MPOOL_FREE
    - memcpy
    - CLI_HTU32_INIT
    - cli_htu32_find
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: int
    signature: int hm_addhash_bin(struct cli_matcher *root, const void *binhash, cli_hash_type_t
      type, uint32_t size, const char *virusname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher-hash.c:145,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher-hash.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - itm
    - ref
    - keylen
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: hm_cmp
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int hm_cmp(const uint8_t *itm, const uint8_t *ref, unsigned int keylen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:163,1
    - Dst: hm_cmp
      Src: /src/clamav/libclamav/matcher-hash.c:165,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:168,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:170,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:172,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:180,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:182,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-hash.c:184,1
    - Dst: hm_sort
      Src: /src/clamav/libclamav/matcher-hash.c:188,1
    - Dst: hm_sort
      Src: /src/clamav/libclamav/matcher-hash.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - szh
    - l
    - r
    - keylen
    argTypes:
    - struct cli_sz_hash*
    - size_t
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 190
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 190
    functionName: hm_sort
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 1
    functionsReached:
    - memcpy
    - hm_sort
    - hm_cmp
    linkageType: ''
    returnType: void
    signature: void hm_sort(struct cli_sz_hash *szh, size_t l, size_t r, unsigned
      int keylen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_htu32_next
      Src: /src/clamav/libclamav/matcher-hash.c:210,1
    - Dst: hm_sort
      Src: /src/clamav/libclamav/matcher-hash.c:215,1
    - Dst: hm_sort
      Src: /src/clamav/libclamav/matcher-hash.c:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 226
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 226
    functionName: hm_flush
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached:
    - hm_sort
    - cli_htu32_next
    linkageType: ''
    returnType: void
    signature: void hm_flush(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_htu32_find
      Src: /src/clamav/libclamav/matcher-hash.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 3
    argNames:
    - root
    - type
    - size
    argTypes:
    - struct cli_matcher*
    - cli_hash_type_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: cli_hm_have_size
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached:
    - cli_htu32_find
    linkageType: ''
    returnType: int
    signature: int cli_hm_have_size(const struct cli_matcher *root, cli_hash_type_t
      type, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - root
    - type
    argTypes:
    - struct cli_matcher*
    - cli_hash_type_t
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: cli_hm_have_wild
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_hm_have_wild(const struct cli_matcher *root, cli_hash_type_t
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - root
    - type
    argTypes:
    - struct cli_matcher*
    - cli_hash_type_t
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: cli_hm_have_any
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_hm_have_any(const struct cli_matcher *root, cli_hash_type_t
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - digest
    - virname
    - szh
    - type
    argTypes:
    - unsigned char*
    - char**
    - struct cli_sz_hash*
    - cli_hash_type_t
    constantsTouched: []
    func_position:
      end: 272
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 272
    functionName: hm_scan
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hm_scan(const unsigned char *digest, const char **virname, const
      struct cli_sz_hash *szh, cli_hash_type_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_htu32_find
      Src: /src/clamav/libclamav/matcher-hash.c:283,1
    - Dst: hm_scan
      Src: /src/clamav/libclamav/matcher-hash.c:289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 5
    argNames:
    - digest
    - size
    - virname
    - root
    - type
    argTypes:
    - unsigned char*
    - uint32_t
    - char**
    - struct cli_matcher*
    - cli_hash_type_t
    constantsTouched: []
    func_position:
      end: 290
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 290
    functionName: cli_hm_scan
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached:
    - hm_scan
    - cli_htu32_find
    linkageType: ''
    returnType: int
    signature: int cli_hm_scan(const unsigned char *digest, uint32_t size, const char
      **virname, const struct cli_matcher *root, cli_hash_type_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hm_scan
      Src: /src/clamav/libclamav/matcher-hash.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - digest
    - virname
    - root
    - type
    argTypes:
    - unsigned char*
    - char**
    - struct cli_matcher*
    - cli_hash_type_t
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: cli_hm_scan_wild
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached:
    - hm_scan
    linkageType: ''
    returnType: int
    signature: int cli_hm_scan_wild(const unsigned char *digest, const char **virname,
      const struct cli_matcher *root, cli_hash_type_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_htu32_next
      Src: /src/clamav/libclamav/matcher-hash.c:316,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:319,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:321,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:322,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:323,1
    - Dst: CLI_HTU32_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:325,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:334,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:336,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-hash.c:337,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 339
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 339
    functionName: hm_free
    functionSourceFile: /src/clamav/libclamav/matcher-hash.c
    functionUses: 0
    functionsReached:
    - cli_htu32_next
    - MPOOL_FREE
    - CLI_HTU32_FREE
    linkageType: ''
    returnType: void
    signature: void hm_free(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-bm.c:51,1
    - Dst: cli_caloff
      Src: /src/clamav/libclamav/matcher-bm.c:55,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-bm.c:56,1
    - Dst: filter_add_static
      Src: /src/clamav/libclamav/matcher-bm.c:71,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/matcher-bm.c:72,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:73,1
    - Dst: HASH
      Src: /src/clamav/libclamav/matcher-bm.c:83,1
    - Dst: HASH
      Src: /src/clamav/libclamav/matcher-bm.c:98,1
    - Dst: MIN
      Src: /src/clamav/libclamav/matcher-bm.c:99,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/matcher-bm.c:123,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-bm.c:125,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 3
    argNames:
    - root
    - pattern
    - offset
    argTypes:
    - struct cli_matcher*
    - struct cli_bm_patt*
    - char*
    constantsTouched: []
    func_position:
      end: 135
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 135
    functionName: cli_bm_addpatt
    functionSourceFile: /src/clamav/libclamav/matcher-bm.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - filter_add_static
    - MPOOL_REALLOC2
    - MPOOL_FREE
    - HASH
    - MIN
    - cli_caloff
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bm_addpatt(struct cli_matcher *root, struct cli_bm_patt
      *pattern, const char *offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/matcher-bm.c:141,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-bm.c:144,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-bm.c:147,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: cli_bm_init
    functionSourceFile: /src/clamav/libclamav/matcher-bm.c
    functionUses: 3
    functionsReached:
    - MPOOL_FREE
    - assert
    - MPOOL_CALLOC
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bm_init(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/matcher-bm.c:171,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-bm.c:173,1
    - Dst: malloc
      Src: /src/clamav/libclamav/matcher-bm.c:176,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-bm.c:178,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-bm.c:179,1
    - Dst: cli_caloff
      Src: /src/clamav/libclamav/matcher-bm.c:189,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-bm.c:190,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-bm.c:191,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-bm.c:192,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/matcher-bm.c:204,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - root
    - data
    - info
    argTypes:
    - struct cli_matcher*
    - struct cli_bm_off*
    - struct cli_target_info*
    constantsTouched: []
    func_position:
      end: 206
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 206
    functionName: cli_bm_initoff
    functionSourceFile: /src/clamav/libclamav/matcher-bm.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - cli_qsort
    - malloc
    - cli_caloff
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bm_initoff(const struct cli_matcher *root, struct cli_bm_off
      *data, const struct cli_target_info *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/matcher-bm.c:210,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-bm.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct cli_bm_off*
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: cli_bm_freeoff
    functionSourceFile: /src/clamav/libclamav/matcher-bm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cli_bm_freeoff(struct cli_bm_off *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:222,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:225,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:234,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:236,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:238,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:239,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-bm.c:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 244
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 244
    functionName: cli_bm_free
    functionSourceFile: /src/clamav/libclamav/matcher-bm.c
    functionUses: 1
    functionsReached:
    - MPOOL_FREE
    linkageType: ''
    returnType: void
    signature: void cli_bm_free(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH
      Src: /src/clamav/libclamav/matcher-bm.c:278,1
    - Dst: MIN
      Src: /src/clamav/libclamav/matcher-bm.c:330,1
    - Dst: cli_caloff
      Src: /src/clamav/libclamav/matcher-bm.c:368,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-bm.c:370,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher-bm.c:388,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 155
    argCount: 9
    argNames:
    - buffer
    - length
    - virname
    - patt
    - root
    - offset
    - info
    - offdata
    - ctx
    argTypes:
    - unsigned char*
    - uint32_t
    - char**
    - struct cli_bm_patt**
    - struct cli_matcher*
    - uint32_t
    - struct cli_target_info*
    - struct cli_bm_off*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 426
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 426
    functionName: cli_bm_scanbuff
    functionSourceFile: /src/clamav/libclamav/matcher-bm.c
    functionUses: 3
    functionsReached:
    - cli_append_virus
    - HASH
    - MIN
    - cli_caloff
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bm_scanbuff(const unsigned char *buffer, uint32_t length,
      const char **virname, const struct cli_bm_patt **patt, const struct cli_matcher
      *root, uint32_t offset, const struct cli_target_info *info, struct cli_bm_off
      *offdata, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/dconf.c:170,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:175,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:178,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:181,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:184,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:187,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:190,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:193,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:196,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:199,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:202,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:205,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 212
    functionName: cli_dconf_init
    functionSourceFile: /src/clamav/libclamav/dconf.c
    functionUses: 0
    functionsReached:
    - strcmp
    - MPOOL_CALLOC
    linkageType: ''
    returnType: struct cli_dconf
    signature: struct cli_dconf *cli_dconf_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:219,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:220,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:223,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:230,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:235,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:238,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:240,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:243,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:245,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:250,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:253,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:255,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:260,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:265,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:270,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:275,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:280,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:283,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:285,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:290,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:293,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:300,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:303,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:310,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/dconf.c:313,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:315,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dconf.c:320,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 98
    argCount: 1
    argNames:
    - dconf
    argTypes:
    - struct cli_dconf*
    constantsTouched: []
    func_position:
      end: 325
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 325
    functionName: cli_dconf_print
    functionSourceFile: /src/clamav/libclamav/dconf.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cli_dconf_print(struct cli_dconf *dconf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/dconf.c:331,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dconf.c:332,1
    - Dst: free
      Src: /src/clamav/libclamav/dconf.c:333,1
    - Dst: atoi
      Src: /src/clamav/libclamav/dconf.c:337,1
    - Dst: free
      Src: /src/clamav/libclamav/dconf.c:338,1
    - Dst: free
      Src: /src/clamav/libclamav/dconf.c:342,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/dconf.c:344,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dconf.c:345,1
    - Dst: free
      Src: /src/clamav/libclamav/dconf.c:346,1
    - Dst: atoi
      Src: /src/clamav/libclamav/dconf.c:350,1
    - Dst: free
      Src: /src/clamav/libclamav/dconf.c:351,1
    - Dst: free
      Src: /src/clamav/libclamav/dconf.c:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - entry
    - field
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 360
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 360
    functionName: chkflevel
    functionSourceFile: /src/clamav/libclamav/dconf.c
    functionUses: 0
    functionsReached:
    - cli_strtok
    - free
    - atoi
    - isdigit
    linkageType: ''
    returnType: int
    signature: int chkflevel(const char *entry, int field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/dconf.c:369,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/dconf.c:371,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/dconf.c:373,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:375,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:375,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:376,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:384,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:384,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:385,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:393,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:393,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:394,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:402,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:402,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:403,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:411,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:411,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:412,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:420,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:420,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:421,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:429,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:429,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:430,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:438,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:438,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:439,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:447,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:447,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:448,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:456,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:456,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:457,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dconf.c:465,1
    - Dst: chkflevel
      Src: /src/clamav/libclamav/dconf.c:465,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dconf.c:466,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dconf.c:476,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 99
    argCount: 4
    argNames:
    - fs
    - engine
    - options
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 481
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 481
    functionName: cli_dconf_load
    functionSourceFile: /src/clamav/libclamav/dconf.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - sscanf
    - cli_dbgets
    - UNUSEDPARAM
    - chkflevel
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: int
    signature: int cli_dconf_load(FILE *fs, struct cl_engine *engine, unsigned int
      options, struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:80,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:82,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:83,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/wwunpack.c:86,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/wwunpack.c:88,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/wwunpack.c:90,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:94,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:95,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:98,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/wwunpack.c:99,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:100,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/wwunpack.c:103,1
    - Dst: memset
      Src: /src/clamav/libclamav/wwunpack.c:104,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:114,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:121,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:124,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:131,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:134,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:134,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:147,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:167,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:170,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:173,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:186,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:190,1
    - Dst: BITS
      Src: /src/clamav/libclamav/wwunpack.c:207,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:217,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:217,1
    - Dst: free
      Src: /src/clamav/libclamav/wwunpack.c:225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:227,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:236,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:237,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:242,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:243,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/wwunpack.c:250,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/wwunpack.c:250,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/wwunpack.c:252,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/wwunpack.c:252,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/wwunpack.c:255,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:258,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:259,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/wwunpack.c:263,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/wwunpack.c:264,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/wwunpack.c:265,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/wwunpack.c:266,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/wwunpack.c:269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/wwunpack.c:270,1
    - Dst: memset
      Src: /src/clamav/libclamav/wwunpack.c:274,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/wwunpack.c:275,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 170
    argCount: 7
    argNames:
    - exe
    - exesz
    - wwsect
    - sects
    - scount
    - pe
    - desc
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - struct cli_exe_section*
    - uint16_t
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 280
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 280
    functionName: wwunpack
    functionSourceFile: /src/clamav/libclamav/wwunpack.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    - memset
    - BITS
    - CLI_ISCONTAINED
    - cli_max_malloc
    - cli_dbgmsg
    - cli_writeint32
    - memcpy
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t wwunpack(uint8_t *exe, uint32_t exesz, uint8_t *wwsect,
      struct cli_exe_section *sects, uint16_t scount, uint32_t pe, int desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_events_new
      Src: /src/clamav/libclamav/matcher-pcre.c:68,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:70,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:76,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-pcre.c:84,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-pcre.c:84,1
    - Dst: calloc
      Src: /src/clamav/libclamav/matcher-pcre.c:88,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/matcher-pcre.c:92,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:94,1
    - Dst: cli_event_define
      Src: /src/clamav/libclamav/matcher-pcre.c:98,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:100,1
    - Dst: cli_event_define
      Src: /src/clamav/libclamav/matcher-pcre.c:107,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - pm
    - virname
    argTypes:
    - struct cli_pcre_meta*
    - char*
    constantsTouched: []
    func_position:
      end: 113
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 113
    functionName: pcre_perf_events_init
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 0
    functionsReached:
    - cli_events_new
    - snprintf
    - calloc
    - strlen
    - pm_dbgmsg
    - cli_event_define
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void pcre_perf_events_init(struct cli_pcre_meta *pm, const char *virname)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: sigelem_comp
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigelem_comp(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:135,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher-pcre.c:139,1
    - Dst: cli_event_get
      Src: /src/clamav/libclamav/matcher-pcre.c:144,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:147,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-pcre.c:151,1
    - Dst: cli_event_get
      Src: /src/clamav/libclamav/matcher-pcre.c:159,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-pcre.c:164,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-pcre.c:165,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/matcher-pcre.c:167,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/matcher-pcre.c:171,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/matcher-pcre.c:173,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/matcher-pcre.c:176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 181
    functionName: cli_pcre_perf_print
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 1
    functionsReached:
    - memset
    - cli_warnmsg
    - strlen
    - cli_infomsg
    - cli_event_get
    - cli_qsort
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void cli_pcre_perf_print()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/matcher-pcre.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: cli_pcre_perf_events_destroy
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 1
    functionsReached:
    - cli_events_free
    linkageType: ''
    returnType: void
    signature: void cli_pcre_perf_events_destroy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:382,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:393,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:399,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:410,1
    - Dst: cli_pcre_compile
      Src: /src/clamav/libclamav/matcher-pcre.c:411,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:414,1
    - Dst: cli_pcre_compile
      Src: /src/clamav/libclamav/matcher-pcre.c:415,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:418,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - root
    - match_limit
    - recmatch_limit
    - dconf
    argTypes:
    - struct cli_matcher*
    - long long unsigned
    - long long unsigned
    - struct cli_dconf*
    constantsTouched: []
    func_position:
      end: 425
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 425
    functionName: cli_pcre_build
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 2
    functionsReached:
    - cli_pcre_compile
    - cli_dbgmsg
    - cli_errmsg
    - pm_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pcre_build(struct cli_matcher *root, long long unsigned
      match_limit, long long unsigned recmatch_limit, const struct cli_dconf *dconf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/matcher-pcre.c:447,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:449,1
    - Dst: calloc
      Src: /src/clamav/libclamav/matcher-pcre.c:452,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:454,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-pcre.c:455,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:459,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:460,1
    - Dst: cli_caloff
      Src: /src/clamav/libclamav/matcher-pcre.c:483,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:485,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-pcre.c:486,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-pcre.c:487,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:500,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 4
    argNames:
    - root
    - data
    - info
    - ctx
    argTypes:
    - struct cli_matcher*
    - struct cli_pcre_off*
    - struct cli_target_info*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 505
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 505
    functionName: cli_pcre_recaloff
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 0
    functionsReached:
    - calloc
    - cli_errmsg
    - pm_dbgmsg
    - cli_caloff
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pcre_recaloff(struct cli_matcher *root, struct cli_pcre_off
      *data, struct cli_target_info *info, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/matcher-pcre.c:510,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-pcre.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct cli_pcre_off*
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: cli_pcre_freeoff
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cli_pcre_freeoff(struct cli_pcre_off *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pm
    - length
    - adjbuffer
    - adjshift
    argTypes:
    - struct cli_pcre_meta*
    - uint32_t
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 542
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 542
    functionName: cli_pcre_qoff
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_pcre_qoff(struct cli_pcre_meta *pm, uint32_t length, uint32_t
      *adjbuffer, uint32_t *adjshift)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/matcher-pcre.c:563,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:572,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:578,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:584,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher-pcre.c:586,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/libclamav/matcher-pcre.c:588,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-pcre.c:588,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:591,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:600,1
    - Dst: cli_pcre_qoff
      Src: /src/clamav/libclamav/matcher-pcre.c:605,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:636,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:640,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/matcher-pcre.c:644,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:645,1
    - Dst: cli_pcre_results_reset
      Src: /src/clamav/libclamav/matcher-pcre.c:651,1
    - Dst: cli_event_time_start
      Src: /src/clamav/libclamav/matcher-pcre.c:655,1
    - Dst: cli_pcre_match
      Src: /src/clamav/libclamav/matcher-pcre.c:656,1
    - Dst: cli_event_time_stop
      Src: /src/clamav/libclamav/matcher-pcre.c:657,1
    - Dst: cli_pcre_report
      Src: /src/clamav/libclamav/matcher-pcre.c:660,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:664,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:670,1
    - Dst: cli_event_count
      Src: /src/clamav/libclamav/matcher-pcre.c:676,1
    - Dst: pm_dbgmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:681,1
    - Dst: lsig_sub_matched
      Src: /src/clamav/libclamav/matcher-pcre.c:684,1
    - Dst: calloc
      Src: /src/clamav/libclamav/matcher-pcre.c:691,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-pcre.c:693,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher-pcre.c:711,1
    - Dst: cli_pcre_results_free
      Src: /src/clamav/libclamav/matcher-pcre.c:738,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 120
    argCount: 8
    argNames:
    - buffer
    - length
    - virname
    - res
    - root
    - mdata
    - data
    - ctx
    argTypes:
    - unsigned char*
    - uint32_t
    - char**
    - struct cli_ac_result**
    - struct cli_matcher*
    - struct cli_ac_data*
    - struct cli_pcre_off*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 741
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 741
    functionName: cli_pcre_scanbuf
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 2
    functionsReached:
    - cli_pcre_results_reset
    - cli_pcre_qoff
    - cli_event_count
    - pm_dbgmsg
    - cli_event_time_stop
    - strcmp
    - cli_pcre_results_free
    - cli_dbgmsg
    - cli_event_time_start
    - cli_pcre_report
    - cli_ac_chklsig
    - memset
    - calloc
    - cli_append_virus
    - cli_checktimelimit
    - lsig_sub_matched
    - cli_pcre_match
    - strlen
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pcre_scanbuf(const unsigned char *buffer, uint32_t length,
      const char **virname, struct cli_ac_result **res, const struct cli_matcher *root,
      struct cli_ac_data *mdata, const struct cli_pcre_off *data, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher-pcre.c:749,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-pcre.c:753,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-pcre.c:758,1
    - Dst: cli_pcre_free_single
      Src: /src/clamav/libclamav/matcher-pcre.c:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - root
    - pm
    argTypes:
    - struct cli_matcher*
    - struct cli_pcre_meta*
    constantsTouched: []
    func_position:
      end: 763
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 763
    functionName: cli_pcre_freemeta
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_pcre_free_single
    - MPOOL_FREE
    - free
    linkageType: ''
    returnType: void
    signature: void cli_pcre_freemeta(struct cli_matcher *root, struct cli_pcre_meta
      *pm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_pcre_freemeta
      Src: /src/clamav/libclamav/matcher-pcre.c:773,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-pcre.c:774,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-pcre.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 781
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 781
    functionName: cli_pcre_freetable
    functionSourceFile: /src/clamav/libclamav/matcher-pcre.c
    functionUses: 0
    functionsReached:
    - MPOOL_FREE
    - cli_pcre_freemeta
    linkageType: ''
    returnType: void
    signature: void cli_pcre_freetable(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:211,1
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:212,1
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - urls
    argTypes:
    - struct url_check*
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: url_check_init
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_init_c
    linkageType: ''
    returnType: void
    signature: void url_check_init(struct url_check* urls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/phishcheck.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - struct string*
    constantsTouched: []
    func_position:
      end: 236
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 236
    functionName: string_free
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void string_free(struct string* str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - struct string*
    - struct string*
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: string_assign
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_free
    linkageType: ''
    returnType: void
    signature: void string_assign(struct string* dest, struct string* src)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - data
    argTypes:
    - struct string*
    - char*
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: string_init_c
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void string_init_c(struct string* dest, char* data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phishcheck.c:265,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/phishcheck.c:268,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/phishcheck.c:269,1
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:271,1
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - dest
    - prefix
    - begin
    - end
    argTypes:
    - struct string*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 274
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 274
    functionName: string_assign_concatenated
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_init_c
    - string_free
    - strncpy
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int string_assign_concatenated(struct string* dest, const char* prefix,
      const char* begin, const char* end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phishcheck.c:281,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/phishcheck.c:284,1
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:287,1
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - dest
    - start
    - end
    argTypes:
    - struct string*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 290
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 290
    functionName: string_assign_dup
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_init_c
    - string_free
    - strncpy
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int string_assign_dup(struct string* dest, const char* start, const
      char* end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dest
    argTypes:
    - struct string*
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: string_assign_null
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_free
    linkageType: ''
    returnType: void
    signature: void string_assign_null(struct string* dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - ref
    - data
    argTypes:
    - struct string*
    - struct string*
    - char*
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: string_assign_ref
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_free
    linkageType: ''
    returnType: void
    signature: void string_assign_ref(struct string* dest, struct string* ref, char*
      data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:314,1
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:315,1
    - Dst: string_free
      Src: /src/clamav/libclamav/phishcheck.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - url
    argTypes:
    - struct url_check*
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: free_if_needed
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_free
    linkageType: ''
    returnType: void
    signature: void free_if_needed(struct url_check* url)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:322,1
    - Dst: cli_regcomp
      Src: /src/clamav/libclamav/phishcheck.c:323,1
    - Dst: cli_regerror
      Src: /src/clamav/libclamav/phishcheck.c:330,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phishcheck.c:331,1
    - Dst: free
      Src: /src/clamav/libclamav/phishcheck.c:332,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phishcheck.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - preg
    - regex
    - nosub
    argTypes:
    - regex_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 338
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 338
    functionName: build_regex
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - cli_regcomp
    - cli_errmsg
    - cli_dbgmsg
    - free
    - cli_regerror
    linkageType: ''
    returnType: int
    signature: int build_regex(regex_t* preg, const char* regex, int nosub)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/clamav/libclamav/phishcheck.c:350,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:352,1
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:357,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/phishcheck.c:358,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:365,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/phishcheck.c:376,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:377,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/phishcheck.c:384,1
    - Dst: in_tld_set
      Src: /src/clamav/libclamav/phishcheck.c:385,1
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:385,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/phishcheck.c:397,1
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:399,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 5
    argNames:
    - URL
    - isReal
    - phishy
    - hstart
    - hend
    argTypes:
    - char*
    - int
    - int*
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 404
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 404
    functionName: get_host
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strstr
    - strlen
    - strchr
    - cli_dbgmsg
    - strrchr
    - in_tld_set
    - strncmp
    linkageType: ''
    returnType: int
    signature: int get_host(const char* URL, int isReal, int* phishy, const char**
      hstart, const char** hend)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - start
    - c
    - len
    argTypes:
    - char*
    - char
    - size_t
    constantsTouched: []
    func_position:
      end: 420
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 420
    functionName: rfind
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      rfind(char* start, char c, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:427,1
    - Dst: string_assign
      Src: /src/clamav/libclamav/phishcheck.c:428,1
    - Dst: in_cctld_set
      Src: /src/clamav/libclamav/phishcheck.c:431,1
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:431,1
    - Dst: rfind
      Src: /src/clamav/libclamav/phishcheck.c:433,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:435,1
    - Dst: string_assign
      Src: /src/clamav/libclamav/phishcheck.c:437,1
    - Dst: in_tld_set
      Src: /src/clamav/libclamav/phishcheck.c:440,1
    - Dst: string_assign_ref
      Src: /src/clamav/libclamav/phishcheck.c:441,1
    - Dst: rfind
      Src: /src/clamav/libclamav/phishcheck.c:446,1
    - Dst: string_assign
      Src: /src/clamav/libclamav/phishcheck.c:448,1
    - Dst: string_assign_ref
      Src: /src/clamav/libclamav/phishcheck.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - dest
    - host
    argTypes:
    - struct string*
    - struct string*
    constantsTouched: []
    func_position:
      end: 452
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 452
    functionName: get_domain
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_assign_ref
    - strlen
    - string_assign
    - rfind
    - cli_dbgmsg
    - in_tld_set
    - in_cctld_set
    linkageType: ''
    returnType: void
    signature: void get_domain(struct string* dest, struct string* host)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/clamav/libclamav/phishcheck.c:462,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 8
    argCount: 1
    argNames:
    - host
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 467
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 467
    functionName: isNumeric
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: int
    signature: int isNumeric(const char* host)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - URL
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: isSSL
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int isSSL(const char* URL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hex2int
      Src: /src/clamav/libclamav/phishcheck.c:488,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/phishcheck.c:498,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/phishcheck.c:498,1
    - Dst: hex2int
      Src: /src/clamav/libclamav/phishcheck.c:499,1
    - Dst: memmove
      Src: /src/clamav/libclamav/phishcheck.c:503,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 512
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 512
    functionName: str_hex_to_char
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - hex2int
    - memmove
    - isxdigit
    linkageType: ''
    returnType: void
    signature: void str_hex_to_char(char** begin, const char** end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:531,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:535,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:548,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:556,1
    - Dst: memmove
      Src: /src/clamav/libclamav/phishcheck.c:559,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 4
    argNames:
    - begin
    - end
    - what
    - what_len
    argTypes:
    - char**
    - char**
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 565
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 565
    functionName: str_strip
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - strlen
    - memmove
    - strncmp
    linkageType: ''
    returnType: void
    signature: void str_strip(char** begin, const char** end, const char* what, size_t
      what_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - str
    - end
    - c
    - r
    argTypes:
    - char*
    - char*
    - char
    - char
    constantsTouched: []
    func_position:
      end: 574
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 574
    functionName: str_replace
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void str_replace(char* str, const char* end, char c, char r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/clamav/libclamav/phishcheck.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: str_make_lowercase
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: void
    signature: void str_make_lowercase(char* str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fix32
      Src: /src/clamav/libclamav/phishcheck.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - begin
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: clear_msb
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - fix32
    linkageType: ''
    returnType: void
    signature: void clear_msb(char* begin)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: str_strip
      Src: /src/clamav/libclamav/phishcheck.c:616,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/phishcheck.c:618,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/phishcheck.c:619,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 625
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 625
    functionName: str_fixup_spaces
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - isalnum
    - str_strip
    linkageType: ''
    returnType: void
    signature: void str_fixup_spaces(char** begin, const char** end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_msb
      Src: /src/clamav/libclamav/phishcheck.c:635,1
    - Dst: isspace
      Src: /src/clamav/libclamav/phishcheck.c:639,1
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:642,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:644,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:645,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:652,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:653,1
    - Dst: isspace
      Src: /src/clamav/libclamav/phishcheck.c:656,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:659,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:659,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:659,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:660,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:661,1
    - Dst: str_replace
      Src: /src/clamav/libclamav/phishcheck.c:667,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:672,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/phishcheck.c:678,1
    - Dst: str_make_lowercase
      Src: /src/clamav/libclamav/phishcheck.c:691,1
    - Dst: str_replace
      Src: /src/clamav/libclamav/phishcheck.c:694,1
    - Dst: str_replace
      Src: /src/clamav/libclamav/phishcheck.c:695,1
    - Dst: str_replace
      Src: /src/clamav/libclamav/phishcheck.c:696,1
    - Dst: str_replace
      Src: /src/clamav/libclamav/phishcheck.c:697,1
    - Dst: str_strip
      Src: /src/clamav/libclamav/phishcheck.c:698,1
    - Dst: str_strip
      Src: /src/clamav/libclamav/phishcheck.c:699,1
    - Dst: str_hex_to_char
      Src: /src/clamav/libclamav/phishcheck.c:701,1
    - Dst: str_strip
      Src: /src/clamav/libclamav/phishcheck.c:704,1
    - Dst: string_assign_dup
      Src: /src/clamav/libclamav/phishcheck.c:710,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:711,1
    - Dst: str_fixup_spaces
      Src: /src/clamav/libclamav/phishcheck.c:715,1
    - Dst: string_assign_dup
      Src: /src/clamav/libclamav/phishcheck.c:716,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 3
    argNames:
    - URL
    - pre_URL
    - isReal
    argTypes:
    - struct string*
    - struct string*
    - int
    constantsTouched: []
    func_position:
      end: 722
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 722
    functionName: cleanupURL
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - string_assign_null
    - strcspn
    - strlen
    - str_make_lowercase
    - clear_msb
    - strchr
    - str_fixup_spaces
    - str_replace
    - isspace
    - str_hex_to_char
    - string_assign_dup
    - str_strip
    - strncmp
    linkageType: ''
    returnType: int
    signature: int cleanupURL(struct string* URL, struct string* pre_URL, int isReal)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:739,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:741,1
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:753,1
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:754,1
    - Dst: string_init_c
      Src: /src/clamav/libclamav/phishcheck.c:755,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/phishcheck.c:759,1
    - Dst: phishingCheck
      Src: /src/clamav/libclamav/phishcheck.c:766,1
    - Dst: free_if_needed
      Src: /src/clamav/libclamav/phishcheck.c:767,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:771,1
    - Dst: phishing_ret_toString
      Src: /src/clamav/libclamav/phishcheck.c:771,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:777,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:780,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:783,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:786,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:789,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:792,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:795,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/phishcheck.c:799,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 2
    argNames:
    - ctx
    - hrefs
    argTypes:
    - cli_ctx*
    - tag_arguments_t*
    constantsTouched: []
    func_position:
      end: 809
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 809
    functionName: phishingScan
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 2
    functionsReached:
    - strcmp
    - cli_append_potentially_unwanted
    - phishing_ret_toString
    - string_init_c
    - free_if_needed
    - cli_dbgmsg
    - phishingCheck
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t phishingScan(cli_ctx* ctx, tag_arguments_t* hrefs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 816
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 816
    functionName: hex2int
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char hex2int(const unsigned char* src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/phishcheck.c:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - regex_t*
    constantsTouched: []
    func_position:
      end: 823
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 823
    functionName: free_regex
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - cli_regfree
    linkageType: ''
    returnType: void
    signature: void free_regex(regex_t* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/phishcheck.c:829,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phishcheck.c:831,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:845,1
    - Dst: build_regex
      Src: /src/clamav/libclamav/phishcheck.c:847,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/phishcheck.c:848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 855
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 855
    functionName: phishing_init
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 1
    functionsReached:
    - build_regex
    - MPOOL_MALLOC
    - MPOOL_FREE
    - cli_dbgmsg
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t phishing_init(struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:860,1
    - Dst: free_regex
      Src: /src/clamav/libclamav/phishcheck.c:862,1
    - Dst: allow_list_done
      Src: /src/clamav/libclamav/phishcheck.c:864,1
    - Dst: domain_list_done
      Src: /src/clamav/libclamav/phishcheck.c:865,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:867,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/phishcheck.c:868,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 871
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 871
    functionName: phishing_done
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - allow_list_done
    - free_regex
    - MPOOL_FREE
    - domain_list_done
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void phishing_done(struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 938
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 938
    functionName: validate_uri_xalphas_nodot
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int validate_uri_xalphas_nodot(const char* start, const char* end)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 949
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 949
    functionName: validate_uri_xpalphas_nodot
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int validate_uri_xpalphas_nodot(const char* start, const char* end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: validate_uri_xalphas_nodot
      Src: /src/clamav/libclamav/phishcheck.c:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 957
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 957
    functionName: validate_uri_ialpha
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - validate_uri_xalphas_nodot
    linkageType: ''
    returnType: int
    signature: int validate_uri_ialpha(const char* start, const char* end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:973,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:975,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:979,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/phishcheck.c:983,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:991,1
    - Dst: validate_uri_ialpha
      Src: /src/clamav/libclamav/phishcheck.c:994,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1008,1
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:1010,1
    - Dst: memchr
      Src: /src/clamav/libclamav/phishcheck.c:1012,1
    - Dst: in_tld_set
      Src: /src/clamav/libclamav/phishcheck.c:1017,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1022,1
    - Dst: validate_uri_xpalphas_nodot
      Src: /src/clamav/libclamav/phishcheck.c:1026,1
    - Dst: in_tld_set
      Src: /src/clamav/libclamav/phishcheck.c:1028,1
    - Dst: in_tld_set
      Src: /src/clamav/libclamav/phishcheck.c:1039,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 75
    argCount: 2
    argNames:
    - URL
    - accept_anyproto
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1048
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 1048
    functionName: isURL
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - strlen
    - memchr
    - validate_uri_ialpha
    - strchr
    - validate_uri_xpalphas_nodot
    - in_tld_set
    - strncmp
    linkageType: ''
    returnType: int
    signature: int isURL(char* URL, int accept_anyproto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regexec
      Src: /src/clamav/libclamav/phishcheck.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pchk
    - URL
    argTypes:
    - struct phishcheck*
    - char*
    constantsTouched: []
    func_position:
      end: 1058
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1058
    functionName: isRealURL
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - cli_regexec
    linkageType: ''
    returnType: int
    signature: int isRealURL(const struct phishcheck* pchk,const char* URL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regexec
      Src: /src/clamav/libclamav/phishcheck.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pchk
    - URL
    argTypes:
    - struct phishcheck*
    - char*
    constantsTouched: []
    func_position:
      end: 1064
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1064
    functionName: isNumericURL
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - cli_regexec
    linkageType: ''
    returnType: int
    signature: int isNumericURL(const struct phishcheck* pchk, const char* URL)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cleanupURL
      Src: /src/clamav/libclamav/phishcheck.c:1077,1
    - Dst: cleanupURL
      Src: /src/clamav/libclamav/phishcheck.c:1078,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/phishcheck.c:1081,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - urls
    argTypes:
    - struct url_check*
    constantsTouched: []
    func_position:
      end: 1085
      start: 1074
    functionDepth: 4
    functionLinenumber: 1074
    functionLinenumberEnd: 1085
    functionName: cleanupURLs
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cleanupURL
    linkageType: ''
    returnType: enum phish_status
    signature: enum phish_status cleanupURLs(struct url_check* urls)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_host
      Src: /src/clamav/libclamav/phishcheck.c:1093,1
    - Dst: string_assign_null
      Src: /src/clamav/libclamav/phishcheck.c:1097,1
    - Dst: string_assign_concatenated
      Src: /src/clamav/libclamav/phishcheck.c:1098,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1102,1
    - Dst: strstr
      Src: /src/clamav/libclamav/phishcheck.c:1104,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1104,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1111,1
    - Dst: isNumeric
      Src: /src/clamav/libclamav/phishcheck.c:1114,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - url
    - host_url
    - isReal
    - phishy
    argTypes:
    - struct url_check*
    - struct url_check*
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 1123
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1123
    functionName: url_get_host
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - isNumeric
    - string_assign_null
    - strstr
    - strchr
    - cli_dbgmsg
    - string_assign_concatenated
    - get_host
    linkageType: ''
    returnType: int
    signature: int url_get_host(struct url_check* url, struct url_check* host_url,
      int isReal, int* phishy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_domain
      Src: /src/clamav/libclamav/phishcheck.c:1127,1
    - Dst: get_domain
      Src: /src/clamav/libclamav/phishcheck.c:1128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - url
    - domains
    argTypes:
    - struct url_check*
    - struct url_check*
    constantsTouched: []
    func_position:
      end: 1130
      start: 1125
    functionDepth: 3
    functionLinenumber: 1125
    functionLinenumberEnd: 1130
    functionName: url_get_domain
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - get_domain
    linkageType: ''
    returnType: void
    signature: void url_get_domain(struct url_check* url, struct url_check* domains)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - phishy
    - fallback
    argTypes:
    - int
    - enum phish_status
    constantsTouched: []
    func_position:
      end: 1140
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1140
    functionName: phishy_map
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum phish_status
    signature: enum phish_status phishy_map(int phishy, enum phish_status fallback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: allow_list_match
      Src: /src/clamav/libclamav/phishcheck.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - engine
    - urls
    - hostOnly
    argTypes:
    - struct cl_engine*
    - struct url_check*
    - int
    constantsTouched: []
    func_position:
      end: 1145
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1145
    functionName: allow_list_check
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - allow_list_match
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t allow_list_check(const struct cl_engine* engine, struct
      url_check* urls, int hostOnly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/clamav/libclamav/phishcheck.c:1158,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/phishcheck.c:1159,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1161,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/phishcheck.c:1163,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/phishcheck.c:1178,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/phishcheck.c:1182,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/phishcheck.c:1183,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/phishcheck.c:1184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1191,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/libclamav/phishcheck.c:1194,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1195,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/libclamav/phishcheck.c:1201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1202,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1205,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 7
    argNames:
    - rlist
    - host
    - hlen
    - path
    - plen
    - prefix_matched
    - phishing_verdict
    argTypes:
    - struct regex_matcher*
    - char*
    - size_t
    - char*
    - size_t
    - int*
    - enum phish_status*
    constantsTouched: []
    func_position:
      end: 1220
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1220
    functionName: hash_match
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - strncpy
    - cli_bm_scanbuff
    - cli_dbgmsg
    - cl_hash_init
    - cl_update_hash
    - cl_finish_hash
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t hash_match(const struct regex_matcher* rlist,\n                             const
      char* host,\n                             size_t hlen,\n                             const
      char* path,\n                             size_t plen,\n                             int*
      prefix_matched,\n                             enum phish_status* phishing_verdict)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/clamav/libclamav/phishcheck.c:1232,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1237,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/phishcheck.c:1244,1
    - Dst: memchr
      Src: /src/clamav/libclamav/phishcheck.c:1245,1
    - Dst: str_hex_to_char
      Src: /src/clamav/libclamav/phishcheck.c:1250,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1257,1
    - Dst: memmove
      Src: /src/clamav/libclamav/phishcheck.c:1264,1
    - Dst: memmove
      Src: /src/clamav/libclamav/phishcheck.c:1269,1
    - Dst: memmove
      Src: /src/clamav/libclamav/phishcheck.c:1286,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/phishcheck.c:1298,1
    - Dst: memmove
      Src: /src/clamav/libclamav/phishcheck.c:1302,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1309,1
    - Dst: str_make_lowercase
      Src: /src/clamav/libclamav/phishcheck.c:1321,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 8
    argNames:
    - inurl
    - len
    - urlbuff
    - dest_len
    - host
    - hostlen
    - path
    - pathlen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    - char**
    - size_t*
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 1326
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1326
    functionName: cli_url_canon
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 1
    functionsReached:
    - strcspn
    - str_make_lowercase
    - memchr
    - strncpy
    - strchr
    - str_hex_to_char
    - memmove
    linkageType: ''
    returnType: enum phish_status
    signature: enum phish_status cli_url_canon(const char* inurl, size_t len, char*
      urlbuff, size_t dest_len, char** host, size_t* hostlen, const char** path, size_t*
      pathlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_url_canon
      Src: /src/clamav/libclamav/phishcheck.c:1362,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/phishcheck.c:1370,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/phishcheck.c:1385,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1392,1
    - Dst: assert
      Src: /src/clamav/libclamav/phishcheck.c:1411,1
    - Dst: hash_match
      Src: /src/clamav/libclamav/phishcheck.c:1413,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1430,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 4
    argNames:
    - rlist
    - inurl
    - len
    - phishing_verdict
    argTypes:
    - struct regex_matcher*
    - char*
    - size_t
    - enum phish_status*
    constantsTouched: []
    func_position:
      end: 1439
      start: 1328
    functionDepth: 3
    functionLinenumber: 1328
    functionLinenumberEnd: 1439
    functionName: url_hash_match
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strchr
    - cli_dbgmsg
    - hash_match
    - strrchr
    - assert
    - cli_url_canon
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t url_hash_match(\n    const struct regex_matcher* rlist,\n
      \   const char* inurl,\n    size_t len,\n    enum phish_status* phishing_verdict)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: url_check_init
      Src: /src/clamav/libclamav/phishcheck.c:1463,1
    - Dst: url_check_init
      Src: /src/clamav/libclamav/phishcheck.c:1464,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1471,1
    - Dst: isURL
      Src: /src/clamav/libclamav/phishcheck.c:1474,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1475,1
    - Dst: url_hash_match
      Src: /src/clamav/libclamav/phishcheck.c:1480,1
    - Dst: strlen
      Src: /src/clamav/libclamav/phishcheck.c:1482,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1484,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1488,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1491,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/phishcheck.c:1496,1
    - Dst: cleanupURLs
      Src: /src/clamav/libclamav/phishcheck.c:1507,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1512,1
    - Dst: isURL
      Src: /src/clamav/libclamav/phishcheck.c:1515,1
    - Dst: isNumericURL
      Src: /src/clamav/libclamav/phishcheck.c:1516,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phishcheck.c:1518,1
    - Dst: allow_list_check
      Src: /src/clamav/libclamav/phishcheck.c:1528,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/phishcheck.c:1540,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phishcheck.c:1542,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/phishcheck.c:1546,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phishcheck.c:1548,1
    - Dst: domain_list_match
      Src: /src/clamav/libclamav/phishcheck.c:1552,1
    - Dst: url_get_host
      Src: /src/clamav/libclamav/phishcheck.c:1559,1
    - Dst: url_get_host
      Src: /src/clamav/libclamav/phishcheck.c:1563,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/phishcheck.c:1571,1
    - Dst: allow_list_check
      Src: /src/clamav/libclamav/phishcheck.c:1581,1
    - Dst: domain_list_match
      Src: /src/clamav/libclamav/phishcheck.c:1591,1
    - Dst: strchr
      Src: /src/clamav/libclamav/phishcheck.c:1611,1
    - Dst: isSSL
      Src: /src/clamav/libclamav/phishcheck.c:1617,1
    - Dst: isSSL
      Src: /src/clamav/libclamav/phishcheck.c:1617,1
    - Dst: url_get_domain
      Src: /src/clamav/libclamav/phishcheck.c:1627,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/phishcheck.c:1628,1
    - Dst: phishy_map
      Src: /src/clamav/libclamav/phishcheck.c:1637,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/phishcheck.c:1641,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/phishcheck.c:1642,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/phishcheck.c:1643,1
    - Dst: free
      Src: /src/clamav/libclamav/phishcheck.c:1647,1
    - Dst: free
      Src: /src/clamav/libclamav/phishcheck.c:1650,1
    - Dst: free_if_needed
      Src: /src/clamav/libclamav/phishcheck.c:1653,1
    - Dst: free_if_needed
      Src: /src/clamav/libclamav/phishcheck.c:1654,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 144
    argCount: 2
    argNames:
    - ctx
    - urls
    argTypes:
    - cli_ctx*
    - struct url_check*
    constantsTouched: []
    func_position:
      end: 1657
      start: 1450
    functionDepth: 5
    functionLinenumber: 1450
    functionLinenumberEnd: 1657
    functionName: phishingCheck
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 1
    functionsReached:
    - isURL
    - isNumericURL
    - url_get_domain
    - phishy_map
    - url_hash_match
    - isSSL
    - strcmp
    - url_get_host
    - allow_list_check
    - cli_dbgmsg
    - domain_list_match
    - cleanupURLs
    - cli_infomsg
    - free
    - cli_safer_strdup
    - url_check_init
    - strlen
    - strchr
    - free_if_needed
    - cli_errmsg
    linkageType: ''
    returnType: enum phish_status
    signature: enum phish_status phishingCheck(cli_ctx* ctx, struct url_check* urls)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - phishing_verdict
    argTypes:
    - enum phish_status
    constantsTouched: []
    func_position:
      end: 1680
      start: 1659
    functionDepth: 0
    functionLinenumber: 1659
    functionLinenumberEnd: 1680
    functionName: phishing_ret_toString
    functionSourceFile: /src/clamav/libclamav/phishcheck.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * phishing_ret_toString(enum phish_status phishing_verdict)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ROTATE_INT32
      Src: /src/clamav/libclamav/yara_hash.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - seed
    - buffer
    - len
    argTypes:
    - uint32_t
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 89
    functionName: hash
    functionSourceFile: /src/clamav/libclamav/yara_hash.c
    functionUses: 9
    functionsReached:
    - ROTATE_INT32
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t hash(\n    uint32_t seed,\n    uint8_t* buffer,\n    int
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_hash.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - size
    - table
    argTypes:
    - int
    - YR_HASH_TABLE**
    constantsTouched: []
    func_position:
      end: 113
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: yr_hash_table_create
    functionSourceFile: /src/clamav/libclamav/yara_hash.c
    functionUses: 0
    functionsReached:
    - yr_malloc
    linkageType: ''
    returnType: int
    signature: "int yr_hash_table_create(\n    int size,\n    YR_HASH_TABLE** table)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_value
      Src: /src/clamav/libclamav/yara_hash.c:133,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_hash.c:136,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_hash.c:138,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_hash.c:139,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_hash.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - table
    - free_value
    argTypes:
    - YR_HASH_TABLE*
    - YR_HASH_TABLE_FREE_VALUE_FUNC
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: yr_hash_table_destroy
    functionSourceFile: /src/clamav/libclamav/yara_hash.c
    functionUses: 0
    functionsReached:
    - free_value
    - yr_free
    linkageType: ''
    returnType: void
    signature: "void yr_hash_table_destroy(\n    YR_HASH_TABLE* table,\n    YR_HASH_TABLE_FREE_VALUE_FUNC
      free_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/clamav/libclamav/yara_hash.c:157,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_hash.c:157,1
    - Dst: hash
      Src: /src/clamav/libclamav/yara_hash.c:160,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_hash.c:160,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_hash.c:168,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_hash.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - table
    - key
    - ns
    argTypes:
    - YR_HASH_TABLE*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 179
    functionName: yr_hash_table_lookup
    functionSourceFile: /src/clamav/libclamav/yara_hash.c
    functionUses: 0
    functionsReached:
    - strlen
    - hash
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void * yr_hash_table_lookup(\n    YR_HASH_TABLE* table,\n    const
      char* key,\n    const char* ns)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_hash.c:190,1
    - Dst: yr_strdup
      Src: /src/clamav/libclamav/yara_hash.c:195,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_hash.c:199,1
    - Dst: yr_strdup
      Src: /src/clamav/libclamav/yara_hash.c:205,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_hash.c:209,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_hash.c:210,1
    - Dst: hash
      Src: /src/clamav/libclamav/yara_hash.c:221,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_hash.c:221,1
    - Dst: hash
      Src: /src/clamav/libclamav/yara_hash.c:224,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_hash.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - table
    - key
    - ns
    - value
    argTypes:
    - YR_HASH_TABLE*
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 232
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 232
    functionName: yr_hash_table_add
    functionSourceFile: /src/clamav/libclamav/yara_hash.c
    functionUses: 0
    functionsReached:
    - yr_strdup
    - hash
    - strlen
    - yr_malloc
    - yr_free
    linkageType: ''
    returnType: int
    signature: "int yr_hash_table_add(\n    YR_HASH_TABLE* table,\n    const char*
      key,\n    const char* ns,\n    void* value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:68,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/binhex.c:71,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/binhex.c:74,1
    - Dst: close
      Src: /src/clamav/libclamav/binhex.c:75,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/binhex.c:76,1
    - Dst: free
      Src: /src/clamav/libclamav/binhex.c:77,1
    - Dst: memset
      Src: /src/clamav/libclamav/binhex.c:81,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:89,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:98,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/binhex.c:101,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/binhex.c:103,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:105,1
    - Dst: memmove
      Src: /src/clamav/libclamav/binhex.c:106,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/binhex.c:114,1
    - Dst: lseek
      Src: /src/clamav/libclamav/binhex.c:120,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:121,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/binhex.c:125,1
    - Dst: memmove
      Src: /src/clamav/libclamav/binhex.c:131,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:136,1
    - Dst: memmove
      Src: /src/clamav/libclamav/binhex.c:142,1
    - Dst: memmove
      Src: /src/clamav/libclamav/binhex.c:147,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:152,1
    - Dst: memmove
      Src: /src/clamav/libclamav/binhex.c:157,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/binhex.c:163,1
    - Dst: lseek
      Src: /src/clamav/libclamav/binhex.c:168,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:169,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/binhex.c:173,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:179,1
    - Dst: lseek
      Src: /src/clamav/libclamav/binhex.c:180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:181,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/binhex.c:185,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:187,1
    - Dst: lseek
      Src: /src/clamav/libclamav/binhex.c:188,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:189,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/binhex.c:193,1
    - Dst: MIN
      Src: /src/clamav/libclamav/binhex.c:202,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/binhex.c:203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:223,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/binhex.c:231,1
    - Dst: close
      Src: /src/clamav/libclamav/binhex.c:267,1
    - Dst: close
      Src: /src/clamav/libclamav/binhex.c:268,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/binhex.c:270,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/binhex.c:271,1
    - Dst: free
      Src: /src/clamav/libclamav/binhex.c:273,1
    - Dst: free
      Src: /src/clamav/libclamav/binhex.c:274,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 200
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 276
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 276
    functionName: cli_binhex
    functionSourceFile: /src/clamav/libclamav/binhex.c
    functionUses: 0
    functionsReached:
    - close
    - memset
    - lseek
    - cli_magic_scan_desc
    - cli_unlink
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_gentempfd
    - cli_checklimits
    - MIN
    - cli_writen
    - memmove
    - free
    linkageType: ''
    returnType: int
    signature: int cli_binhex(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct rtf_state*
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: init_rtf_state
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_rtf_state(struct rtf_state* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct rtf_state*
    - struct rtf_state*
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: compare_state
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_state(const struct rtf_state* a, const struct rtf_state*
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: compare_state
      Src: /src/clamav/libclamav/rtf.c:161,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/rtf.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - stack
    - state
    argTypes:
    - struct stack*
    - struct rtf_state*
    constantsTouched: []
    func_position:
      end: 185
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 185
    functionName: push_state
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - compare_state
    - cli_max_realloc
    linkageType: ''
    returnType: int
    signature: int push_state(struct stack* stack, struct rtf_state* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - stack
    - state
    argTypes:
    - struct stack*
    - struct rtf_state*
    constantsTouched: []
    func_position:
      end: 208
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 208
    functionName: pop_state
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int pop_state(struct stack* stack, struct rtf_state* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tableInsert
      Src: /src/clamav/libclamav/rtf.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - table_t*
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: load_actions
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - tableInsert
    linkageType: ''
    returnType: int
    signature: int load_actions(table_t* t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/rtf.c:221,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/rtf.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - state
    - ctx
    - tmpdir
    argTypes:
    - struct rtf_state*
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: rtf_object_begin
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - malloc
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int rtf_object_begin(struct rtf_state* state, cli_ctx* ctx, const char*
      tmpdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:244,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:248,1
    - Dst: cli_scan_ole10
      Src: /src/clamav/libclamav/rtf.c:250,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/rtf.c:252,1
    - Dst: close
      Src: /src/clamav/libclamav/rtf.c:255,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/rtf.c:261,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - data
    - ctx
    argTypes:
    - struct rtf_object_data*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 267
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 267
    functionName: decode_and_scan
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - close
    - cli_magic_scan_desc
    - cli_unlink
    - cli_dbgmsg
    - free
    - cli_scan_ole10
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t decode_and_scan(struct rtf_object_data* data, cli_ctx* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/clamav/libclamav/rtf.c:282,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/rtf.c:293,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/rtf.c:295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:310,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:313,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:333,1
    - Dst: malloc
      Src: /src/clamav/libclamav/rtf.c:334,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/rtf.c:336,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/rtf.c:338,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:342,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:347,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:353,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:359,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:366,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:367,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:384,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:391,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:400,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/rtf.c:401,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:404,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rtf.c:416,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/rtf.c:417,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/rtf.c:424,1
    - Dst: decode_and_scan
      Src: /src/clamav/libclamav/rtf.c:431,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 157
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - struct rtf_state*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 445
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 445
    functionName: rtf_object_process
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - decode_and_scan
    - isxdigit
    - cli_max_malloc
    - cli_dbgmsg
    - cli_gentempfd
    - cli_writeint32
    - free
    - malloc
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int rtf_object_process(struct rtf_state* state, const unsigned char*
      input, const size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_and_scan
      Src: /src/clamav/libclamav/rtf.c:454,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:457,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:459,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - state
    - ctx
    argTypes:
    - struct rtf_state*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 463
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 463
    functionName: rtf_object_end
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - decode_and_scan
    - free
    linkageType: ''
    returnType: int
    signature: int rtf_object_end(struct rtf_state* state, cli_ctx* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - state
    - action
    argTypes:
    - struct rtf_state*
    - long
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: rtf_action
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rtf_action(struct rtf_state* state, long action)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_state
      Src: /src/clamav/libclamav/rtf.c:486,1
    - Dst: struct rtf_state*::cb_end
      Src: /src/clamav/libclamav/rtf.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - stack
    - state
    - ctx
    argTypes:
    - struct stack*
    - struct rtf_state*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 490
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 490
    functionName: cleanup_stack
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - struct rtf_state*::cb_end
    - pop_state
    linkageType: ''
    returnType: void
    signature: void cleanup_stack(struct stack* stack, struct rtf_state* state, cli_ctx*
      ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:517,1
    - Dst: memset
      Src: /src/clamav/libclamav/rtf.c:519,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/rtf.c:528,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/rtf.c:531,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/rtf.c:535,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/rtf.c:538,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:539,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:540,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:541,1
    - Dst: tableCreate
      Src: /src/clamav/libclamav/rtf.c:545,1
    - Dst: load_actions
      Src: /src/clamav/libclamav/rtf.c:546,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:547,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:548,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/rtf.c:550,1
    - Dst: free
      Src: /src/clamav/libclamav/rtf.c:551,1
    - Dst: tableDestroy
      Src: /src/clamav/libclamav/rtf.c:552,1
    - Dst: init_rtf_state
      Src: /src/clamav/libclamav/rtf.c:556,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/rtf.c:558,1
    - Dst: push_state
      Src: /src/clamav/libclamav/rtf.c:565,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:566,1
    - Dst: struct rtf_state::cb_end
      Src: /src/clamav/libclamav/rtf.c:573,1
    - Dst: pop_state
      Src: /src/clamav/libclamav/rtf.c:577,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:578,1
    - Dst: struct rtf_state::cb_begin
      Src: /src/clamav/libclamav/rtf.c:599,1
    - Dst: struct rtf_state::cb_process
      Src: /src/clamav/libclamav/rtf.c:603,1
    - Dst: struct rtf_state::cb_end
      Src: /src/clamav/libclamav/rtf.c:605,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/rtf.c:616,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:628,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/rtf.c:630,1
    - Dst: isspace
      Src: /src/clamav/libclamav/rtf.c:633,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/rtf.c:636,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/rtf.c:651,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rtf.c:654,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/rtf.c:660,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/rtf.c:672,1
    - Dst: struct rtf_state::cb_end
      Src: /src/clamav/libclamav/rtf.c:675,1
    - Dst: rtf_action
      Src: /src/clamav/libclamav/rtf.c:680,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 162
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 691
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 691
    functionName: cli_scanrtf
    functionSourceFile: /src/clamav/libclamav/rtf.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - tableFind
    - isspace
    - fmap_need_off_once_len
    - struct rtf_state::cb_end
    - load_actions
    - tableDestroy
    - rtf_action
    - isalpha
    - cli_dbgmsg
    - push_state
    - cli_rmdirs
    - memset
    - pop_state
    - struct rtf_state::cb_process
    - cli_max_malloc
    - free
    - init_rtf_state
    - struct rtf_state::cb_begin
    - mkdir
    - tableCreate
    - cli_errmsg
    - isdigit
    linkageType: ''
    returnType: int
    signature: int cli_scanrtf(cli_ctx* ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/adc.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - strm
    argTypes:
    - adc_stream*
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: adc_decompressInit
    functionSourceFile: /src/clamav/libclamav/adc.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int adc_decompressInit(adc_stream *strm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/adc.c:89,1
    - Dst: adc_dbgmsg
      Src: /src/clamav/libclamav/adc.c:130,1
    - Dst: adc_dbgmsg
      Src: /src/clamav/libclamav/adc.c:141,1
    - Dst: adc_dbgmsg
      Src: /src/clamav/libclamav/adc.c:152,1
    - Dst: adc_dbgmsg
      Src: /src/clamav/libclamav/adc.c:163,1
    - Dst: adc_dbgmsg
      Src: /src/clamav/libclamav/adc.c:170,1
    - Dst: adc_dbgmsg
      Src: /src/clamav/libclamav/adc.c:201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/adc.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/adc.c:209,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/adc.c:213,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/adc.c:247,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/adc.c:260,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 150
    argCount: 1
    argNames:
    - strm
    argTypes:
    - adc_stream*
    constantsTouched: []
    func_position:
      end: 265
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 265
    functionName: adc_decompress
    functionSourceFile: /src/clamav/libclamav/adc.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - adc_dbgmsg
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int adc_decompress(adc_stream *strm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/adc.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - strm
    argTypes:
    - adc_stream*
    constantsTouched: []
    func_position:
      end: 286
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 286
    functionName: adc_decompressEnd
    functionSourceFile: /src/clamav/libclamav/adc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int adc_decompressEnd(adc_stream *strm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/clamav/libclamav/xar.c:49,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/xar.c:52,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:53,1
    - Dst: free
      Src: /src/clamav/libclamav/xar.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - fd
    - tmpname
    argTypes:
    - cli_ctx*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: xar_cleanup_temp_file
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - cli_unlink
    - close
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: int
    signature: int xar_cleanup_temp_file(cli_ctx *ctx, int fd, char *tmpname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/xar.c:73,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:73,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/xar.c:74,1
    - Dst: strtol
      Src: /src/clamav/libclamav/xar.c:79,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:83,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:86,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - reader
    - value
    argTypes:
    - xmlTextReaderPtr
    - size_t*
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: xar_get_numeric_from_xml_element
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - xmlTextReaderConstValue
    - xmlTextReaderNodeType
    - cli_dbgmsg
    - xmlTextReaderRead
    - strtol
    linkageType: ''
    returnType: int
    signature: int xar_get_numeric_from_xml_element(xmlTextReaderPtr reader, size_t
      *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderGetAttribute
      Src: /src/clamav/libclamav/xar.c:107,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:115,1
    - Dst: xmlStrcasecmp
      Src: /src/clamav/libclamav/xar.c:116,1
    - Dst: xmlStrcasecmp
      Src: /src/clamav/libclamav/xar.c:118,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:121,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xar.c:126,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/xar.c:128,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:128,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/xar.c:129,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:131,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/xar.c:132,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/xar.c:133,1
    - Dst: xmlStrdup
      Src: /src/clamav/libclamav/xar.c:134,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:136,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:142,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:145,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - reader
    - cksum
    - hash
    argTypes:
    - xmlTextReaderPtr
    - unsigned char**
    - int*
    constantsTouched: []
    func_position:
      end: 146
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 146
    functionName: xar_get_checksum_values
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - xmlStrdup
    - xmlTextReaderGetAttribute
    - xmlTextReaderNodeType
    - xmlTextReaderConstValue
    - xmlFree
    - cli_dbgmsg
    - xmlStrlen
    - xmlStrcasecmp
    - xmlTextReaderRead
    linkageType: ''
    returnType: void
    signature: void xar_get_checksum_values(xmlTextReaderPtr reader, unsigned char
      **cksum, int *hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/xar.c:176,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/xar.c:178,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:181,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:182,1
    - Dst: xar_get_numeric_from_xml_element
      Src: /src/clamav/libclamav/xar.c:183,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:186,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:187,1
    - Dst: xar_get_numeric_from_xml_element
      Src: /src/clamav/libclamav/xar.c:188,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:191,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:192,1
    - Dst: xar_get_numeric_from_xml_element
      Src: /src/clamav/libclamav/xar.c:193,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:196,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:198,1
    - Dst: xar_get_checksum_values
      Src: /src/clamav/libclamav/xar.c:199,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:201,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:202,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:204,1
    - Dst: xar_get_checksum_values
      Src: /src/clamav/libclamav/xar.c:205,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:207,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:208,1
    - Dst: xmlTextReaderGetAttribute
      Src: /src/clamav/libclamav/xar.c:209,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:211,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:215,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:217,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:218,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:221,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:223,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:224,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:226,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:227,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:230,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xar.c:234,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:236,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:237,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:240,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:241,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:246,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:247,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:248,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:250,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:251,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:254,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:255,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:256,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/xar.c:260,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 92
    argCount: 9
    argNames:
    - reader
    - length
    - offset
    - size
    - encoding
    - a_cksum
    - a_hash
    - e_cksum
    - e_hash
    argTypes:
    - xmlTextReaderPtr
    - size_t*
    - size_t*
    - size_t*
    - int*
    - unsigned char**
    - int*
    - unsigned char**
    - int*
    constantsTouched: []
    func_position:
      end: 271
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 271
    functionName: xar_get_toc_data_values
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - xmlTextReaderGetAttribute
    - xmlTextReaderNodeType
    - xmlTextReaderConstLocalName
    - xmlFree
    - xmlStrEqual
    - cli_dbgmsg
    - xar_get_checksum_values
    - xmlTextReaderRead
    - xar_get_numeric_from_xml_element
    linkageType: ''
    returnType: int
    signature: "int xar_get_toc_data_values(xmlTextReaderPtr reader, size_t *length,
      size_t *offset, size_t *size, int *encoding,\n                                   unsigned
      char **a_cksum, int *a_hash, unsigned char **e_cksum, int *e_hash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/xar.c:290,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/xar.c:291,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:293,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:297,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:298,1
    - Dst: xmlStrEqual
      Src: /src/clamav/libclamav/xar.c:300,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xar.c:301,1
    - Dst: xmlTextReaderReadInnerXml
      Src: /src/clamav/libclamav/xar.c:302,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:304,1
    - Dst: xmlTextReaderNext
      Src: /src/clamav/libclamav/xar.c:305,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/xar.c:308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:309,1
    - Dst: cli_magic_scan_buff
      Src: /src/clamav/libclamav/xar.c:310,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/xar.c:314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:315,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:317,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/xar.c:318,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:319,1
    - Dst: xar_cleanup_temp_file
      Src: /src/clamav/libclamav/xar.c:322,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xar.c:327,1
    - Dst: xmlTextReaderNext
      Src: /src/clamav/libclamav/xar.c:330,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - reader
    - ctx
    argTypes:
    - xmlTextReaderPtr
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 334
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 334
    functionName: xar_scan_subdocuments
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - xmlTextReaderReadInnerXml
    - cli_magic_scan_buff
    - xmlTextReaderNodeType
    - xmlTextReaderConstLocalName
    - xmlFree
    - xmlStrEqual
    - cli_dbgmsg
    - xmlStrlen
    - xmlTextReaderNext
    - cli_gentempfd
    - xmlTextReaderRead
    - cli_writen
    - xar_cleanup_temp_file
    linkageType: ''
    returnType: int
    signature: int xar_scan_subdocuments(xmlTextReaderPtr reader, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/xar.c:342,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/xar.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - hash
    - sc
    - mc
    argTypes:
    - int
    - void**
    - void**
    constantsTouched: []
    func_position:
      end: 360
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 360
    functionName: xar_hash_init
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - cl_hash_init
    linkageType: ''
    returnType: void
    signature: void *xar_hash_init(int hash, void **sc, void **mc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/xar.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - hash_ctx
    - data
    - size
    - hash
    argTypes:
    - void*
    - void*
    - unsigned long
    - int
    constantsTouched: []
    func_position:
      end: 374
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 374
    functionName: xar_hash_update
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - cl_update_hash
    linkageType: ''
    returnType: void
    signature: void xar_hash_update(void *hash_ctx, void *data, unsigned long size,
      int hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/xar.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - hash_ctx
    - result
    - hash
    argTypes:
    - void*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 388
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 388
    functionName: xar_hash_final
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - cl_finish_hash
    linkageType: ''
    returnType: void
    signature: void xar_hash_final(void *hash_ctx, void *result, int hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/xar.c:408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - hash
    - result
    - expected
    argTypes:
    - int
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 409
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 409
    functionName: xar_hash_check
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int xar_hash_check(int hash, const void *result, const void *expected)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/xar.c:438,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/xar.c:441,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:442,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/xar.c:445,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:448,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:450,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/xar.c:453,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/xar.c:454,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/xar.c:455,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/xar.c:456,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/xar.c:457,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/xar.c:467,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:469,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/xar.c:473,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:475,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/xar.c:481,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:483,1
    - Dst: inflate
      Src: /src/clamav/libclamav/xar.c:487,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/xar.c:489,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:490,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/xar.c:494,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:496,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:502,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:514,1
    - Dst: cli_magic_scan_buff
      Src: /src/clamav/libclamav/xar.c:515,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/xar.c:522,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:523,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/xar.c:526,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:527,1
    - Dst: xar_cleanup_temp_file
      Src: /src/clamav/libclamav/xar.c:529,1
    - Dst: xar_cleanup_temp_file
      Src: /src/clamav/libclamav/xar.c:532,1
    - Dst: xmlReaderForMemory
      Src: /src/clamav/libclamav/xar.c:538,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:540,1
    - Dst: xar_scan_subdocuments
      Src: /src/clamav/libclamav/xar.c:544,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:546,1
    - Dst: xar_get_toc_data_values
      Src: /src/clamav/libclamav/xar.c:553,1
    - Dst: xar_cleanup_temp_file
      Src: /src/clamav/libclamav/xar.c:563,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/xar.c:571,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:572,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:576,1
    - Dst: xar_hash_init
      Src: /src/clamav/libclamav/xar.c:580,1
    - Dst: xar_hash_init
      Src: /src/clamav/libclamav/xar.c:581,1
    - Dst: memset
      Src: /src/clamav/libclamav/xar.c:586,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/xar.c:587,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:588,1
    - Dst: MIN
      Src: /src/clamav/libclamav/xar.c:598,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/xar.c:599,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:600,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/xar.c:601,1
    - Dst: inflate
      Src: /src/clamav/libclamav/xar.c:612,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:614,1
    - Dst: xar_hash_update
      Src: /src/clamav/libclamav/xar.c:623,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/xar.c:625,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:626,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/xar.c:627,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/xar.c:632,1
    - Dst: xar_hash_update
      Src: /src/clamav/libclamav/xar.c:645,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/xar.c:648,1
    - Dst: memset
      Src: /src/clamav/libclamav/xar.c:664,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:666,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/xar.c:671,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/xar.c:674,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:675,1
    - Dst: __lzma_wrap_free
      Src: /src/clamav/libclamav/xar.c:678,1
    - Dst: xar_hash_update
      Src: /src/clamav/libclamav/xar.c:686,1
    - Dst: cli_LzmaInit
      Src: /src/clamav/libclamav/xar.c:688,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:690,1
    - Dst: __lzma_wrap_free
      Src: /src/clamav/libclamav/xar.c:692,1
    - Dst: MIN
      Src: /src/clamav/libclamav/xar.c:707,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/xar.c:708,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/xar.c:711,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:712,1
    - Dst: __lzma_wrap_free
      Src: /src/clamav/libclamav/xar.c:715,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/xar.c:716,1
    - Dst: cli_LzmaDecode
      Src: /src/clamav/libclamav/xar.c:720,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:722,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:734,1
    - Dst: xar_hash_update
      Src: /src/clamav/libclamav/xar.c:739,1
    - Dst: xar_hash_update
      Src: /src/clamav/libclamav/xar.c:741,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/xar.c:748,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:749,1
    - Dst: __lzma_wrap_free
      Src: /src/clamav/libclamav/xar.c:751,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/xar.c:752,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/xar.c:759,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/xar.c:767,1
    - Dst: __lzma_wrap_free
      Src: /src/clamav/libclamav/xar.c:768,1
    - Dst: MIN
      Src: /src/clamav/libclamav/xar.c:780,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/xar.c:782,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/xar.c:784,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:785,1
    - Dst: xar_hash_update
      Src: /src/clamav/libclamav/xar.c:792,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/xar.c:794,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:795,1
    - Dst: xar_hash_final
      Src: /src/clamav/libclamav/xar.c:804,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:807,1
    - Dst: xar_hash_final
      Src: /src/clamav/libclamav/xar.c:811,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:814,1
    - Dst: cli_hex2str
      Src: /src/clamav/libclamav/xar.c:820,1
    - Dst: xar_hash_check
      Src: /src/clamav/libclamav/xar.c:821,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:822,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:825,1
    - Dst: free
      Src: /src/clamav/libclamav/xar.c:827,1
    - Dst: cli_hex2str
      Src: /src/clamav/libclamav/xar.c:832,1
    - Dst: xar_hash_check
      Src: /src/clamav/libclamav/xar.c:833,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:834,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:837,1
    - Dst: free
      Src: /src/clamav/libclamav/xar.c:839,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/xar.c:843,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xar.c:850,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xar.c:854,1
    - Dst: xar_cleanup_temp_file
      Src: /src/clamav/libclamav/xar.c:860,1
    - Dst: xar_hash_final
      Src: /src/clamav/libclamav/xar.c:862,1
    - Dst: xar_hash_final
      Src: /src/clamav/libclamav/xar.c:864,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xar.c:868,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xar.c:870,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/xar.c:871,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/xar.c:872,1
    - Dst: free
      Src: /src/clamav/libclamav/xar.c:875,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xar.c:880,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 356
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 885
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 885
    functionName: cli_scanxar
    functionSourceFile: /src/clamav/libclamav/xar.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - xar_get_toc_data_values
    - cli_LzmaDecode
    - inflateInit
    - inflate
    - xar_hash_check
    - xar_hash_init
    - xar_cleanup_temp_file
    - xar_hash_update
    - cli_LzmaInit
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_checklimits
    - MIN
    - inflateEnd
    - cli_writen
    - memset
    - xar_hash_final
    - fmap_readn
    - be64_to_host
    - cli_max_malloc
    - xmlFree
    - xmlReaderForMemory
    - xmlFreeTextReader
    - cli_gentempfd
    - xar_scan_subdocuments
    - cli_hex2str
    - free
    - xmlTextReaderClose
    - cli_magic_scan_buff
    - cli_strerror
    - be16_to_host
    - cli_LzmaShutdown
    - be32_to_host
    - __lzma_wrap_free
    linkageType: ''
    returnType: int
    signature: int cli_scanxar(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:84,1
    - Dst: MIN
      Src: /src/clamav/libclamav/msxml.c:89,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:96,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/msxml.c:100,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/msxml.c:102,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - cbdata
    argTypes:
    - struct msxml_cbdata*
    constantsTouched: []
    func_position:
      end: 116
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 116
    functionName: msxml_read_cb_new_window
    functionSourceFile: /src/clamav/libclamav/msxml.c
    functionUses: 0
    functionsReached:
    - MIN
    - cli_msxmlmsg
    - fmap_need_off_once
    - cli_errmsg
    linkageType: ''
    returnType: size_t
    signature: size_t msxml_read_cb_new_window(struct msxml_cbdata *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:125,1
    - Dst: msxml_read_cb_new_window
      Src: /src/clamav/libclamav/msxml.c:129,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:133,1
    - Dst: msxml_read_cb_new_window
      Src: /src/clamav/libclamav/msxml.c:148,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:151,1
    - Dst: MIN
      Src: /src/clamav/libclamav/msxml.c:159,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:160,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/msxml.c:201,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml.c:206,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 3
    argNames:
    - ctx
    - buffer
    - buffer_len
    argTypes:
    - void*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 224
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 224
    functionName: msxml_read_cb
    functionSourceFile: /src/clamav/libclamav/msxml.c
    functionUses: 0
    functionsReached:
    - MIN
    - cli_msxmlmsg
    - msxml_read_cb_new_window
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int msxml_read_cb(void *ctx, char *buffer, int buffer_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml.c:232,1
    - Dst: memset
      Src: /src/clamav/libclamav/msxml.c:237,1
    - Dst: xmlReaderForIO
      Src: /src/clamav/libclamav/msxml.c:240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml.c:242,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml.c:244,1
    - Dst: cli_msxml_parse_document
      Src: /src/clamav/libclamav/msxml.c:249,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/msxml.c:251,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/msxml.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 254
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 254
    functionName: cli_scanmsxml
    functionSourceFile: /src/clamav/libclamav/msxml.c
    functionUses: 0
    functionsReached:
    - memset
    - xmlReaderForIO
    - xmlTextReaderClose
    - cli_dbgmsg
    - xmlFreeTextReader
    - cli_msxml_parse_document
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanmsxml(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/regex_pcre.c:38,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/regex_pcre.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - ext
    argTypes:
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: cli_pcre_malloc
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_max_malloc
    linkageType: ''
    returnType: void
    signature: void *cli_pcre_malloc(size_t size, void *ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/regex_pcre.c:44,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_pcre.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - ext
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: cli_pcre_free
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - free
    linkageType: ''
    returnType: void
    signature: void cli_pcre_free(void *ptr, void *ext)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:80,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - pd
    - opt
    - errout
    argTypes:
    - struct cli_pcre_data*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 89
    functionName: cli_pcre_addoptions
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pcre_addoptions(struct cli_pcre_data *pd, const char
      **opt, int errout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:99,1
    - Dst: pcre2_general_context_create
      Src: /src/clamav/libclamav/regex_pcre.c:103,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:105,1
    - Dst: pcre2_compile_context_create
      Src: /src/clamav/libclamav/regex_pcre.c:109,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:111,1
    - Dst: pcre2_general_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:112,1
    - Dst: pcre2_compile
      Src: /src/clamav/libclamav/regex_pcre.c:118,1
    - Dst: pcre2_compile
      Src: /src/clamav/libclamav/regex_pcre.c:120,1
    - Dst: pcre2_get_error_message
      Src: /src/clamav/libclamav/regex_pcre.c:123,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:124,1
    - Dst: pcre2_compile_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:126,1
    - Dst: pcre2_general_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:127,1
    - Dst: pcre2_match_context_create
      Src: /src/clamav/libclamav/regex_pcre.c:132,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:134,1
    - Dst: pcre2_compile_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:135,1
    - Dst: pcre2_general_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:136,1
    - Dst: pcre2_set_match_limit
      Src: /src/clamav/libclamav/regex_pcre.c:140,1
    - Dst: pcre2_set_recursion_limit
      Src: /src/clamav/libclamav/regex_pcre.c:141,1
    - Dst: pcre2_compile_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:144,1
    - Dst: pcre2_general_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - pd
    - match_limit
    - match_limit_recursion
    - options
    - opt_override
    argTypes:
    - struct cli_pcre_data*
    - long long unsigned
    - long long unsigned
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 147
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 147
    functionName: cli_pcre_compile
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 1
    functionsReached:
    - pcre2_compile
    - cli_errmsg
    - pcre2_match_context_create
    - pcre2_set_recursion_limit
    - pcre2_compile_context_create
    - pcre2_set_match_limit
    - pcre2_compile_context_free
    - pcre2_general_context_free
    - pcre2_get_error_message
    - pcre2_general_context_create
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pcre_compile(struct cli_pcre_data *pd, long long unsigned
      match_limit, long long unsigned match_limit_recursion, unsigned int options,
      int opt_override)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match
      Src: /src/clamav/libclamav/regex_pcre.c:162,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:168,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:172,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:175,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_pcre.c:178,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/clamav/libclamav/regex_pcre.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - pd
    - buffer
    - buflen
    - override_offset
    - options
    - results
    argTypes:
    - struct cli_pcre_data*
    - unsigned char*
    - size_t
    - size_t
    - int
    - struct cli_pcre_results*
    constantsTouched: []
    func_position:
      end: 191
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 191
    functionName: cli_pcre_match
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 1
    functionsReached:
    - pcre2_get_ovector_pointer
    - cli_dbgmsg
    - pcre2_match
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int cli_pcre_match(struct cli_pcre_data *pd, const unsigned char *buffer,
      size_t buflen, size_t override_offset, int options, struct cli_pcre_results
      *results)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_pattern_info
      Src: /src/clamav/libclamav/regex_pcre.c:210,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:213,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:215,1
    - Dst: pcre2_pattern_info
      Src: /src/clamav/libclamav/regex_pcre.c:218,1
    - Dst: pcre2_pattern_info
      Src: /src/clamav/libclamav/regex_pcre.c:219,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/regex_pcre.c:236,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - pd
    - buffer
    - ovector
    argTypes:
    - struct cli_pcre_data*
    - unsigned char*
    - PCRE2_SIZE*
    constantsTouched: []
    func_position:
      end: 247
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 247
    functionName: named_substr_print
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 0
    functionsReached:
    - pcre2_pattern_info
    - snprintf
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void named_substr_print(const struct cli_pcre_data *pd, const unsigned
      char *buffer, PCRE2_SIZE *ovector)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_get_ovector_pointer
      Src: /src/clamav/libclamav/regex_pcre.c:260,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:264,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:265,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:266,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/regex_pcre.c:275,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/regex_pcre.c:286,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:288,1
    - Dst: named_substr_print
      Src: /src/clamav/libclamav/regex_pcre.c:292,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:294,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:296,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:299,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/regex_pcre.c:300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - pd
    - buffer
    - buflen
    - rc
    - results
    argTypes:
    - struct cli_pcre_data*
    - unsigned char*
    - size_t
    - int
    - struct cli_pcre_results*
    constantsTouched: []
    func_position:
      end: 302
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 302
    functionName: cli_pcre_report
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 1
    functionsReached:
    - snprintf
    - cli_warnmsg
    - pcre2_get_ovector_pointer
    - cli_dbgmsg
    - named_substr_print
    linkageType: ''
    returnType: void
    signature: void cli_pcre_report(const struct cli_pcre_data *pd, const unsigned
      char *buffer, size_t buflen, int rc, struct cli_pcre_results *results)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/clamav/libclamav/regex_pcre.c:310,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/clamav/libclamav/regex_pcre.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - results
    - pd
    argTypes:
    - struct cli_pcre_results*
    - struct cli_pcre_data*
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: cli_pcre_results_reset
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_create_from_pattern
    - pcre2_match_data_free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pcre_results_reset(struct cli_pcre_results *results,
      const struct cli_pcre_data *pd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/clamav/libclamav/regex_pcre.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - results
    argTypes:
    - struct cli_pcre_results*
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: cli_pcre_results_free
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 1
    functionsReached:
    - pcre2_match_data_free
    linkageType: ''
    returnType: void
    signature: void cli_pcre_results_free(struct cli_pcre_results *results)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code_free
      Src: /src/clamav/libclamav/regex_pcre.c:328,1
    - Dst: pcre2_match_context_free
      Src: /src/clamav/libclamav/regex_pcre.c:333,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_pcre.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pd
    argTypes:
    - struct cli_pcre_data*
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 341
    functionName: cli_pcre_free_single
    functionSourceFile: /src/clamav/libclamav/regex_pcre.c
    functionUses: 1
    functionsReached:
    - pcre2_match_context_free
    - pcre2_code_free
    - free
    linkageType: ''
    returnType: void
    signature: void cli_pcre_free_single(struct cli_pcre_data *pd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/execs.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - exeinfo
    - offset
    argTypes:
    - struct cli_exe_info*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: cli_exe_info_init
    functionSourceFile: /src/clamav/libclamav/execs.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cli_exe_info_init(struct cli_exe_info *exeinfo, uint32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/execs.c:61,1
    - Dst: cli_hashset_destroy
      Src: /src/clamav/libclamav/execs.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - exeinfo
    argTypes:
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: cli_exe_info_destroy
    functionSourceFile: /src/clamav/libclamav/execs.c
    functionUses: 0
    functionsReached:
    - cli_hashset_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cli_exe_info_destroy(struct cli_exe_info *exeinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:76,1
    - Dst: strlen
      Src: /src/clamav/libclamav/msxml_parser.c:81,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/msxml_parser.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ictx
    - key
    - keylen
    argTypes:
    - struct msxml_ictx*
    - xmlChar*
    - size_t
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: msxml_check_key
    functionSourceFile: /src/clamav/libclamav/msxml_parser.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_dbgmsg
    - strncasecmp
    linkageType: ''
    returnType: struct key_entry
    signature: struct key_entry *msxml_check_key(struct msxml_ictx *ictx, const xmlChar
      *key, size_t keylen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmlTextReaderLocatorBaseURI
      Src: /src/clamav/libclamav/msxml_parser.c:92,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/msxml_parser.c:94,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:99,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:103,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:106,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - arg
    - msg
    - severity
    - locator
    argTypes:
    - void*
    - char*
    - xmlParserSeverities
    - xmlTextReaderLocatorPtr
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: msxml_error_handler
    functionSourceFile: /src/clamav/libclamav/msxml_parser.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - xmlTextReaderLocatorBaseURI
    - free
    linkageType: ''
    returnType: void
    signature: void msxml_error_handler(void *arg, const char *msg, xmlParserSeverities
      severity, xmlTextReaderLocatorPtr locator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/clamav/libclamav/msxml_parser.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - value
    - len
    - val
    argTypes:
    - char*
    - size_t
    - int32_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: msxml_is_int
    functionSourceFile: /src/clamav/libclamav/msxml_parser.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int msxml_is_int(const char *value, size_t len, int32_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/msxml_parser.c:135,1
    - Dst: msxml_is_int
      Src: /src/clamav/libclamav/msxml_parser.c:140,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/msxml_parser.c:140,1
    - Dst: json_object_new_int
      Src: /src/clamav/libclamav/msxml_parser.c:141,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/msxml_parser.c:142,1
    - Dst: json_object_new_boolean
      Src: /src/clamav/libclamav/msxml_parser.c:143,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/msxml_parser.c:144,1
    - Dst: json_object_new_boolean
      Src: /src/clamav/libclamav/msxml_parser.c:145,1
    - Dst: json_object_new_string
      Src: /src/clamav/libclamav/msxml_parser.c:147,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/msxml_parser.c:151,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/msxml_parser.c:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - wrkptr
    - arrname
    - node_value
    argTypes:
    - json_object*
    - char*
    - xmlChar*
    constantsTouched: []
    func_position:
      end: 157
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 157
    functionName: msxml_parse_value
    functionSourceFile: /src/clamav/libclamav/msxml_parser.c
    functionUses: 0
    functionsReached:
    - msxml_is_int
    - json_object_new_string
    - xmlStrcmp
    - json_object_array_add
    - xmlStrlen
    - json_object_new_boolean
    - json_object_new_int
    - cli_errmsg
    - cli_jsonarray
    linkageType: ''
    returnType: int
    signature: int msxml_parse_value(json_object *wrkptr, const char *arrname, const
      xmlChar *node_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:174,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:178,1
    - Dst: track_json
      Src: /src/clamav/libclamav/msxml_parser.c:180,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:181,1
    - Dst: xmlTextReaderNext
      Src: /src/clamav/libclamav/msxml_parser.c:187,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:188,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/msxml_parser.c:193,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/msxml_parser.c:197,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/msxml_parser.c:198,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:208,1
    - Dst: track_json
      Src: /src/clamav/libclamav/msxml_parser.c:210,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:211,1
    - Dst: msxml_check_key
      Src: /src/clamav/libclamav/msxml_parser.c:220,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/msxml_parser.c:220,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:222,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:223,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:224,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:228,1
    - Dst: xmlTextReaderNext
      Src: /src/clamav/libclamav/msxml_parser.c:230,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:231,1
    - Dst: track_json
      Src: /src/clamav/libclamav/msxml_parser.c:235,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/msxml_parser.c:237,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/msxml_parser.c:239,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:244,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/msxml_parser.c:250,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msxml_parser.c:251,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msxml_parser.c:254,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:256,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/msxml_parser.c:262,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:266,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/msxml_parser.c:268,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:271,1
    - Dst: xmlTextReaderHasAttributes
      Src: /src/clamav/libclamav/msxml_parser.c:276,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/msxml_parser.c:281,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:285,1
    - Dst: xmlTextReaderMoveToNextAttribute
      Src: /src/clamav/libclamav/msxml_parser.c:287,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/msxml_parser.c:288,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/msxml_parser.c:289,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:291,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msxml_parser.c:292,1
    - Dst: xmlTextReaderHasAttributes
      Src: /src/clamav/libclamav/msxml_parser.c:301,1
    - Dst: xmlTextReaderMoveToFirstAttribute
      Src: /src/clamav/libclamav/msxml_parser.c:303,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/msxml_parser.c:306,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/msxml_parser.c:307,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:316,1
    - Dst: xmlTextReaderMoveToNextAttribute
      Src: /src/clamav/libclamav/msxml_parser.c:318,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/msxml_parser.c:319,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/msxml_parser.c:320,1
    - Dst: xmlTextReaderMoveToElement
      Src: /src/clamav/libclamav/msxml_parser.c:329,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/clamav/libclamav/msxml_parser.c:333,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:335,1
    - Dst: xmlTextReaderNext
      Src: /src/clamav/libclamav/msxml_parser.c:337,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:338,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:344,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:345,1
    - Dst: track_json
      Src: /src/clamav/libclamav/msxml_parser.c:348,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/msxml_parser.c:348,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/msxml_parser.c:351,1
    - Dst: msxml_parse_element
      Src: /src/clamav/libclamav/msxml_parser.c:357,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/msxml_parser.c:364,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:366,1
    - Dst: msxml_parse_value
      Src: /src/clamav/libclamav/msxml_parser.c:370,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:374,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:384,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/msxml_parser.c:386,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/msxml_parser.c:387,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/msxml_parser.c:391,1
    - Dst: close
      Src: /src/clamav/libclamav/msxml_parser.c:392,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/msxml_parser.c:394,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:395,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:399,1
    - Dst: struct msxml_ctx*::scan_cb
      Src: /src/clamav/libclamav/msxml_parser.c:401,1
    - Dst: close
      Src: /src/clamav/libclamav/msxml_parser.c:402,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/msxml_parser.c:404,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:406,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:419,1
    - Dst: cl_base64_decode
      Src: /src/clamav/libclamav/msxml_parser.c:421,1
    - Dst: strlen
      Src: /src/clamav/libclamav/msxml_parser.c:421,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/msxml_parser.c:423,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:424,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:425,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/msxml_parser.c:429,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/msxml_parser.c:430,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:431,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/msxml_parser.c:435,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:436,1
    - Dst: close
      Src: /src/clamav/libclamav/msxml_parser.c:437,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/msxml_parser.c:439,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:440,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:443,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:445,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/msxml_parser.c:447,1
    - Dst: close
      Src: /src/clamav/libclamav/msxml_parser.c:448,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/msxml_parser.c:450,1
    - Dst: free
      Src: /src/clamav/libclamav/msxml_parser.c:451,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:458,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:459,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/msxml_parser.c:463,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:465,1
    - Dst: struct msxml_ctx*::comment_cb
      Src: /src/clamav/libclamav/msxml_parser.c:469,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:476,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:477,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:482,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:483,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:487,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/msxml_parser.c:488,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:490,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/msxml_parser.c:494,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:495,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:500,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:501,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/msxml_parser.c:507,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/msxml_parser.c:508,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:510,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:512,1
    - Dst: check_state
      Src: /src/clamav/libclamav/msxml_parser.c:513,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:519,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:522,1
    - Dst: cli_msxmlmsg
      Src: /src/clamav/libclamav/msxml_parser.c:525,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:528,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 259
    argCount: 4
    argNames:
    - mxctx
    - reader
    - rlvl
    - jptr
    argTypes:
    - struct msxml_ctx*
    - xmlTextReaderPtr
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 532
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 532
    functionName: msxml_parse_element
    functionSourceFile: /src/clamav/libclamav/msxml_parser.c
    functionUses: 1
    functionsReached:
    - cli_magic_scan_desc
    - cli_warnmsg
    - cli_msxmlmsg
    - cl_base64_decode
    - xmlStrcmp
    - cli_json_timeout_cycle_check
    - xmlStrlen
    - struct msxml_ctx*::comment_cb
    - xmlTextReaderMoveToFirstAttribute
    - cli_jsonarray
    - cli_jsonobj
    - cli_jsonint
    - xmlTextReaderConstValue
    - cli_dbgmsg
    - xmlTextReaderNext
    - cli_writen
    - struct msxml_ctx*::scan_cb
    - close
    - check_state
    - cli_jsonstr
    - cli_unlink
    - xmlTextReaderHasAttributes
    - xmlTextReaderNodeType
    - xmlTextReaderConstLocalName
    - xmlTextReaderIsEmptyElement
    - cli_gentempfd
    - xmlTextReaderRead
    - msxml_parse_element
    - free
    - strlen
    - xmlTextReaderMoveToElement
    - msxml_check_key
    - json_object_object_get_ex
    - xmlTextReaderMoveToNextAttribute
    - msxml_parse_value
    - track_json
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t msxml_parse_element(struct msxml_ctx *mxctx, xmlTextReaderPtr
      reader, int rlvl, void *jptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/msxml_parser.c:547,1
    - Dst: xmlTextReaderSetErrorHandler
      Src: /src/clamav/libclamav/msxml_parser.c:570,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/msxml_parser.c:573,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/msxml_parser.c:574,1
    - Dst: msxml_parse_element
      Src: /src/clamav/libclamav/msxml_parser.c:577,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:580,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/msxml_parser.c:583,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:602,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:605,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:608,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:611,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:614,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/msxml_parser.c:617,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msxml_parser.c:632,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 6
    argNames:
    - ctx
    - reader
    - keys
    - num_keys
    - flags
    - mxctx
    argTypes:
    - cli_ctx*
    - xmlTextReaderPtr
    - struct key_entry*
    - size_t
    - uint32_t
    - struct msxml_ctx*
    constantsTouched: []
    func_position:
      end: 637
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 637
    functionName: cli_msxml_parse_document
    functionSourceFile: /src/clamav/libclamav/msxml_parser.c
    functionUses: 1
    functionsReached:
    - memset
    - cli_warnmsg
    - xmlTextReaderSetErrorHandler
    - cli_json_timeout_cycle_check
    - cli_dbgmsg
    - xmlTextReaderRead
    - msxml_parse_element
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_msxml_parse_document(cli_ctx *ctx, xmlTextReaderPtr
      reader, const struct key_entry *keys, const size_t num_keys, uint32_t flags,
      struct msxml_ctx *mxctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/gpt.c:78,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/gpt.c:80,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/gpt.c:83,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/gpt.c:85,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/gpt.c:88,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/gpt.c:90,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/gpt.c:93,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/gpt.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - map
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 99
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 99
    functionName: gpt_detect_size
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 0
    functionsReached:
    - fmap_need_off_once
    - strncmp
    linkageType: ''
    returnType: size_t
    signature: size_t gpt_detect_size(fmap_t *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:110,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gpt.c:113,1
    - Dst: gpt_detect_size
      Src: /src/clamav/libclamav/gpt.c:120,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:124,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:132,1
    - Dst: gpt_check_mbr
      Src: /src/clamav/libclamav/gpt.c:139,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:147,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:148,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:149,1
    - Dst: gpt_validate_header
      Src: /src/clamav/libclamav/gpt.c:156,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:157,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:158,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:164,1
    - Dst: gpt_validate_header
      Src: /src/clamav/libclamav/gpt.c:169,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:170,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:171,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:176,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:181,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:182,1
    - Dst: gpt_validate_header
      Src: /src/clamav/libclamav/gpt.c:183,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:189,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:190,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:194,1
    - Dst: gpt_partition_intersection
      Src: /src/clamav/libclamav/gpt.c:200,1
    - Dst: gpt_partition_intersection
      Src: /src/clamav/libclamav/gpt.c:204,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:213,1
    - Dst: gpt_scan_partitions
      Src: /src/clamav/libclamav/gpt.c:214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:220,1
    - Dst: gpt_scan_partitions
      Src: /src/clamav/libclamav/gpt.c:221,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:227,1
    - Dst: gpt_scan_partitions
      Src: /src/clamav/libclamav/gpt.c:228,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:232,1
    - Dst: gpt_scan_partitions
      Src: /src/clamav/libclamav/gpt.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:239,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 123
    argCount: 2
    argNames:
    - ctx
    - sectorsize
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 246
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 246
    functionName: cli_scangpt
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 0
    functionsReached:
    - gpt_detect_size
    - gpt_scan_partitions
    - gpt_check_mbr
    - fmap_readn
    - gpt_validate_header
    - gpt_parsemsg
    - cli_dbgmsg
    - gpt_partition_intersection
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scangpt(cli_ctx *ctx, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/gpt.c:260,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/gpt.c:261,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:262,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:263,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:264,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:265,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:266,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:267,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:268,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:269,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:270,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:271,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:272,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:275,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:276,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:277,1
    - Dst: gpt_printGUID
      Src: /src/clamav/libclamav/gpt.c:278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:279,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:280,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:296,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:302,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:303,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:304,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/gpt.c:306,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:314,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:315,1
    - Dst: cli_utf16toascii
      Src: /src/clamav/libclamav/gpt.c:321,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:325,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:326,1
    - Dst: gpt_printGUID
      Src: /src/clamav/libclamav/gpt.c:327,1
    - Dst: gpt_printGUID
      Src: /src/clamav/libclamav/gpt.c:328,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:329,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:330,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/gpt.c:337,1
    - Dst: free
      Src: /src/clamav/libclamav/gpt.c:343,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:353,1
    - Dst: free
      Src: /src/clamav/libclamav/gpt.c:359,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 78
    argCount: 3
    argNames:
    - ctx
    - hdr
    - sectorsize
    argTypes:
    - cli_ctx*
    - struct gpt_header
    - size_t
    constantsTouched: []
    func_position:
      end: 362
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 362
    functionName: gpt_scan_partitions
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 1
    functionsReached:
    - le32_to_host
    - cli_utf16toascii
    - le16_to_host
    - be64_to_host
    - fmap_readn
    - le64_to_host
    - gpt_parsemsg
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - free
    - be32_to_host
    - gpt_printGUID
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t gpt_scan_partitions(cli_ctx *ctx, struct gpt_header hdr,
      size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:375,1
    - Dst: crc32
      Src: /src/clamav/libclamav/gpt.c:377,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:379,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:380,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/gpt.c:386,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/gpt.c:387,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:388,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:390,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:391,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:392,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:393,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:394,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:395,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:396,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:397,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:398,1
    - Dst: gpt_printSectors
      Src: /src/clamav/libclamav/gpt.c:406,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:410,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:418,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:433,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:438,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:443,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:449,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:454,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:461,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:469,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/gpt.c:477,1
    - Dst: crc32
      Src: /src/clamav/libclamav/gpt.c:478,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:480,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:481,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 3
    argNames:
    - ctx
    - hdr
    - sectorsize
    argTypes:
    - cli_ctx*
    - struct gpt_header
    - size_t
    constantsTouched: []
    func_position:
      end: 489
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 489
    functionName: gpt_validate_header
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 1
    functionsReached:
    - le32_to_host
    - fmap_need_off_once
    - be64_to_host
    - gpt_printSectors
    - le64_to_host
    - gpt_parsemsg
    - cli_dbgmsg
    - crc32
    - be32_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t gpt_validate_header(cli_ctx *ctx, struct gpt_header hdr,
      size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:502,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:503,1
    - Dst: mbr_convert_to_host
      Src: /src/clamav/libclamav/gpt.c:509,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/gpt.c:515,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/gpt.c:522,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/gpt.c:528,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/gpt.c:531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - sectorsize
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 542
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 542
    functionName: gpt_check_mbr
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - cli_dbgmsg
    - mbr_convert_to_host
    - fmap_readn
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t gpt_check_mbr(cli_ctx *ctx, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:561,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:562,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:565,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:566,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:575,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:576,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:577,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:578,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:579,1
    - Dst: gpt_parsemsg
      Src: /src/clamav/libclamav/gpt.c:580,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/gpt.c:582,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/gpt.c:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - ctx
    - sectorsize
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 586
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 586
    functionName: gpt_printSectors
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 1
    functionsReached:
    - UNUSEDPARAM
    - gpt_parsemsg
    - cli_dbgmsg
    - fmap_readn
    linkageType: ''
    returnType: void
    signature: void gpt_printSectors(cli_ctx *ctx, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - GUID
    - msg
    argTypes:
    - uint8_t[]
    - char*
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: gpt_printGUID
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void gpt_printGUID(uint8_t GUID[], const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:609,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/gpt.c:610,1
    - Dst: partition_intersection_list_init
      Src: /src/clamav/libclamav/gpt.c:612,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gpt.c:624,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:625,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:631,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/gpt.c:632,1
    - Dst: partition_intersection_list_check
      Src: /src/clamav/libclamav/gpt.c:642,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gpt.c:645,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gpt.c:648,1
    - Dst: partition_intersection_list_free
      Src: /src/clamav/libclamav/gpt.c:665,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - ctx
    - hdr
    - sectorsize
    argTypes:
    - cli_ctx*
    - struct gpt_header
    - size_t
    constantsTouched: []
    func_position:
      end: 667
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 667
    functionName: gpt_partition_intersection
    functionSourceFile: /src/clamav/libclamav/gpt.c
    functionUses: 1
    functionsReached:
    - partition_intersection_list_free
    - le32_to_host
    - partition_intersection_list_init
    - partition_intersection_list_check
    - cli_append_potentially_unwanted
    - fmap_readn
    - le64_to_host
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t gpt_partition_intersection(cli_ctx *ctx, struct gpt_header
      hdr, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/7z_iface.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: FileInStream_fmap_Read
    functionSourceFile: /src/clamav/libclamav/7z_iface.c
    functionUses: 0
    functionsReached:
    - fmap_readn
    linkageType: ''
    returnType: SRes
    signature: SRes FileInStream_fmap_Read(void *pp, void *buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pp
    - pos
    - origin
    argTypes:
    - void*
    - Int64*
    - ESzSeek
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: FileInStream_fmap_Seek
    functionSourceFile: /src/clamav/libclamav/7z_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SRes
    signature: SRes FileInStream_fmap_Seek(void *pp, Int64 *pos, ESzSeek origin)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookToRead_CreateVTable
      Src: /src/clamav/libclamav/7z_iface.c:101,1
    - Dst: CFileInStream::s::Seek
      Src: /src/clamav/libclamav/7z_iface.c:103,1
    - Dst: LookToRead_Init
      Src: /src/clamav/libclamav/7z_iface.c:107,1
    - Dst: SzArEx_Init
      Src: /src/clamav/libclamav/7z_iface.c:109,1
    - Dst: SzArEx_Open
      Src: /src/clamav/libclamav/7z_iface.c:110,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:112,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/7z_iface.c:113,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/7z_iface.c:130,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/7z_iface.c:137,1
    - Dst: SzArEx_GetFileNameUtf16
      Src: /src/clamav/libclamav/7z_iface.c:143,1
    - Dst: free
      Src: /src/clamav/libclamav/7z_iface.c:146,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/7z_iface.c:147,1
    - Dst: SzArEx_GetFileNameUtf16
      Src: /src/clamav/libclamav/7z_iface.c:154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:161,1
    - Dst: SzArEx_Extract
      Src: /src/clamav/libclamav/7z_iface.c:163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:167,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/7z_iface.c:168,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/7z_iface.c:174,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:179,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:181,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/7z_iface.c:183,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:186,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/7z_iface.c:187,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/7z_iface.c:191,1
    - Dst: close
      Src: /src/clamav/libclamav/7z_iface.c:193,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/7z_iface.c:194,1
    - Dst: free
      Src: /src/clamav/libclamav/7z_iface.c:197,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z_iface.c:202,1
    - Dst: SzArEx_Free
      Src: /src/clamav/libclamav/7z_iface.c:204,1
    - Dst: free
      Src: /src/clamav/libclamav/7z_iface.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:209,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:211,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:213,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:215,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:217,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z_iface.c:219,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 96
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 222
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 222
    functionName: cli_7unz
    functionSourceFile: /src/clamav/libclamav/7z_iface.c
    functionUses: 0
    functionsReached:
    - LookToRead_CreateVTable
    - cli_magic_scan_desc
    - CFileInStream::s::Seek
    - LookToRead_Init
    - SzArEx_Init
    - IAlloc_Free
    - cli_dbgmsg
    - SzArEx_Open
    - cli_checklimits
    - cli_writen
    - close
    - cli_matchmeta
    - cli_unlink
    - cli_append_potentially_unwanted
    - cli_max_malloc
    - cli_gentempfd
    - SzArEx_GetFileNameUtf16
    - SzArEx_Free
    - free
    - SzArEx_Extract
    linkageType: ''
    returnType: int
    signature: int cli_7unz(cli_ctx *ctx, size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/entconv.c:68,1
    - Dst: assert
      Src: /src/clamav/libclamav/entconv.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - u16
    - out
    - limit
    argTypes:
    - uint16_t
    - unsigned char*
    - ssize_t
    constantsTouched: []
    func_position:
      end: 100
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 100
    functionName: u16_normalize
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * u16_normalize(uint16_t u16, unsigned char* out, const
      ssize_t limit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - u16
    - dst
    - dst_size
    argTypes:
    - uint16_t
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: u16_normalize_tobuffer
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * u16_normalize_tobuffer(uint16_t u16, unsigned char*
      dst, size_t dst_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/entconv.c:115,1
    - Dst: strlen
      Src: /src/clamav/libclamav/entconv.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - conv
    - entity
    argTypes:
    - struct entity_conv*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: entity_norm
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_hashtab_find
    linkageType: ''
    returnType: char
    signature: char * entity_norm(struct entity_conv* conv, const unsigned char* entity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/entconv.c:130,1
    - Dst: strlen
      Src: /src/clamav/libclamav/entconv.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - fromcode
    - encoding
    argTypes:
    - char*
    - enum encodings*
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: encoding_bytes
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_hashtab_find
    linkageType: ''
    returnType: size_t
    signature: size_t encoding_bytes(const char* fromcode, enum encodings* encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/entconv.c:158,1
    - Dst: malloc
      Src: /src/clamav/libclamav/entconv.c:160,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:164,1
    - Dst: encoding_bytes
      Src: /src/clamav/libclamav/entconv.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tocode
    - fromcode
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 170
    functionName: iconv_open
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - malloc
    - cli_dbgmsg
    - encoding_bytes
    linkageType: ''
    returnType: iconv_t
    signature: iconv_t iconv_open(const char* tocode, const char* fromcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cd
    argTypes:
    - iconv_t
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: iconv_close
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int iconv_close(iconv_t cd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:202,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/entconv.c:253,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:284,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:294,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:301,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:309,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:314,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 142
    argCount: 5
    argNames:
    - iconv_struct
    - inbuf
    - inbytesleft
    - outbuf
    - outbytesleft
    argTypes:
    - iconv_t
    - char**
    - size_t*
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 343
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 343
    functionName: iconv
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: "int iconv(iconv_t iconv_struct, char** inbuf, size_t* inbytesleft,\n
      \                char** outbuf, size_t* outbytesleft)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:438,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 95
    argCount: 3
    argNames:
    - bom
    - bom_found
    - enc_width
    argTypes:
    - unsigned char*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 447
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 447
    functionName: detect_encoding
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: char
    signature: char * detect_encoding(const unsigned char* bom, uint8_t* bom_found,
      uint8_t* enc_width)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: detect_encoding
      Src: /src/clamav/libclamav/entconv.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bom
    - length
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 462
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: encoding_detect_bom
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - detect_encoding
    linkageType: ''
    returnType: char
    signature: char * encoding_detect_bom(const unsigned char* bom, const size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/entconv.c:491,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/entconv.c:498,1
    - Dst: toupper
      Src: /src/clamav/libclamav/entconv.c:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - enc
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 505
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 505
    functionName: normalize_encoding
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_max_malloc
    - toupper
    linkageType: ''
    returnType: char
    signature: char * normalize_encoding(const unsigned char* enc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:522,1
    - Dst: cli_hashtab_init
      Src: /src/clamav/libclamav/entconv.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct iconv_cache*
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: iconv_cache_init
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - cli_hashtab_init
    linkageType: ''
    returnType: void
    signature: void iconv_cache_init(struct iconv_cache* cache)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:529,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:531,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/entconv.c:532,1
    - Dst: cli_hashtab_clear
      Src: /src/clamav/libclamav/entconv.c:534,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:535,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:536,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct iconv_cache*
    constantsTouched: []
    func_position:
      end: 538
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 538
    functionName: iconv_cache_destroy
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - iconv_close
    - cli_dbgmsg
    - free
    - cli_hashtab_clear
    linkageType: ''
    returnType: void
    signature: void iconv_cache_destroy(struct iconv_cache* cache)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iconv_cache_destroy
      Src: /src/clamav/libclamav/entconv.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: iconv_pool_tls_instance_destroy
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - iconv_cache_destroy
    linkageType: ''
    returnType: void
    signature: void iconv_pool_tls_instance_destroy(void* ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/clamav/libclamav/entconv.c:558,1
    - Dst: iconv_pool_tls_instance_destroy
      Src: /src/clamav/libclamav/entconv.c:560,1
    - Dst: pthread_setspecific
      Src: /src/clamav/libclamav/entconv.c:561,1
    - Dst: pthread_key_delete
      Src: /src/clamav/libclamav/entconv.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 564
    functionName: iconv_cache_cleanup_main
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - pthread_key_delete
    - pthread_getspecific
    - iconv_pool_tls_instance_destroy
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void iconv_cache_cleanup_main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/clamav/libclamav/entconv.c:568,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:570,1
    - Dst: atexit
      Src: /src/clamav/libclamav/entconv.c:571,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 576
    functionName: iconv_pool_tls_key_alloc
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    - cli_dbgmsg
    - atexit
    linkageType: ''
    returnType: void
    signature: void iconv_pool_tls_key_alloc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/clamav/libclamav/entconv.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: init_iconv_pool_ifneeded
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: void
    signature: void init_iconv_pool_ifneeded(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/clamav/libclamav/entconv.c:585,1
    - Dst: calloc
      Src: /src/clamav/libclamav/entconv.c:587,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:589,1
    - Dst: iconv_cache_init
      Src: /src/clamav/libclamav/entconv.c:592,1
    - Dst: pthread_setspecific
      Src: /src/clamav/libclamav/entconv.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 596
    functionName: cache_get_tls_instance
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - calloc
    - pthread_setspecific
    - cli_dbgmsg
    - pthread_getspecific
    - iconv_cache_init
    linkageType: ''
    returnType: struct iconv_cache
    signature: struct iconv_cache * cache_get_tls_instance(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iconv_cache_destroy
      Src: /src/clamav/libclamav/entconv.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: iconv_cache_cleanup_main
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - iconv_cache_destroy
    linkageType: ''
    returnType: void
    signature: void iconv_cache_cleanup_main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/entconv.c:611,1
    - Dst: iconv_cache_init
      Src: /src/clamav/libclamav/entconv.c:613,1
    - Dst: atexit
      Src: /src/clamav/libclamav/entconv.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 618
    functionName: init_iconv_pool_ifneeded
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - calloc
    - atexit
    - iconv_cache_init
    linkageType: ''
    returnType: void
    signature: void init_iconv_pool_ifneeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: cache_get_tls_instance
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct iconv_cache
    signature: struct iconv_cache * cache_get_tls_instance(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_iconv_pool_ifneeded
      Src: /src/clamav/libclamav/entconv.c:635,1
    - Dst: cache_get_tls_instance
      Src: /src/clamav/libclamav/entconv.c:636,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:638,1
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/entconv.c:643,1
    - Dst: iconv
      Src: /src/clamav/libclamav/entconv.c:650,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:653,1
    - Dst: iconv_open
      Src: /src/clamav/libclamav/entconv.c:654,1
    - Dst: cli_max_realloc_or_free
      Src: /src/clamav/libclamav/entconv.c:659,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:661,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/entconv.c:664,1
    - Dst: cli_hashtab_insert
      Src: /src/clamav/libclamav/entconv.c:669,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:671,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - fromcode
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 675
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 675
    functionName: iconv_open_cached
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - cli_hashtab_find
    - init_iconv_pool_ifneeded
    - iconv
    - cli_hashtab_insert
    - cli_dbgmsg
    - cli_max_realloc_or_free
    - iconv_close
    - cache_get_tls_instance
    - iconv_open
    linkageType: ''
    returnType: iconv_t
    signature: iconv_t iconv_open_cached(const char* fromcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/entconv.c:707,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/entconv.c:708,1
    - Dst: assert
      Src: /src/clamav/libclamav/entconv.c:720,1
    - Dst: iconv
      Src: /src/clamav/libclamav/entconv.c:721,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:729,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:741,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:768,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:773,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 3
    argNames:
    - in_m_area
    - iconv_struct
    - out_m_area
    argTypes:
    - m_area_t*
    - iconv_t*
    - m_area_t*
    constantsTouched: []
    func_position:
      end: 778
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 778
    functionName: in_iconv_u16
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - memset
    - iconv
    - cli_dbgmsg
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int in_iconv_u16(const m_area_t* in_m_area, iconv_t* iconv_struct,
      m_area_t* out_m_area)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: normalize_encoding
      Src: /src/clamav/libclamav/entconv.c:790,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:792,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:796,1
    - Dst: iconv_open_cached
      Src: /src/clamav/libclamav/entconv.c:797,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:799,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:800,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:803,1
    - Dst: in_iconv_u16
      Src: /src/clamav/libclamav/entconv.c:804,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - in_m_area
    - initial_encoding
    - out_m_area
    argTypes:
    - m_area_t*
    - char*
    - m_area_t*
    constantsTouched: []
    func_position:
      end: 813
      start: 780
    functionDepth: 4
    functionLinenumber: 780
    functionLinenumberEnd: 813
    functionName: encoding_normalize_toascii
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - iconv_open_cached
    - normalize_encoding
    - cli_dbgmsg
    - in_iconv_u16
    - free
    linkageType: ''
    returnType: int
    signature: int encoding_normalize_toascii(const m_area_t* in_m_area, const char*
      initial_encoding, m_area_t* out_m_area)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:830,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/entconv.c:845,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/entconv.c:847,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/entconv.c:851,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:872,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/entconv.c:905,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:907,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/libclamav/entconv.c:920,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/entconv.c:928,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:929,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/entconv.c:934,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:936,1
    - Dst: MultiByteToWideChar
      Src: /src/clamav/libclamav/entconv.c:941,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:949,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/libclamav/entconv.c:962,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:972,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/entconv.c:977,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:979,1
    - Dst: WideCharToMultiByte
      Src: /src/clamav/libclamav/entconv.c:984,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:994,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:1017,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/entconv.c:1036,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/entconv.c:1038,1
    - Dst: iconv_open
      Src: /src/clamav/libclamav/entconv.c:1044,1
    - Dst: iconv_open
      Src: /src/clamav/libclamav/entconv.c:1048,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/entconv.c:1050,1
    - Dst: iconv
      Src: /src/clamav/libclamav/entconv.c:1055,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/entconv.c:1056,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/entconv.c:1061,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:1062,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/entconv.c:1066,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:1069,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/entconv.c:1072,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/entconv.c:1079,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/entconv.c:1081,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:1110,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/entconv.c:1116,1
    - Dst: free
      Src: /src/clamav/libclamav/entconv.c:1122,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 193
    argCount: 5
    argNames:
    - in
    - in_size
    - codepage
    - out
    - out_size
    argTypes:
    - char*
    - size_t
    - uint16_t
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 1127
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 1127
    functionName: cli_codepage_to_utf8
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 4
    functionsReached:
    - GetLastError
    - cli_warnmsg
    - MultiByteToWideChar
    - WideCharToMultiByte
    - cli_max_malloc
    - iconv
    - cli_dbgmsg
    - memcpy
    - cli_max_realloc
    - iconv_close
    - cli_max_calloc
    - iconv_open
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_codepage_to_utf8(char* in, size_t in_size, uint16_t
      codepage, char** out, size_t* out_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:1135,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/entconv.c:1142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - str
    - length
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1151
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1151
    functionName: cli_utf16toascii
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 1
    functionsReached:
    - cli_max_calloc
    - cli_dbgmsg
    linkageType: ''
    returnType: char
    signature: char * cli_utf16toascii(const char* str, unsigned int length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/entconv.c:1163,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/entconv.c:1165,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/entconv.c:1169,1
    - Dst: cbswap16
      Src: /src/clamav/libclamav/entconv.c:1187,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/entconv.c:1203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/entconv.c:1212,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - utf16
    - length
    - type
    argTypes:
    - char*
    - size_t
    - encoding_t
    constantsTouched: []
    func_position:
      end: 1223
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1223
    functionName: cli_utf16_to_utf8
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - cli_readint16
    - cli_max_malloc
    - cli_dbgmsg
    - cli_safer_strdup
    - cbswap16
    linkageType: ''
    returnType: char
    signature: char * cli_utf16_to_utf8(const char* utf16, size_t length, encoding_t
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1269
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1269
    functionName: cli_isutf8
    functionSourceFile: /src/clamav/libclamav/entconv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_isutf8(const char* buf, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/xdp.c:67,1
    - Dst: write
      Src: /src/clamav/libclamav/xdp.c:71,1
    - Dst: close
      Src: /src/clamav/libclamav/xdp.c:76,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/xdp.c:77,1
    - Dst: free
      Src: /src/clamav/libclamav/xdp.c:78,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xdp.c:86,1
    - Dst: close
      Src: /src/clamav/libclamav/xdp.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - start
    - sz
    argTypes:
    - cli_ctx*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 91
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 91
    functionName: dump_xdp
    functionSourceFile: /src/clamav/libclamav/xdp.c
    functionUses: 0
    functionsReached:
    - close
    - cli_unlink
    - write
    - cli_dbgmsg
    - cli_gentempfd
    - free
    linkageType: ''
    returnType: char
    signature: char *dump_xdp(cli_ctx *ctx, const char *start, size_t sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/xdp.c:104,1
    - Dst: dump_xdp
      Src: /src/clamav/libclamav/xdp.c:109,1
    - Dst: free
      Src: /src/clamav/libclamav/xdp.c:111,1
    - Dst: xmlReaderForMemory
      Src: /src/clamav/libclamav/xdp.c:121,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/xdp.c:125,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/xdp.c:126,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/xdp.c:130,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/xdp.c:130,1
    - Dst: xmlTextReaderReadInnerXml
      Src: /src/clamav/libclamav/xdp.c:131,1
    - Dst: cl_base64_decode
      Src: /src/clamav/libclamav/xdp.c:133,1
    - Dst: strlen
      Src: /src/clamav/libclamav/xdp.c:133,1
    - Dst: MIN
      Src: /src/clamav/libclamav/xdp.c:138,1
    - Dst: free
      Src: /src/clamav/libclamav/xdp.c:156,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xdp.c:157,1
    - Dst: cli_magic_scan_buff
      Src: /src/clamav/libclamav/xdp.c:161,1
    - Dst: free
      Src: /src/clamav/libclamav/xdp.c:162,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xdp.c:164,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/xdp.c:169,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/xdp.c:174,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 55
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 177
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 177
    functionName: cli_scanxdp
    functionSourceFile: /src/clamav/libclamav/xdp.c
    functionUses: 0
    functionsReached:
    - xmlTextReaderReadInnerXml
    - strcmp
    - strlen
    - cl_base64_decode
    - dump_xdp
    - fmap_need_off_once
    - cli_magic_scan_buff
    - xmlTextReaderNodeType
    - xmlTextReaderConstLocalName
    - xmlFree
    - MIN
    - xmlReaderForMemory
    - xmlFreeTextReader
    - xmlTextReaderRead
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanxdp(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/yc.c:47,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/yc.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - base
    - filesize
    - offset
    - bound
    argTypes:
    - cli_ctx*
    - char*
    - unsigned int
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: yc_bounds_check
    functionSourceFile: /src/clamav/libclamav/yc.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int yc_bounds_check(cli_ctx *ctx, char *base, unsigned int filesize,
      char *offset, unsigned int bound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:87,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:94,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:102,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:132,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:140,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:148,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:156,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:162,1
    - Dst: CLI_ROL
      Src: /src/clamav/libclamav/yc.c:165,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:169,1
    - Dst: CLI_ROR
      Src: /src/clamav/libclamav/yc.c:172,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:178,1
    - Dst: CLI_ROR
      Src: /src/clamav/libclamav/yc.c:184,1
    - Dst: CLI_ROL
      Src: /src/clamav/libclamav/yc.c:188,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:198,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/yc.c:201,1
    - Dst: yc_bounds_check
      Src: /src/clamav/libclamav/yc.c:206,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 7
    argNames:
    - ctx
    - base
    - filesize
    - decryptor_offset
    - code
    - ecx
    - max_emu
    argTypes:
    - cli_ctx*
    - char*
    - unsigned int
    - char*
    - char*
    - unsigned int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 211
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 211
    functionName: yc_poly_emulator
    functionSourceFile: /src/clamav/libclamav/yc.c
    functionUses: 0
    functionsReached:
    - CLI_ROR
    - CLI_ROL
    - yc_bounds_check
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int yc_poly_emulator(cli_ctx *ctx, char *base, unsigned int filesize,
      char *decryptor_offset, char *code, unsigned int ecx, uint32_t max_emu)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/yc.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/yc.c:234,1
    - Dst: yc_poly_emulator
      Src: /src/clamav/libclamav/yc.c:235,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/yc.c:268,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/yc.c:271,1
    - Dst: yc_poly_emulator
      Src: /src/clamav/libclamav/yc.c:274,1
    - Dst: EC16
      Src: /src/clamav/libclamav/yc.c:286,1
    - Dst: memset
      Src: /src/clamav/libclamav/yc.c:289,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/yc.c:293,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/yc.c:293,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/yc.c:296,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/yc.c:296,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/yc.c:298,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/yc.c:299,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 9
    argNames:
    - ctx
    - fbuf
    - filesize
    - sections
    - sectcount
    - peoffset
    - desc
    - ecx
    - offset
    argTypes:
    - cli_ctx*
    - char*
    - unsigned int
    - struct cli_exe_section*
    - unsigned int
    - uint32_t
    - int
    - uint32_t
    - int16_t
    constantsTouched: []
    func_position:
      end: 303
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 303
    functionName: yc_decrypt
    functionSourceFile: /src/clamav/libclamav/yc.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_readint32
    - EC16
    - cli_dbgmsg
    - cli_writeint32
    - cli_writen
    - yc_poly_emulator
    linkageType: ''
    returnType: int
    signature: int yc_decrypt(cli_ctx *ctx, char *fbuf, unsigned int filesize, struct
      cli_exe_section *sections, unsigned int sectcount, uint32_t peoffset, int desc,
      uint32_t ecx, int16_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - chunk
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: rewind_tospace
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rewind_tospace(const unsigned char *chunk, unsigned int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/htmlnorm.c:185,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/htmlnorm.c:187,1
    - Dst: MIN
      Src: /src/clamav/libclamav/htmlnorm.c:195,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:197,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/htmlnorm.c:201,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:208,1
    - Dst: memchr
      Src: /src/clamav/libclamav/htmlnorm.c:213,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/htmlnorm.c:216,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/htmlnorm.c:226,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/htmlnorm.c:232,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/htmlnorm.c:234,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:250,1
    - Dst: rewind_tospace
      Src: /src/clamav/libclamav/htmlnorm.c:252,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:260,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:261,1
    - Dst: fread
      Src: /src/clamav/libclamav/htmlnorm.c:264,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:267,1
    - Dst: memchr
      Src: /src/clamav/libclamav/htmlnorm.c:272,1
    - Dst: rewind_tospace
      Src: /src/clamav/libclamav/htmlnorm.c:298,1
    - Dst: fseek
      Src: /src/clamav/libclamav/htmlnorm.c:302,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 3
    argNames:
    - stream
    - m_area
    - max_len
    argTypes:
    - FILE*
    - m_area_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 308
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 308
    functionName: cli_readchunk
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - fseek
    - fread
    - cli_warnmsg
    - fmap_need_ptr_once
    - memchr
    - fmap_need_off_once
    - rewind_tospace
    - cli_max_malloc
    - cli_dbgmsg
    - isspace
    - MIN
    - memcpy
    - cli_errmsg
    - free
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cli_readchunk(FILE *stream, m_area_t *m_area, unsigned
      int max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_writen
      Src: /src/clamav/libclamav/htmlnorm.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fbuff
    argTypes:
    - file_buff_t*
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: html_output_flush
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - cli_writen
    linkageType: ''
    returnType: void
    signature: void html_output_flush(file_buff_t *fbuff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fbuff1
    - c
    argTypes:
    - file_buff_t*
    - unsigned char
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: html_output_c
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - html_output_flush
    linkageType: ''
    returnType: void
    signature: void html_output_c(file_buff_t *fbuff1, unsigned char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:332,1
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:335,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/htmlnorm.c:336,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/htmlnorm.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fbuff
    - str
    - len
    argTypes:
    - file_buff_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 342
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 342
    functionName: html_output_str
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_writen
    - html_output_flush
    linkageType: ''
    returnType: void
    signature: void html_output_str(file_buff_t *fbuff, const unsigned char *str,
      size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tags
    - tag
    argTypes:
    - tag_arguments_t*
    - char*
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: html_tag_arg_value
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *html_tag_arg_value(tag_arguments_t *tags, const char *tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:361,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:362,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tags
    - tag
    - value
    argTypes:
    - tag_arguments_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 368
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 368
    functionName: html_tag_arg_set
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - cli_safer_strdup
    - free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void html_tag_arg_set(tag_arguments_t *tags, const char *tag, const
      char *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/htmlnorm.c:378,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/htmlnorm.c:385,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/htmlnorm.c:394,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:403,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:406,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:410,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:415,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:428,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:433,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:439,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:443,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:446,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:449,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 3
    argNames:
    - tags
    - tag
    - value
    argTypes:
    - tag_arguments_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 454
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 454
    functionName: html_tag_arg_add
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_max_realloc
    - cli_safer_strdup
    - free
    linkageType: ''
    returnType: void
    signature: "void html_tag_arg_add(tag_arguments_t *tags,\n                      const
      char *tag, char *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:460,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:461,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:461,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:463,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:464,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:464,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:466,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:467,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:469,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:469,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:471,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - fbuff
    - tag
    - tags
    argTypes:
    - file_buff_t*
    - char*
    - tag_arguments_t*
    constantsTouched: []
    func_position:
      end: 475
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 475
    functionName: html_output_tag
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - strlen
    - html_output_c
    - tolower
    - html_output_str
    linkageType: ''
    returnType: void
    signature: void html_output_tag(file_buff_t *fbuff, char *tag, tag_arguments_t
      *tags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:482,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:484,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:488,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:491,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:494,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:497,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - tags
    argTypes:
    - tag_arguments_t*
    constantsTouched: []
    func_position:
      end: 501
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 501
    functionName: html_tag_arg_free
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void html_tag_arg_free(tag_arguments_t *tags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 29
    argCount: 3
    argNames:
    - cont
    - begin
    - end
    argTypes:
    - struct tag_contents*
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 543
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 543
    functionName: html_tag_contents_append
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void html_tag_contents_append(struct tag_contents *cont, const unsigned
      char *begin, const unsigned char *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/htmlnorm.c:549,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/htmlnorm.c:551,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/htmlnorm.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - tags
    - idx
    - cont
    argTypes:
    - tag_arguments_t*
    - int
    - struct tag_contents*
    constantsTouched: []
    func_position:
      end: 557
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 557
    functionName: html_tag_contents_done
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - cli_max_malloc
    - memcpy
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void html_tag_contents_done(tag_arguments_t *tags, int idx, struct
      tag_contents *cont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:621,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:633,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/htmlnorm.c:635,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:636,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:638,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:644,1
    - Dst: memmove
      Src: /src/clamav/libclamav/htmlnorm.c:645,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 2
    argNames:
    - ptr
    - s
    argTypes:
    - unsigned char*
    - struct screnc_state*
    constantsTouched: []
    func_position:
      end: 649
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 649
    functionName: screnc_decode
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 1
    functionsReached:
    - strlen
    - memmove
    - cli_dbgmsg
    - strncmp
    linkageType: ''
    returnType: void
    signature: void screnc_decode(unsigned char *ptr, struct screnc_state *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/htmlnorm.c:659,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/htmlnorm.c:660,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/libclamav/htmlnorm.c:661,1
    - Dst: cli_js_parse_done
      Src: /src/clamav/libclamav/htmlnorm.c:665,1
    - Dst: cli_js_output
      Src: /src/clamav/libclamav/htmlnorm.c:666,1
    - Dst: cli_js_destroy
      Src: /src/clamav/libclamav/htmlnorm.c:667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 7
    argNames:
    - js_state
    - js_begin
    - js_end
    - line
    - ptr
    - in_tag
    - dirname
    argTypes:
    - struct parser_state*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - tag_type
    - char*
    constantsTouched: []
    func_position:
      end: 669
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 669
    functionName: js_process
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - cli_js_output
    - cli_js_parse_done
    - CLI_ISCONTAINED
    - cli_js_process_buffer
    - cli_js_destroy
    linkageType: ''
    returnType: void
    signature: "void js_process(struct parser_state *js_state, const unsigned char
      *js_begin, const unsigned char *js_end,\n                       const unsigned
      char *line, const unsigned char *ptr, tag_type in_tag, const char *dirname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/htmlnorm.c:681,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:687,1
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - value
    - tags
    argTypes:
    - char*
    - form_data_t*
    constantsTouched: []
    func_position:
      end: 699
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 699
    functionName: html_insert_form_data
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    - memset
    - cli_safer_strdup
    linkageType: ''
    returnType: bool
    signature: bool html_insert_form_data(const char *const value, form_data_t *tags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/htmlnorm.c:705,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/htmlnorm.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tags
    argTypes:
    - form_data_t*
    constantsTouched: []
    func_position:
      end: 708
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 708
    functionName: html_form_data_tag_free
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - CLI_FREE_AND_SET_NULL
    linkageType: ''
    returnType: void
    signature: void html_form_data_tag_free(form_data_t *tags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:751,1
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:752,1
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:753,1
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:754,1
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:761,1
    - Dst: lseek
      Src: /src/clamav/libclamav/htmlnorm.c:764,1
    - Dst: dup
      Src: /src/clamav/libclamav/htmlnorm.c:765,1
    - Dst: fdopen
      Src: /src/clamav/libclamav/htmlnorm.c:769,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:771,1
    - Dst: malloc
      Src: /src/clamav/libclamav/htmlnorm.c:781,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/htmlnorm.c:783,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/htmlnorm.c:789,1
    - Dst: open
      Src: /src/clamav/libclamav/htmlnorm.c:790,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:792,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:793,1
    - Dst: malloc
      Src: /src/clamav/libclamav/htmlnorm.c:798,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:800,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:801,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/htmlnorm.c:803,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/htmlnorm.c:807,1
    - Dst: open
      Src: /src/clamav/libclamav/htmlnorm.c:808,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:810,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:811,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:812,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:813,1
    - Dst: cli_readchunk
      Src: /src/clamav/libclamav/htmlnorm.c:826,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:831,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:846,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:850,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:853,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:861,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:865,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:876,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:877,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:888,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:889,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:892,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:893,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:895,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:896,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:909,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:911,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:916,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:923,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:925,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:932,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:947,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:951,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:955,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:967,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:978,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:983,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:984,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:984,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:990,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1003,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:1011,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1017,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1020,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1028,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1030,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1030,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1032,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1039,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1049,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/htmlnorm.c:1057,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1066,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/htmlnorm.c:1071,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1080,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1093,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1100,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1105,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1111,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1121,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1128,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1133,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1139,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:1146,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1149,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1154,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:1156,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1172,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1185,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1187,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1188,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1201,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1201,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:1216,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1221,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1239,1
    - Dst: js_process
      Src: /src/clamav/libclamav/htmlnorm.c:1243,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1249,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1252,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1255,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/htmlnorm.c:1262,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/htmlnorm.c:1264,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/htmlnorm.c:1267,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1277,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1278,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1284,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1286,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1290,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1291,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/htmlnorm.c:1293,1
    - Dst: html_tag_arg_set
      Src: /src/clamav/libclamav/htmlnorm.c:1294,1
    - Dst: html_output_tag
      Src: /src/clamav/libclamav/htmlnorm.c:1298,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/htmlnorm.c:1299,1
    - Dst: html_tag_arg_set
      Src: /src/clamav/libclamav/htmlnorm.c:1300,1
    - Dst: html_output_tag
      Src: /src/clamav/libclamav/htmlnorm.c:1304,1
    - Dst: cli_js_init
      Src: /src/clamav/libclamav/htmlnorm.c:1308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1310,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1315,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1319,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1320,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/htmlnorm.c:1321,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/htmlnorm.c:1322,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1332,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1333,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1334,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1341,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1343,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1348,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1349,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1350,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1351,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1355,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1357,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1358,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1359,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1362,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1369,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1373,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:1375,1
    - Dst: html_insert_form_data
      Src: /src/clamav/libclamav/htmlnorm.c:1377,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1380,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1381,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1382,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1383,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:1386,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1389,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1391,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1392,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1393,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1396,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1397,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1398,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:1401,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1404,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1406,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1407,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1408,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1411,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1412,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1413,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1414,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:1417,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1420,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1422,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1423,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1424,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1427,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1428,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1429,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1430,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/htmlnorm.c:1433,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/htmlnorm.c:1436,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1438,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1439,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1440,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1445,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1447,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1449,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1449,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1450,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/htmlnorm.c:1453,1
    - Dst: html_tag_arg_value
      Src: /src/clamav/libclamav/htmlnorm.c:1454,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1456,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1456,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1457,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/libclamav/htmlnorm.c:1461,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1476,1
    - Dst: entity_norm
      Src: /src/clamav/libclamav/htmlnorm.c:1488,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1490,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1492,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1498,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1504,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1512,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/htmlnorm.c:1518,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1526,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1529,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1551,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1551,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1556,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1560,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1560,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/htmlnorm.c:1564,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/htmlnorm.c:1564,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1572,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/htmlnorm.c:1578,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1581,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1585,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1594,1
    - Dst: strstr
      Src: /src/clamav/libclamav/htmlnorm.c:1601,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/htmlnorm.c:1612,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1619,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1619,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1624,1
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:1629,1
    - Dst: screnc_decode
      Src: /src/clamav/libclamav/htmlnorm.c:1646,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:1684,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:1692,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1714,1
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:1730,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:1731,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1734,1
    - Dst: malloc
      Src: /src/clamav/libclamav/htmlnorm.c:1737,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1739,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/htmlnorm.c:1745,1
    - Dst: LSTAT
      Src: /src/clamav/libclamav/htmlnorm.c:1746,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/htmlnorm.c:1747,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1748,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/htmlnorm.c:1753,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1757,1
    - Dst: open
      Src: /src/clamav/libclamav/htmlnorm.c:1758,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1759,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1761,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1766,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1767,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1769,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1771,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1772,1
    - Dst: strstr
      Src: /src/clamav/libclamav/htmlnorm.c:1773,1
    - Dst: html_output_str
      Src: /src/clamav/libclamav/htmlnorm.c:1774,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1776,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1799,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1807,1
    - Dst: isspace
      Src: /src/clamav/libclamav/htmlnorm.c:1810,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1815,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1819,1
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:1831,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:1832,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1835,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1846,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1848,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1849,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1851,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/htmlnorm.c:1865,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/htmlnorm.c:1866,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1869,1
    - Dst: html_tag_contents_append
      Src: /src/clamav/libclamav/htmlnorm.c:1883,1
    - Dst: js_process
      Src: /src/clamav/libclamav/htmlnorm.c:1887,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1896,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/htmlnorm.c:1903,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/htmlnorm.c:1905,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/htmlnorm.c:1908,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1922,1
    - Dst: cli_readchunk
      Src: /src/clamav/libclamav/htmlnorm.c:1923,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1942,1
    - Dst: html_style_block_handler
      Src: /src/clamav/libclamav/htmlnorm.c:1950,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:1952,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/htmlnorm.c:1952,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1956,1
    - Dst: entity_norm
      Src: /src/clamav/libclamav/htmlnorm.c:1965,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:1967,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1968,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1971,1
    - Dst: html_output_c
      Src: /src/clamav/libclamav/htmlnorm.c:1973,1
    - Dst: tolower
      Src: /src/clamav/libclamav/htmlnorm.c:1973,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1982,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:1984,1
    - Dst: html_tag_contents_done
      Src: /src/clamav/libclamav/htmlnorm.c:1987,1
    - Dst: cli_js_parse_done
      Src: /src/clamav/libclamav/htmlnorm.c:1991,1
    - Dst: cli_js_output
      Src: /src/clamav/libclamav/htmlnorm.c:1992,1
    - Dst: cli_js_destroy
      Src: /src/clamav/libclamav/htmlnorm.c:1993,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/libclamav/htmlnorm.c:1996,1
    - Dst: fclose
      Src: /src/clamav/libclamav/htmlnorm.c:1998,1
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:2001,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:2003,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2004,1
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:2007,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:2009,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2010,1
    - Dst: html_output_flush
      Src: /src/clamav/libclamav/htmlnorm.c:2015,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:2016,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2018,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2021,1
    CyclomaticComplexity: 382
    EdgeCount: 382
    ICount: 1179
    argCount: 7
    argNames:
    - ctx
    - fd
    - m_area
    - dirname
    - hrefs
    - dconf
    - form_data
    argTypes:
    - cli_ctx*
    - int
    - m_area_t*
    - char*
    - tag_arguments_t*
    - struct cli_dconf*
    - form_data_t*
    constantsTouched: []
    func_position:
      end: 2024
      start: 710
    functionDepth: 4
    functionLinenumber: 710
    functionLinenumberEnd: 2024
    functionName: cli_html_normalise
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 0
    functionsReached:
    - html_tag_arg_value
    - tolower
    - html_tag_arg_set
    - html_output_tag
    - snprintf
    - cli_js_output
    - strcasecmp
    - dup
    - html_output_c
    - fdopen
    - isspace
    - cli_js_destroy
    - html_tag_arg_free
    - lseek
    - strcmp
    - cli_js_init
    - isxdigit
    - strstr
    - html_style_block_handler
    - entity_norm
    - cli_dbgmsg
    - html_tag_contents_done
    - cl_strerror
    - close
    - memset
    - cli_readchunk
    - html_tag_contents_append
    - isalnum
    - open
    - cli_js_parse_done
    - screnc_decode
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - malloc
    - html_tag_arg_add
    - CLI_MAX_REALLOC_OR_GOTO_DONE
    - fclose
    - free
    - cli_safer_strdup
    - js_process
    - mkdir
    - strlen
    - html_output_flush
    - html_output_str
    - cli_gentemp
    - LSTAT
    - html_insert_form_data
    - memcpy
    - cli_errmsg
    - strncmp
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool cli_html_normalise(cli_ctx *ctx, int fd, m_area_t *m_area, const
      char *dirname, tag_arguments_t *hrefs, const struct cli_dconf *dconf, form_data_t
      *form_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: html_normalise_mem_form_data
      Src: /src/clamav/libclamav/htmlnorm.c:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ctx
    - in_buff
    - in_size
    - dirname
    - hrefs
    - dconf
    argTypes:
    - cli_ctx*
    - unsigned char*
    - off_t
    - char*
    - tag_arguments_t*
    - struct cli_dconf*
    constantsTouched: []
    func_position:
      end: 2029
      start: 2026
    functionDepth: 1
    functionLinenumber: 2026
    functionLinenumberEnd: 2029
    functionName: html_normalise_mem
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 3
    functionsReached:
    - html_normalise_mem_form_data
    linkageType: ''
    returnType: bool
    signature: bool html_normalise_mem(cli_ctx *ctx, unsigned char *in_buff, off_t
      in_size, const char *dirname, tag_arguments_t *hrefs, const struct cli_dconf
      *dconf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_html_normalise
      Src: /src/clamav/libclamav/htmlnorm.c:2040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - ctx
    - in_buff
    - in_size
    - dirname
    - hrefs
    - dconf
    - form_data
    argTypes:
    - cli_ctx*
    - unsigned char*
    - off_t
    - char*
    - tag_arguments_t*
    - struct cli_dconf*
    - form_data_t*
    constantsTouched: []
    func_position:
      end: 2041
      start: 2031
    functionDepth: 5
    functionLinenumber: 2031
    functionLinenumberEnd: 2041
    functionName: html_normalise_mem_form_data
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 1
    functionsReached:
    - cli_html_normalise
    linkageType: ''
    returnType: bool
    signature: bool html_normalise_mem_form_data(cli_ctx *ctx, unsigned char *in_buff,
      off_t in_size, const char *dirname, tag_arguments_t *hrefs, const struct cli_dconf
      *dconf, form_data_t *form_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: html_normalise_map_form_data
      Src: /src/clamav/libclamav/htmlnorm.c:2045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - map
    - dirname
    - hrefs
    - dconf
    argTypes:
    - cli_ctx*
    - fmap_t*
    - char*
    - tag_arguments_t*
    - struct cli_dconf*
    constantsTouched: []
    func_position:
      end: 2046
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2046
    functionName: html_normalise_map
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 1
    functionsReached:
    - html_normalise_map_form_data
    linkageType: ''
    returnType: bool
    signature: bool html_normalise_map(cli_ctx *ctx, fmap_t *map, const char *dirname,
      tag_arguments_t *hrefs, const struct cli_dconf *dconf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_html_normalise
      Src: /src/clamav/libclamav/htmlnorm.c:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - map
    - dirname
    - hrefs
    - dconf
    - form_data
    argTypes:
    - cli_ctx*
    - fmap_t*
    - char*
    - tag_arguments_t*
    - struct cli_dconf*
    - form_data_t*
    constantsTouched: []
    func_position:
      end: 2058
      start: 2048
    functionDepth: 5
    functionLinenumber: 2048
    functionLinenumberEnd: 2058
    functionName: html_normalise_map_form_data
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 1
    functionsReached:
    - cli_html_normalise
    linkageType: ''
    returnType: bool
    signature: bool html_normalise_map_form_data(cli_ctx *ctx, fmap_t *map, const
      char *dirname, tag_arguments_t *hrefs, const struct cli_dconf *dconf, form_data_t
      *form_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:2070,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/htmlnorm.c:2075,1
    - Dst: open
      Src: /src/clamav/libclamav/htmlnorm.c:2076,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:2079,1
    - Dst: cli_readchunk
      Src: /src/clamav/libclamav/htmlnorm.c:2083,1
    - Dst: strstr
      Src: /src/clamav/libclamav/htmlnorm.c:2084,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2088,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2100,1
    - Dst: cli_readchunk
      Src: /src/clamav/libclamav/htmlnorm.c:2101,1
    - Dst: memset
      Src: /src/clamav/libclamav/htmlnorm.c:2112,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/htmlnorm.c:2121,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:2121,1
    - Dst: screnc_decode
      Src: /src/clamav/libclamav/htmlnorm.c:2123,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/htmlnorm.c:2124,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:2124,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2125,1
    - Dst: cli_readchunk
      Src: /src/clamav/libclamav/htmlnorm.c:2128,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/htmlnorm.c:2131,1
    - Dst: strlen
      Src: /src/clamav/libclamav/htmlnorm.c:2131,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/htmlnorm.c:2133,1
    - Dst: close
      Src: /src/clamav/libclamav/htmlnorm.c:2137,1
    - Dst: free
      Src: /src/clamav/libclamav/htmlnorm.c:2139,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 2
    argNames:
    - map
    - dirname
    argTypes:
    - fmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 2142
      start: 2060
    functionDepth: 2
    functionLinenumber: 2060
    functionLinenumberEnd: 2142
    functionName: html_screnc_decode
    functionSourceFile: /src/clamav/libclamav/htmlnorm.c
    functionUses: 1
    functionsReached:
    - close
    - memset
    - snprintf
    - cli_readchunk
    - strstr
    - strlen
    - open
    - screnc_decode
    - cli_dbgmsg
    - cli_writen
    - free
    linkageType: ''
    returnType: bool
    signature: bool html_screnc_decode(fmap_t *map, const char *dirname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_gets
      Src: /src/clamav/libclamav/uuencode.c:54,1
    - Dst: isuuencodebegin
      Src: /src/clamav/libclamav/uuencode.c:58,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/uuencode.c:59,1
    - Dst: messageCreate
      Src: /src/clamav/libclamav/uuencode.c:63,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/uuencode.c:68,1
    - Dst: uudecodeFile
      Src: /src/clamav/libclamav/uuencode.c:70,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/uuencode.c:71,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/uuencode.c:72,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/uuencode.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - dir
    - map
    argTypes:
    - char*
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 78
    functionName: cli_uuencode
    functionSourceFile: /src/clamav/libclamav/uuencode.c
    functionUses: 0
    functionsReached:
    - uudecodeFile
    - fmap_gets
    - isuuencodebegin
    - cli_dbgmsg
    - messageCreate
    - messageDestroy
    linkageType: ''
    returnType: int
    signature: int cli_uuencode(const char *dir, fmap_t *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/uuencode.c:94,1
    - Dst: free
      Src: /src/clamav/libclamav/uuencode.c:96,1
    - Dst: fileblobSetFilename
      Src: /src/clamav/libclamav/uuencode.c:100,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/uuencode.c:101,1
    - Dst: free
      Src: /src/clamav/libclamav/uuencode.c:102,1
    - Dst: fmap_gets
      Src: /src/clamav/libclamav/uuencode.c:104,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/uuencode.c:109,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/uuencode.c:110,1
    - Dst: decodeLine
      Src: /src/clamav/libclamav/uuencode.c:115,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/uuencode.c:123,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/uuencode.c:127,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 5
    argNames:
    - m
    - firstline
    - dir
    - map
    - at
    argTypes:
    - message*
    - char*
    - char*
    - fmap_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 130
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 130
    functionName: uudecodeFile
    functionSourceFile: /src/clamav/libclamav/uuencode.c
    functionUses: 1
    functionsReached:
    - cli_chomp
    - fileblobCreate
    - fileblobAddData
    - fileblobSetFilename
    - fmap_gets
    - strcasecmp
    - cli_dbgmsg
    - fileblobDestroy
    - decodeLine
    - free
    linkageType: ''
    returnType: int
    signature: int uudecodeFile(message *m, const char *firstline, const char *dir,
      fmap_t *map, size_t *at)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::unmap
      Src: /src/clamav/libclamav/fmap.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: funmap
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 3
    functionsReached:
    - fmap_t*::unmap
    linkageType: ''
    returnType: void
    signature: void funmap(fmap_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::need
      Src: /src/clamav/libclamav/fmap.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - at
    - len
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: fmap_need_off
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 1
    functionsReached:
    - fmap_t*::need
    linkageType: ''
    returnType: void
    signature: void *fmap_need_off(fmap_t *m, size_t at, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::need
      Src: /src/clamav/libclamav/fmap.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - at
    - len
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: fmap_need_off_once
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 16
    functionsReached:
    - fmap_t*::need
    linkageType: ''
    returnType: void
    signature: void *fmap_need_off_once(fmap_t *m, size_t at, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - ptr
    argTypes:
    - fmap_t*
    - void*
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: fmap_ptr2off
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t fmap_ptr2off(const fmap_t *m, const void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::need
      Src: /src/clamav/libclamav/fmap.h:235,1
    - Dst: fmap_ptr2off
      Src: /src/clamav/libclamav/fmap.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - ptr
    - len
    argTypes:
    - fmap_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: fmap_need_ptr
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 1
    functionsReached:
    - fmap_t*::need
    - fmap_ptr2off
    linkageType: ''
    returnType: void
    signature: void *fmap_need_ptr(fmap_t *m, const void *ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::need
      Src: /src/clamav/libclamav/fmap.h:253,1
    - Dst: fmap_ptr2off
      Src: /src/clamav/libclamav/fmap.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - ptr
    - len
    argTypes:
    - fmap_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: fmap_need_ptr_once
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 19
    functionsReached:
    - fmap_t*::need
    - fmap_ptr2off
    linkageType: ''
    returnType: void
    signature: void *fmap_need_ptr_once(fmap_t *m, const void *ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::unneed_off
      Src: /src/clamav/libclamav/fmap.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - at
    - len
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: fmap_unneed_off
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 0
    functionsReached:
    - fmap_t*::unneed_off
    linkageType: ''
    returnType: void
    signature: void fmap_unneed_off(fmap_t *m, size_t at, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/fmap.h:283,1
    - Dst: fmap_ptr2off
      Src: /src/clamav/libclamav/fmap.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - ptr
    - len
    argTypes:
    - fmap_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: fmap_unneed_ptr
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 2
    functionsReached:
    - fmap_ptr2off
    - fmap_unneed_off
    linkageType: ''
    returnType: void
    signature: void fmap_unneed_ptr(fmap_t *m, const void *ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/fmap.h:306,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.h:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - m
    - dst
    - at
    - len
    argTypes:
    - fmap_t*
    - void*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 311
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 311
    functionName: fmap_readn
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 16
    functionsReached:
    - memcpy
    - fmap_need_off_once
    linkageType: ''
    returnType: size_t
    signature: size_t fmap_readn(fmap_t *m, void *dst, size_t at, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::need_offstr
      Src: /src/clamav/libclamav/fmap.h:326,1
    - Dst: fmap_ptr2off
      Src: /src/clamav/libclamav/fmap.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - ptr
    - len_hint
    argTypes:
    - fmap_t*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: fmap_need_str
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 1
    functionsReached:
    - fmap_ptr2off
    - fmap_t*::need_offstr
    linkageType: ''
    returnType: void
    signature: void *fmap_need_str(fmap_t *m, const void *ptr, size_t len_hint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::need_offstr
      Src: /src/clamav/libclamav/fmap.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - at
    - len_hint
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: fmap_need_offstr
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 2
    functionsReached:
    - fmap_t*::need_offstr
    linkageType: ''
    returnType: void
    signature: void *fmap_need_offstr(fmap_t *m, size_t at, size_t len_hint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_t*::gets
      Src: /src/clamav/libclamav/fmap.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - m
    - dst
    - at
    - max_len
    argTypes:
    - fmap_t*
    - char*
    - size_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: fmap_gets
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 3
    functionsReached:
    - fmap_t*::gets
    linkageType: ''
    returnType: void
    signature: void *fmap_gets(fmap_t *m, char *dst, size_t *at, size_t max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/fmap.h:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - m
    - at
    - len
    - lenout
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 387
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 387
    functionName: fmap_need_off_once_len
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 2
    functionsReached:
    - fmap_need_off_once
    linkageType: ''
    returnType: void
    signature: void *fmap_need_off_once_len(fmap_t *m, size_t at, size_t len, size_t
      *lenout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/fmap.h:403,1
    - Dst: fmap_ptr2off
      Src: /src/clamav/libclamav/fmap.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - m
    - ptr
    - len
    - lenout
    argTypes:
    - fmap_t*
    - void*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: fmap_need_ptr_once_len
    functionSourceFile: /src/clamav/libclamav/fmap.h
    functionUses: 0
    functionsReached:
    - fmap_ptr2off
    - fmap_need_off_once_len
    linkageType: ''
    returnType: void
    signature: void *fmap_need_ptr_once_len(fmap_t *m, const void *ptr, size_t len,
      size_t *lenout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_rebuildpe_align
      Src: /src/clamav/libclamav/rebuildpe.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - buffer
    - sections
    - sects
    - base
    - ep
    - ResRva
    - ResSize
    - file
    argTypes:
    - char*
    - struct cli_exe_section*
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: cli_rebuildpe
    functionSourceFile: /src/clamav/libclamav/rebuildpe.c
    functionUses: 0
    functionsReached:
    - cli_rebuildpe_align
    linkageType: ''
    returnType: int
    signature: int cli_rebuildpe(char *buffer, struct cli_exe_section *sections, int
      sects, uint32_t base, uint32_t ep, uint32_t ResRva, uint32_t ResSize, int file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:134,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:141,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:144,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:144,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/rebuildpe.c:149,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/rebuildpe.c:153,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:155,1
    - Dst: EC16
      Src: /src/clamav/libclamav/rebuildpe.c:158,1
    - Dst: EC32
      Src: /src/clamav/libclamav/rebuildpe.c:159,1
    - Dst: EC32
      Src: /src/clamav/libclamav/rebuildpe.c:160,1
    - Dst: EC32
      Src: /src/clamav/libclamav/rebuildpe.c:161,1
    - Dst: memset
      Src: /src/clamav/libclamav/rebuildpe.c:162,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:163,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:164,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/rebuildpe.c:168,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:169,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:170,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:171,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:173,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/rebuildpe.c:178,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/rebuildpe.c:183,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:186,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:187,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:188,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:189,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:191,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:191,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:192,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:192,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:193,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:193,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:194,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/rebuildpe.c:201,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/rebuildpe.c:202,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:205,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:206,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:208,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:208,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:209,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/rebuildpe.c:209,1
    - Dst: EC32
      Src: /src/clamav/libclamav/rebuildpe.c:212,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/rebuildpe.c:214,1
    - Dst: free
      Src: /src/clamav/libclamav/rebuildpe.c:215,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 65
    argCount: 9
    argNames:
    - buffer
    - sections
    - sects
    - base
    - ep
    - ResRva
    - ResSize
    - file
    - align
    argTypes:
    - char*
    - struct cli_exe_section*
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 217
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 217
    functionName: cli_rebuildpe_align
    functionSourceFile: /src/clamav/libclamav/rebuildpe.c
    functionUses: 1
    functionsReached:
    - PESALIGN
    - memset
    - snprintf
    - EC16
    - EC32
    - cli_dbgmsg
    - cli_writeint32
    - memcpy
    - cli_writen
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: int
    signature: int cli_rebuildpe_align(char *buffer, struct cli_exe_section *sections,
      int sects, uint32_t base, uint32_t ep, uint32_t ResRva, uint32_t ResSize, int
      file, uint32_t align)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYUSE
      Src: /src/clamav/libclamav/yara_grammar.c:1031,1
    - Dst: YYUSE
      Src: /src/clamav/libclamav/yara_grammar.c:1032,1
    - Dst: YYUSE
      Src: /src/clamav/libclamav/yara_grammar.c:1033,1
    - Dst: YYPRINT
      Src: /src/clamav/libclamav/yara_grammar.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - yyo
    - yytype
    - yyvaluep
    - yyscanner
    - compiler
    argTypes:
    - FILE*
    - int
    - YYSTYPE*
    - void*
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 1043
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1043
    functionName: yy_symbol_value_print
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - YYPRINT
    - YYUSE
    linkageType: ''
    returnType: void
    signature: void yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const *
      const yyvaluep, void *yyscanner, YR_COMPILER* compiler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1053,1
    - Dst: yy_symbol_value_print
      Src: /src/clamav/libclamav/yara_grammar.c:1056,1
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - yyo
    - yytype
    - yyvaluep
    - yyscanner
    - compiler
    argTypes:
    - FILE*
    - int
    - YYSTYPE*
    - void*
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 1058
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1058
    functionName: yy_symbol_print
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - yy_symbol_value_print
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const
      yyvaluep, void *yyscanner, YR_COMPILER* compiler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1068,1
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1072,1
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - yybottom
    - yytop
    argTypes:
    - yy_state_t*
    - yy_state_t*
    constantsTouched: []
    func_position:
      end: 1075
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1075
    functionName: yy_stack_print
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1094,1
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1099,1
    - Dst: yy_symbol_print
      Src: /src/clamav/libclamav/yara_grammar.c:1100,1
    - Dst: YYFPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - yyssp
    - yyvsp
    - yyrule
    - yyscanner
    - compiler
    argTypes:
    - yy_state_t*
    - YYSTYPE*
    - int
    - void*
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 1106
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1106
    functionName: yy_reduce_print
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - yy_symbol_print
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule,
      void *yyscanner, YR_COMPILER* compiler)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - yystr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1156
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1156
    functionName: yystrlen
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YYPTRDIFF_T
    signature: YYPTRDIFF_T yystrlen (const char *yystr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - yydest
    - yysrc
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1176
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1176
    functionName: yystpcpy
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      yystpcpy (char *yydest, const char *yysrc)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yystpcpy
      Src: /src/clamav/libclamav/yara_grammar.c:1225,1
    - Dst: yystrlen
      Src: /src/clamav/libclamav/yara_grammar.c:1227,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - yyres
    - yystr
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1228
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1228
    functionName: yytnamerr
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - yystpcpy
    - yystrlen
    linkageType: ''
    returnType: YYPTRDIFF_T
    signature: YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yytnamerr
      Src: /src/clamav/libclamav/yara_grammar.c:1280,1
    - Dst: yypact_value_is_default
      Src: /src/clamav/libclamav/yara_grammar.c:1283,1
    - Dst: yytable_value_is_error
      Src: /src/clamav/libclamav/yara_grammar.c:1296,1
    - Dst: yytnamerr
      Src: /src/clamav/libclamav/yara_grammar.c:1307,1
    - Dst: YYCASE_
      Src: /src/clamav/libclamav/yara_grammar.c:1324,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:1324,1
    - Dst: YYCASE_
      Src: /src/clamav/libclamav/yara_grammar.c:1325,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:1325,1
    - Dst: YYCASE_
      Src: /src/clamav/libclamav/yara_grammar.c:1326,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:1326,1
    - Dst: YYCASE_
      Src: /src/clamav/libclamav/yara_grammar.c:1327,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:1327,1
    - Dst: YYCASE_
      Src: /src/clamav/libclamav/yara_grammar.c:1328,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:1328,1
    - Dst: YYCASE_
      Src: /src/clamav/libclamav/yara_grammar.c:1329,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:1329,1
    - Dst: yystrlen
      Src: /src/clamav/libclamav/yara_grammar.c:1336,1
    - Dst: yytnamerr
      Src: /src/clamav/libclamav/yara_grammar.c:1361,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 4
    argNames:
    - yymsg_alloc
    - yymsg
    - yyssp
    - yytoken
    argTypes:
    - YYPTRDIFF_T*
    - char**
    - yy_state_t*
    - int
    constantsTouched: []
    func_position:
      end: 1371
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1371
    functionName: yysyntax_error
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - YY_
    - yytable_value_is_error
    - YYCASE_
    - yypact_value_is_default
    - yytnamerr
    - yystrlen
    linkageType: ''
    returnType: int
    signature: "int yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,\n                yy_state_t
      *yyssp, int yytoken)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYUSE
      Src: /src/clamav/libclamav/yara_grammar.c:1381,1
    - Dst: YYUSE
      Src: /src/clamav/libclamav/yara_grammar.c:1382,1
    - Dst: YYUSE
      Src: /src/clamav/libclamav/yara_grammar.c:1383,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:1386,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1393,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1399,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1405,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1411,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1417,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1423,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1429,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1435,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - yymsg
    - yytype
    - yyvaluep
    - yyscanner
    - compiler
    argTypes:
    - char*
    - int
    - YYSTYPE*
    - void*
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 1443
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1443
    functionName: yydestruct
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - yr_free
    - YYUSE
    - YY_SYMBOL_PRINT
    linkageType: ''
    returnType: void
    signature: void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep,
      void *yyscanner, YR_COMPILER* compiler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YYDPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1516,1
    - Dst: YYDPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1538,1
    - Dst: YY_ASSERT
      Src: /src/clamav/libclamav/yara_grammar.c:1539,1
    - Dst: YY_CAST
      Src: /src/clamav/libclamav/yara_grammar.c:1541,1
    - Dst: yyoverflow
      Src: /src/clamav/libclamav/yara_grammar.c:1564,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:1564,1
    - Dst: YYSIZEOF
      Src: /src/clamav/libclamav/yara_grammar.c:1565,1
    - Dst: YYSIZEOF
      Src: /src/clamav/libclamav/yara_grammar.c:1566,1
    - Dst: YY_CAST
      Src: /src/clamav/libclamav/yara_grammar.c:1582,1
    - Dst: YYSTACK_ALLOC
      Src: /src/clamav/libclamav/yara_grammar.c:1583,1
    - Dst: YY_CAST
      Src: /src/clamav/libclamav/yara_grammar.c:1583,1
    - Dst: YYSTACK_BYTES
      Src: /src/clamav/libclamav/yara_grammar.c:1583,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/clamav/libclamav/yara_grammar.c:1586,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/clamav/libclamav/yara_grammar.c:1587,1
    - Dst: YYSTACK_FREE
      Src: /src/clamav/libclamav/yara_grammar.c:1590,1
    - Dst: YY_CAST
      Src: /src/clamav/libclamav/yara_grammar.c:1599,1
    - Dst: yypact_value_is_default
      Src: /src/clamav/libclamav/yara_grammar.c:1622,1
    - Dst: YYDPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1630,1
    - Dst: yylex
      Src: /src/clamav/libclamav/yara_grammar.c:1631,1
    - Dst: YYDPRINTF
      Src: /src/clamav/libclamav/yara_grammar.c:1637,1
    - Dst: YYTRANSLATE
      Src: /src/clamav/libclamav/yara_grammar.c:1641,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:1642,1
    - Dst: yytable_value_is_error
      Src: /src/clamav/libclamav/yara_grammar.c:1653,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:1665,1
    - Dst: YY_REDUCE_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:1704,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1712,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1714,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1730,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1732,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_grammar.c:1757,1
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_grammar.c:1760,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1769,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_grammar.c:1794,1
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_grammar.c:1797,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1803,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_grammar.c:1852,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_grammar.c:1853,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1855,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_grammar.c:1869,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_grammar.c:1870,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1873,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1876,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_grammar.c:1893,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:1895,1
    - Dst: yr_arena_next_address
      Src: /src/clamav/libclamav/yara_grammar.c:1900,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_grammar.c:1901,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_grammar.c:1905,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_grammar.c:1909,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_grammar.c:1910,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1913,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1915,1
    - Dst: yr_parser_reduce_meta_declaration
      Src: /src/clamav/libclamav/yara_grammar.c:1939,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1946,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1947,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1949,1
    - Dst: yr_parser_reduce_meta_declaration
      Src: /src/clamav/libclamav/yara_grammar.c:1957,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1964,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1966,1
    - Dst: yr_parser_reduce_meta_declaration
      Src: /src/clamav/libclamav/yara_grammar.c:1974,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1981,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:1983,1
    - Dst: yr_parser_reduce_meta_declaration
      Src: /src/clamav/libclamav/yara_grammar.c:1991,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:1998,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2000,1
    - Dst: yr_parser_reduce_string_declaration
      Src: /src/clamav/libclamav/yara_grammar.c:2020,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2026,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2027,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2029,1
    - Dst: yyget_lineno
      Src: /src/clamav/libclamav/yara_grammar.c:2037,1
    - Dst: yr_parser_reduce_string_declaration
      Src: /src/clamav/libclamav/yara_grammar.c:2045,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2051,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2052,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2054,1
    - Dst: yr_parser_reduce_string_declaration
      Src: /src/clamav/libclamav/yara_grammar.c:2062,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2068,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2069,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2071,1
    - Dst: yr_parser_lookup_loop_variable
      Src: /src/clamav/libclamav/yara_grammar.c:2123,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2127,1
    - Dst: yr_hash_table_lookup
      Src: /src/clamav/libclamav/yara_grammar.c:2139,1
    - Dst: yr_hash_table_lookup
      Src: /src/clamav/libclamav/yara_grammar.c:2148,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_grammar.c:2156,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:2162,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:2165,1
    - Dst: yr_hash_table_lookup
      Src: /src/clamav/libclamav/yara_grammar.c:2172,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:2178,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:2181,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2186,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2194,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2196,1
    - Dst: yr_object_lookup_field
      Src: /src/clamav/libclamav/yara_grammar.c:2215,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_grammar.c:2219,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:2225,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:2228,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2233,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2239,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2248,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2250,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2260,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2269,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2276,1
    - Dst: yr_parser_check_types
      Src: /src/clamav/libclamav/yara_grammar.c:2288,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_grammar.c:2293,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2295,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2306,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2313,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2315,1
    - Dst: yr_strdup
      Src: /src/clamav/libclamav/yara_grammar.c:2323,1
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_grammar.c:2331,1
    - Dst: strlcpy
      Src: /src/clamav/libclamav/yara_grammar.c:2336,1
    - Dst: strlcpy
      Src: /src/clamav/libclamav/yara_grammar.c:2339,1
    - Dst: strlcpy
      Src: /src/clamav/libclamav/yara_grammar.c:2342,1
    - Dst: strlcpy
      Src: /src/clamav/libclamav/yara_grammar.c:2345,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2349,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_grammar.c:2357,1
    - Dst: strlcat
      Src: /src/clamav/libclamav/yara_grammar.c:2366,1
    - Dst: strlcat
      Src: /src/clamav/libclamav/yara_grammar.c:2369,1
    - Dst: strlcat
      Src: /src/clamav/libclamav/yara_grammar.c:2372,1
    - Dst: strlcat
      Src: /src/clamav/libclamav/yara_grammar.c:2375,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2380,1
    - Dst: yr_re_compile
      Src: /src/clamav/libclamav/yara_grammar.c:2403,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2410,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2413,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2415,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:2418,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:2421,1
    - Dst: yr_re_destroy
      Src: /src/clamav/libclamav/yara_grammar.c:2424,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2426,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2439,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2444,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2456,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2459,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2469,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2472,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2482,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2483,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2486,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2491,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2501,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2502,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2504,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2509,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2524,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2526,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2536,1
    - Dst: yr_parser_reduce_string_identifier
      Src: /src/clamav/libclamav/yara_grammar.c:2538,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2543,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2545,1
    - Dst: yr_parser_reduce_string_identifier
      Src: /src/clamav/libclamav/yara_grammar.c:2557,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2562,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2564,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2582,1
    - Dst: yr_parser_lookup_loop_variable
      Src: /src/clamav/libclamav/yara_grammar.c:2584,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2590,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2597,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2600,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2606,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2620,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2624,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2630,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2636,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2640,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2662,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2666,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:2671,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:2674,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2681,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2685,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2689,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:2694,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:2697,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2701,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2702,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2706,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2712,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2717,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2720,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:2723,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2744,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2746,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2749,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2753,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2776,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2780,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:2785,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:2788,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2793,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2799,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:2804,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2807,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2817,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2827,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2837,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2847,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2849,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2859,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2860,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2862,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2872,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2873,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2875,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2885,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2886,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2888,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2898,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:2899,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2901,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2913,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2919,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2926,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2932,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2944,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2950,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2957,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2963,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:2975,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2981,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:2988,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:2994,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:3034,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:3041,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3046,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:3056,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3062,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:3072,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3077,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:3086,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:3094,1
    - Dst: yr_parser_emit_pushes_for_strings
      Src: /src/clamav/libclamav/yara_grammar.c:3095,1
    - Dst: yr_parser_emit_pushes_for_strings
      Src: /src/clamav/libclamav/yara_grammar.c:3106,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:3107,1
    - Dst: yr_parser_emit_pushes_for_strings
      Src: /src/clamav/libclamav/yara_grammar.c:3115,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:3116,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:3124,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:3135,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3154,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3159,1
    - Dst: yywarning
      Src: /src/clamav/libclamav/yara_grammar.c:3168,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3173,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3176,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3186,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3188,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3191,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3201,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3203,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3206,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3216,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3218,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3221,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3231,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3233,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3236,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3246,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3248,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3251,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3261,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3263,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3266,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:3276,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3279,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_grammar.c:3295,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:3301,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_grammar.c:3304,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_grammar.c:3307,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3310,1
    - Dst: yr_parser_reduce_string_identifier
      Src: /src/clamav/libclamav/yara_grammar.c:3320,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:3325,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3327,1
    - Dst: yr_parser_reduce_string_identifier
      Src: /src/clamav/libclamav/yara_grammar.c:3337,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:3342,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3344,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_grammar.c:3356,1
    - Dst: yr_parser_reduce_string_identifier
      Src: /src/clamav/libclamav/yara_grammar.c:3363,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_grammar.c:3368,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3370,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3392,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_grammar.c:3404,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_grammar.c:3409,1
    - Dst: ERROR_IF
      Src: /src/clamav/libclamav/yara_grammar.c:3413,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3421,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3422,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3424,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3434,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3435,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3437,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3447,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3448,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3450,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3460,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3461,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3463,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3473,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3474,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3476,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3486,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3487,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3489,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3499,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3500,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3502,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3512,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3513,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3515,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3525,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3527,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3537,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3538,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3540,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3550,1
    - Dst: CHECK_TYPE
      Src: /src/clamav/libclamav/yara_grammar.c:3551,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_grammar.c:3553,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:3584,1
    - Dst: YYPOPSTACK
      Src: /src/clamav/libclamav/yara_grammar.c:3586,1
    - Dst: YY_STACK_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:3588,1
    - Dst: YYTRANSLATE
      Src: /src/clamav/libclamav/yara_grammar.c:3612,1
    - Dst: yyerror
      Src: /src/clamav/libclamav/yara_grammar.c:3619,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:3619,1
    - Dst: YYSTACK_FREE
      Src: /src/clamav/libclamav/yara_grammar.c:3632,1
    - Dst: YY_CAST
      Src: /src/clamav/libclamav/yara_grammar.c:3633,1
    - Dst: YYSTACK_ALLOC
      Src: /src/clamav/libclamav/yara_grammar.c:3633,1
    - Dst: YY_CAST
      Src: /src/clamav/libclamav/yara_grammar.c:3633,1
    - Dst: yyerror
      Src: /src/clamav/libclamav/yara_grammar.c:3646,1
    - Dst: yydestruct
      Src: /src/clamav/libclamav/yara_grammar.c:3669,1
    - Dst: YYPOPSTACK
      Src: /src/clamav/libclamav/yara_grammar.c:3691,1
    - Dst: YY_STACK_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:3693,1
    - Dst: yypact_value_is_default
      Src: /src/clamav/libclamav/yara_grammar.c:3707,1
    - Dst: yydestruct
      Src: /src/clamav/libclamav/yara_grammar.c:3723,1
    - Dst: YYPOPSTACK
      Src: /src/clamav/libclamav/yara_grammar.c:3725,1
    - Dst: YY_STACK_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:3727,1
    - Dst: yyerror
      Src: /src/clamav/libclamav/yara_grammar.c:3763,1
    - Dst: YY_
      Src: /src/clamav/libclamav/yara_grammar.c:3763,1
    - Dst: YYTRANSLATE
      Src: /src/clamav/libclamav/yara_grammar.c:3777,1
    - Dst: yydestruct
      Src: /src/clamav/libclamav/yara_grammar.c:3778,1
    - Dst: YYPOPSTACK
      Src: /src/clamav/libclamav/yara_grammar.c:3783,1
    - Dst: YY_STACK_PRINT
      Src: /src/clamav/libclamav/yara_grammar.c:3784,1
    - Dst: yydestruct
      Src: /src/clamav/libclamav/yara_grammar.c:3787,1
    - Dst: YYPOPSTACK
      Src: /src/clamav/libclamav/yara_grammar.c:3789,1
    - Dst: YYSTACK_FREE
      Src: /src/clamav/libclamav/yara_grammar.c:3793,1
    - Dst: YYSTACK_FREE
      Src: /src/clamav/libclamav/yara_grammar.c:3797,1
    CyclomaticComplexity: 228
    EdgeCount: 228
    ICount: 1041
    argCount: 2
    argNames:
    - yyscanner
    - compiler
    argTypes:
    - void*
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 3800
      start: 1452
    functionDepth: 2
    functionLinenumber: 1452
    functionLinenumberEnd: 3800
    functionName: yyparse
    functionSourceFile: /src/clamav/libclamav/yara_grammar.c
    functionUses: 0
    functionsReached:
    - YY_CAST
    - YY_ASSERT
    - yr_re_destroy
    - yr_parser_reduce_meta_declaration
    - yyerror
    - yydestruct
    - yyget_lineno
    - yr_parser_emit_with_arg
    - yywarning
    - yr_malloc
    - yr_arena_write_string
    - yr_strdup
    - strlcpy
    - yr_object_lookup_field
    - strcmp
    - CHECK_TYPE
    - YYPOPSTACK
    - YY_STACK_PRINT
    - YY_REDUCE_PRINT
    - yylex
    - yr_parser_emit_pushes_for_strings
    - yr_re_compile
    - YYTRANSLATE
    - yr_parser_reduce_string_identifier
    - yr_free
    - yr_parser_emit
    - memset
    - yr_arena_next_address
    - strlcat
    - yr_hash_table_lookup
    - yypact_value_is_default
    - YYDPRINTF
    - YYSIZEOF
    - yr_parser_reduce_string_declaration
    - yyget_extra
    - YYSTACK_FREE
    - YY_SYMBOL_PRINT
    - YY_
    - yr_parser_lookup_loop_variable
    - ERROR_IF
    - yytable_value_is_error
    - strlen
    - yr_parser_emit_with_arg_reloc
    - yyoverflow
    - yr_arena_write_data
    - PTR_TO_UINT64
    - yr_compiler_set_error_extra_info
    - YYSTACK_ALLOC
    - yr_parser_check_types
    - assert
    - YYSTACK_RELOCATE
    - YYSTACK_BYTES
    linkageType: ''
    returnType: int
    signature: int yyparse (void *yyscanner, YR_COMPILER* compiler)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/clamav/libclamav/cpio.c:92,1
    - Dst: strchr
      Src: /src/clamav/libclamav/cpio.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: sanitname
    functionSourceFile: /src/clamav/libclamav/cpio.c
    functionUses: 0
    functionsReached:
    - isascii
    - strchr
    linkageType: ''
    returnType: void
    signature: void sanitname(char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/cpio.c:109,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/cpio.c:111,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:123,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:128,1
    - Dst: EC16
      Src: /src/clamav/libclamav/cpio.c:131,1
    - Dst: MIN
      Src: /src/clamav/libclamav/cpio.c:132,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/cpio.c:133,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:134,1
    - Dst: sanitname
      Src: /src/clamav/libclamav/cpio.c:140,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:141,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/cpio.c:142,1
    - Dst: EC16
      Src: /src/clamav/libclamav/cpio.c:157,1
    - Dst: EC16
      Src: /src/clamav/libclamav/cpio.c:157,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:158,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/cpio.c:162,1
    - Dst: EC16
      Src: /src/clamav/libclamav/cpio.c:167,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:168,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/cpio.c:170,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 185
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 185
    functionName: cli_scancpio_old
    functionSourceFile: /src/clamav/libclamav/cpio.c
    functionUses: 0
    functionsReached:
    - memset
    - sanitname
    - cli_matchmeta
    - strcmp
    - EC16
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - MIN
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scancpio_old(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/cpio.c:196,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/cpio.c:198,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/cpio.c:205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:211,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/cpio.c:213,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/cpio.c:215,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:216,1
    - Dst: MIN
      Src: /src/clamav/libclamav/cpio.c:221,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/cpio.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:223,1
    - Dst: sanitname
      Src: /src/clamav/libclamav/cpio.c:229,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:230,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/cpio.c:231,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/cpio.c:240,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/cpio.c:242,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:243,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:247,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/cpio.c:252,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/cpio.c:257,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 268
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 268
    functionName: cli_scancpio_odc
    functionSourceFile: /src/clamav/libclamav/cpio.c
    functionUses: 0
    functionsReached:
    - sscanf
    - memset
    - sanitname
    - cli_matchmeta
    - strcmp
    - strncpy
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - MIN
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scancpio_odc(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/cpio.c:279,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/cpio.c:281,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/cpio.c:288,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/cpio.c:288,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:289,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:294,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/cpio.c:296,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/cpio.c:298,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:299,1
    - Dst: MIN
      Src: /src/clamav/libclamav/cpio.c:304,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/cpio.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:306,1
    - Dst: sanitname
      Src: /src/clamav/libclamav/cpio.c:312,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:313,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/cpio.c:314,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/cpio.c:329,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/cpio.c:331,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:332,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cpio.c:336,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/cpio.c:341,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/cpio.c:346,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 2
    argNames:
    - ctx
    - crc
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 361
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 361
    functionName: cli_scancpio_newc
    functionSourceFile: /src/clamav/libclamav/cpio.c
    functionUses: 0
    functionsReached:
    - sscanf
    - memset
    - sanitname
    - cli_matchmeta
    - strcmp
    - strncpy
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - MIN
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scancpio_newc(cli_ctx *ctx, int crc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_arena.c:80,1
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_arena.c:85,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 101
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 101
    functionName: _yr_arena_new_page
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - yr_free
    - yr_malloc
    linkageType: ''
    returnType: YR_ARENA_PAGE
    signature: "YR_ARENA_PAGE * _yr_arena_new_page(\n    size_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - arena
    - address
    argTypes:
    - YR_ARENA*
    - void*
    constantsTouched: []
    func_position:
      end: 146
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 146
    functionName: _yr_arena_page_for_address
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YR_ARENA_PAGE
    signature: "YR_ARENA_PAGE * _yr_arena_page_for_address(\n    YR_ARENA* arena,\n
      \   void* address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _yr_arena_page_for_address
      Src: /src/clamav/libclamav/yara_arena.c:176,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:178,1
    - Dst: va_arg
      Src: /src/clamav/libclamav/yara_arena.c:181,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:185,1
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_arena.c:187,1
    - Dst: va_arg
      Src: /src/clamav/libclamav/yara_arena.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - arena
    - base
    - offsets
    argTypes:
    - YR_ARENA*
    - void*
    - va_list
    constantsTouched: []
    func_position:
      end: 206
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 206
    functionName: _yr_arena_make_relocatable
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - va_arg
    - _yr_arena_page_for_address
    - assert
    - yr_malloc
    linkageType: ''
    returnType: int
    signature: "int _yr_arena_make_relocatable(\n    YR_ARENA* arena,\n    void* base,\n
      \   va_list offsets)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_arena.c:233,1
    - Dst: _yr_arena_new_page
      Src: /src/clamav/libclamav/yara_arena.c:238,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - initial_size
    - flags
    - arena
    argTypes:
    - size_t
    - int
    - YR_ARENA**
    constantsTouched: []
    func_position:
      end: 252
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 252
    functionName: yr_arena_create
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - _yr_arena_new_page
    - yr_free
    - yr_malloc
    linkageType: ''
    returnType: int
    signature: "int yr_arena_create(\n    size_t initial_size,\n    int flags,\n    YR_ARENA**
      arena)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:285,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:289,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:290,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - arena
    argTypes:
    - YR_ARENA*
    constantsTouched: []
    func_position:
      end: 296
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 296
    functionName: yr_arena_destroy
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - yr_free
    linkageType: ''
    returnType: void
    signature: "void yr_arena_destroy(\n    YR_ARENA* arena)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arena
    argTypes:
    - YR_ARENA*
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: yr_arena_base_address
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void * yr_arena_base_address(\n  YR_ARENA* arena)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _yr_arena_page_for_address
      Src: /src/clamav/libclamav/yara_arena.c:344,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - arena
    - address
    - offset
    argTypes:
    - YR_ARENA*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 384
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 384
    functionName: yr_arena_next_address
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 1
    functionsReached:
    - _yr_arena_page_for_address
    - assert
    linkageType: ''
    returnType: void
    signature: "void * yr_arena_next_address(\n  YR_ARENA* arena,\n  void* address,\n
      \ size_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _yr_arena_new_page
      Src: /src/clamav/libclamav/yara_arena.c:421,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/yara_arena.c:432,1
    - Dst: _yr_arena_page_for_address
      Src: /src/clamav/libclamav/yara_arena.c:465,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:466,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:479,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:480,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - arena
    argTypes:
    - YR_ARENA*
    constantsTouched: []
    func_position:
      end: 489
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 489
    functionName: yr_arena_coalesce
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - _yr_arena_new_page
    - yr_free
    - _yr_arena_page_for_address
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: "int yr_arena_coalesce(\n    YR_ARENA* arena)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_space
      Src: /src/clamav/libclamav/yara_arena.c:515,1
    - Dst: yr_realloc
      Src: /src/clamav/libclamav/yara_arena.c:532,1
    - Dst: _yr_arena_new_page
      Src: /src/clamav/libclamav/yara_arena.c:544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - YR_ARENA*
    - size_t
    constantsTouched: []
    func_position:
      end: 557
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 557
    functionName: yr_arena_reserve_memory
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - _yr_arena_new_page
    - yr_realloc
    - free_space
    linkageType: ''
    returnType: int
    signature: "int yr_arena_reserve_memory(\n    YR_ARENA* arena,\n    size_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_ON_ERROR
      Src: /src/clamav/libclamav/yara_arena.c:579,1
    - Dst: yr_arena_reserve_memory
      Src: /src/clamav/libclamav/yara_arena.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - arena
    - size
    - allocated_memory
    argTypes:
    - YR_ARENA*
    - size_t
    - void**
    constantsTouched: []
    func_position:
      end: 587
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 587
    functionName: yr_arena_allocate_memory
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - yr_arena_reserve_memory
    - FAIL_ON_ERROR
    linkageType: ''
    returnType: int
    signature: "int yr_arena_allocate_memory(\n    YR_ARENA* arena,\n    size_t size,\n
      \   void** allocated_memory)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/libclamav/yara_arena.c:631,1
    - Dst: yr_arena_allocate_memory
      Src: /src/clamav/libclamav/yara_arena.c:633,1
    - Dst: _yr_arena_make_relocatable
      Src: /src/clamav/libclamav/yara_arena.c:636,1
    - Dst: va_end
      Src: /src/clamav/libclamav/yara_arena.c:638,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_arena.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - arena
    - size
    - allocated_memory
    argTypes:
    - YR_ARENA*
    - size_t
    - void**
    constantsTouched: []
    func_position:
      end: 643
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 643
    functionName: yr_arena_allocate_struct
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - yr_arena_allocate_memory
    - memset
    - _yr_arena_make_relocatable
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: "int yr_arena_allocate_struct(\n    YR_ARENA* arena,\n    size_t size,\n
      \   void** allocated_memory,\n    ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/libclamav/yara_arena.c:669,1
    - Dst: _yr_arena_make_relocatable
      Src: /src/clamav/libclamav/yara_arena.c:671,1
    - Dst: va_end
      Src: /src/clamav/libclamav/yara_arena.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - arena
    - base
    argTypes:
    - YR_ARENA*
    - void*
    constantsTouched: []
    func_position:
      end: 676
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 676
    functionName: yr_arena_make_relocatable
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 2
    functionsReached:
    - va_start
    - _yr_arena_make_relocatable
    - va_end
    linkageType: ''
    returnType: int
    signature: "int yr_arena_make_relocatable(\n    YR_ARENA* arena,\n    void* base,\n
      \   ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_space
      Src: /src/clamav/libclamav/yara_arena.c:704,1
    - Dst: yr_arena_allocate_memory
      Src: /src/clamav/libclamav/yara_arena.c:706,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/yara_arena.c:717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - arena
    - data
    - size
    - written_data
    argTypes:
    - YR_ARENA*
    - void*
    - size_t
    - void**
    constantsTouched: []
    func_position:
      end: 723
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 723
    functionName: yr_arena_write_data
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 1
    functionsReached:
    - memcpy
    - yr_arena_allocate_memory
    - free_space
    linkageType: ''
    returnType: int
    signature: "int yr_arena_write_data(\n    YR_ARENA* arena,\n    void* data,\n
      \   size_t size,\n    void** written_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_arena.c:746,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_arena.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - string
    - written_string
    argTypes:
    - YR_ARENA*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 751
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 751
    functionName: yr_arena_write_string
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 1
    functionsReached:
    - strlen
    - yr_arena_write_data
    linkageType: ''
    returnType: int
    signature: "int yr_arena_write_string(\n    YR_ARENA* arena,\n    const char*
      string,\n    char** written_string)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - target_arena
    - source_arena
    argTypes:
    - YR_ARENA*
    - YR_ARENA*
    constantsTouched: []
    func_position:
      end: 779
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 779
    functionName: yr_arena_append
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - yr_free
    linkageType: ''
    returnType: int
    signature: "int yr_arena_append(\n    YR_ARENA* target_arena,\n    YR_ARENA* source_arena)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:811,1
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_arena.c:813,1
    - Dst: _yr_arena_new_page
      Src: /src/clamav/libclamav/yara_arena.c:819,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_arena.c:823,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/yara_arena.c:827,1
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_arena.c:835,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:856,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - arena
    - duplicated
    argTypes:
    - YR_ARENA*
    - YR_ARENA**
    constantsTouched: []
    func_position:
      end: 874
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 874
    functionName: yr_arena_duplicate
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - _yr_arena_new_page
    - yr_free
    - yr_malloc
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: "int yr_arena_duplicate(\n    YR_ARENA* arena,\n    YR_ARENA** duplicated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:906,1
    - Dst: fopen
      Src: /src/clamav/libclamav/yara_arena.c:908,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:924,1
    - Dst: assert
      Src: /src/clamav/libclamav/yara_arena.c:925,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/yara_arena.c:943,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/yara_arena.c:944,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/yara_arena.c:951,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/yara_arena.c:964,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:965,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 2
    argNames:
    - arena
    - filename
    argTypes:
    - YR_ARENA*
    - char*
    constantsTouched: []
    func_position:
      end: 968
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 968
    functionName: yr_arena_save
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - fwrite
    - fclose
    - assert
    - fopen
    linkageType: ''
    returnType: int
    signature: "int yr_arena_save(\n  YR_ARENA* arena,\n  const char* filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/yara_arena.c:1002,1
    - Dst: fseek
      Src: /src/clamav/libclamav/yara_arena.c:1007,1
    - Dst: ftell
      Src: /src/clamav/libclamav/yara_arena.c:1008,1
    - Dst: fseek
      Src: /src/clamav/libclamav/yara_arena.c:1009,1
    - Dst: fread
      Src: /src/clamav/libclamav/yara_arena.c:1011,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1013,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1022,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1028,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1034,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_arena.c:1038,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1042,1
    - Dst: fread
      Src: /src/clamav/libclamav/yara_arena.c:1048,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1050,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_arena.c:1051,1
    - Dst: fread
      Src: /src/clamav/libclamav/yara_arena.c:1057,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1059,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_arena.c:1060,1
    - Dst: yr_arena_make_relocatable
      Src: /src/clamav/libclamav/yara_arena.c:1066,1
    - Dst: fread
      Src: /src/clamav/libclamav/yara_arena.c:1076,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1078,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_arena.c:1079,1
    - Dst: fclose
      Src: /src/clamav/libclamav/yara_arena.c:1084,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - filename
    - arena
    argTypes:
    - char*
    - YR_ARENA**
    constantsTouched: []
    func_position:
      end: 1089
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 1089
    functionName: yr_arena_load
    functionSourceFile: /src/clamav/libclamav/yara_arena.c
    functionUses: 0
    functionsReached:
    - fseek
    - yr_arena_make_relocatable
    - yr_arena_destroy
    - fread
    - ftell
    - yr_arena_create
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: "int yr_arena_load(\n    const char* filename,\n    YR_ARENA** arena)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:180,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/gif.c:189,1
    - Dst: strlen
      Src: /src/clamav/libclamav/gif.c:189,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:190,1
    - Dst: strlen
      Src: /src/clamav/libclamav/gif.c:193,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/gif.c:195,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:196,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gif.c:200,1
    - Dst: strlen
      Src: /src/clamav/libclamav/gif.c:200,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:201,1
    - Dst: strlen
      Src: /src/clamav/libclamav/gif.c:204,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:207,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gif.c:212,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:213,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:220,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/gif.c:221,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/gif.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:226,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:229,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:230,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:236,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gif.c:245,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:249,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:251,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:252,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:270,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gif.c:272,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:273,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:274,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:281,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:288,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:291,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:294,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:297,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gif.c:306,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:307,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:315,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:318,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:322,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:323,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:336,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gif.c:337,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:338,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:339,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:345,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/gif.c:346,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/gif.c:347,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/gif.c:348,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/gif.c:349,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:353,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:356,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/gif.c:370,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:371,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:372,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:379,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:382,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:386,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:387,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/gif.c:398,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/gif.c:399,1
    - Dst: strlen
      Src: /src/clamav/libclamav/gif.c:411,1
    - Dst: strlen
      Src: /src/clamav/libclamav/gif.c:412,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/gif.c:418,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/gif.c:419,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 200
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 426
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 426
    functionName: cli_parsegif
    functionSourceFile: /src/clamav/libclamav/gif.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_errmsg
    - cli_append_potentially_unwanted
    - le16_to_host
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - fmap_need_off
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_parsegif(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/line.c:73,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/line.c:76,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/line.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: lineCreate
    functionSourceFile: /src/clamav/libclamav/line.c
    functionUses: 0
    functionsReached:
    - cli_max_malloc
    - memcpy
    - cli_errmsg
    linkageType: ''
    returnType: line_t
    signature: 'line_t *

      lineCreate(const char *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/line.c:91,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/line.c:93,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/line.c:93,1
    - Dst: lineCreate
      Src: /src/clamav/libclamav/line.c:94,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/line.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - line
    argTypes:
    - line_t*
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: lineLink
    functionSourceFile: /src/clamav/libclamav/line.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - assert
    - lineGetData
    - lineCreate
    linkageType: ''
    returnType: line_t
    signature: 'line_t *

      lineLink(line_t *line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/line.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - line
    argTypes:
    - line_t*
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: lineUnlink
    functionSourceFile: /src/clamav/libclamav/line.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: line_t
    signature: 'line_t *

      lineUnlink(line_t *line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - line_t*
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: lineGetData
    functionSourceFile: /src/clamav/libclamav/line.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      lineGetData(const line_t *line)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:62,1
    - Dst: malloc
      Src: /src/clamav/libclamav/libmspack.c:65,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:67,1
    - Dst: memset
      Src: /src/clamav/libclamav/libmspack.c:70,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:93,1
    - Dst: fopen
      Src: /src/clamav/libclamav/libmspack.c:99,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:101,1
    - Dst: memset
      Src: /src/clamav/libclamav/libmspack.c:110,1
    - Dst: free
      Src: /src/clamav/libclamav/libmspack.c:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - self
    - filename
    - mode
    argTypes:
    - struct mspack_system*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 114
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 114
    functionName: mspack_fmap_open
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_dbgmsg
    - malloc
    - free
    - fopen
    linkageType: ''
    returnType: struct mspack_file
    signature: "struct mspack_file *mspack_fmap_open(struct mspack_system *self,\n
      \                                           const char *filename, int mode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/clamav/libclamav/libmspack.c:125,1
    - Dst: memset
      Src: /src/clamav/libclamav/libmspack.c:127,1
    - Dst: free
      Src: /src/clamav/libclamav/libmspack.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: mspack_fmap_close
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - fclose
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void mspack_fmap_close(struct mspack_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:141,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:145,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/libmspack.c:153,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:155,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:158,1
    - Dst: fread
      Src: /src/clamav/libclamav/libmspack.c:166,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 176
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 176
    functionName: mspack_fmap_read
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - fread
    - fmap_readn
    linkageType: ''
    returnType: int
    signature: int mspack_fmap_read(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:185,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:190,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/libmspack.c:205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - file
    - buffer
    - bytes
    argTypes:
    - struct mspack_file*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 212
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 212
    functionName: mspack_fmap_write
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - fwrite
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int mspack_fmap_write(struct mspack_file *file, void *buffer, int bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:219,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:237,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:241,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:260,1
    - Dst: fseek
      Src: /src/clamav/libclamav/libmspack.c:264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - file
    - offset
    - mode
    argTypes:
    - struct mspack_file*
    - off_t
    - int
    constantsTouched: []
    func_position:
      end: 265
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 265
    functionName: mspack_fmap_seek
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - fseek
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int mspack_fmap_seek(struct mspack_file *file, off_t offset, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ftell
      Src: /src/clamav/libclamav/libmspack.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct mspack_file*
    constantsTouched: []
    func_position:
      end: 278
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 278
    functionName: mspack_fmap_tell
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - ftell
    linkageType: ''
    returnType: off_t
    signature: off_t mspack_fmap_tell(struct mspack_file *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/libmspack.c:282,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/libmspack.c:284,1
    - Dst: memset
      Src: /src/clamav/libclamav/libmspack.c:289,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/libmspack.c:292,1
    - Dst: va_start
      Src: /src/clamav/libclamav/libmspack.c:294,1
    - Dst: vsnprintf
      Src: /src/clamav/libclamav/libmspack.c:295,1
    - Dst: va_end
      Src: /src/clamav/libclamav/libmspack.c:296,1
    - Dst: strlen
      Src: /src/clamav/libclamav/libmspack.c:299,1
    - Dst: strlen
      Src: /src/clamav/libclamav/libmspack.c:300,1
    - Dst: clrs_eprint
      Src: /src/clamav/libclamav/libmspack.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - file
    - fmt
    argTypes:
    - struct mspack_file*
    - char*
    constantsTouched: []
    func_position:
      end: 304
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 304
    functionName: mspack_fmap_message
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - memset
    - UNLIKELY
    - UNUSEDPARAM
    - vsnprintf
    - strlen
    - va_start
    - va_end
    - clrs_eprint
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mspack_fmap_message(struct mspack_file *file, const char *fmt,
      ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/libmspack.c:308,1
    - Dst: memset
      Src: /src/clamav/libclamav/libmspack.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - num
    argTypes:
    - struct mspack_system*
    - size_t
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: mspack_fmap_alloc
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - memset
    linkageType: ''
    returnType: void
    signature: void *mspack_fmap_alloc(struct mspack_system *self, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/libmspack.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mem
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: mspack_fmap_free
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mspack_fmap_free(void *mem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/libmspack.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - dst
    - num
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: mspack_fmap_copy
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mspack_fmap_copy(void *src, void *dst, size_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/libmspack.c:359,1
    - Dst: mspack_create_cab_decompressor
      Src: /src/clamav/libclamav/libmspack.c:362,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:364,1
    - Dst: struct mscab_decompressor*::set_param
      Src: /src/clamav/libclamav/libmspack.c:369,1
    - Dst: struct mscab_decompressor*::set_param
      Src: /src/clamav/libclamav/libmspack.c:371,1
    - Dst: struct mscab_decompressor*::open
      Src: /src/clamav/libclamav/libmspack.c:374,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:376,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/libmspack.c:385,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/libmspack.c:420,1
    - Dst: struct mscab_decompressor*::extract
      Src: /src/clamav/libclamav/libmspack.c:429,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:432,1
    - Dst: cli_magic_scan_file
      Src: /src/clamav/libclamav/libmspack.c:436,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/libmspack.c:446,1
    - Dst: free
      Src: /src/clamav/libclamav/libmspack.c:452,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/libmspack.c:462,1
    - Dst: free
      Src: /src/clamav/libclamav/libmspack.c:465,1
    - Dst: struct mscab_decompressor*::close
      Src: /src/clamav/libclamav/libmspack.c:470,1
    - Dst: mspack_destroy_cab_decompressor
      Src: /src/clamav/libclamav/libmspack.c:472,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 93
    argCount: 2
    argNames:
    - ctx
    - sfx_offset
    argTypes:
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 476
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 476
    functionName: cli_scanmscab
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_file
    - memset
    - cli_matchmeta
    - cli_unlink
    - struct mscab_decompressor*::close
    - struct mscab_decompressor*::open
    - cli_gentemp
    - struct mscab_decompressor*::extract
    - mspack_create_cab_decompressor
    - cli_dbgmsg
    - mspack_destroy_cab_decompressor
    - struct mscab_decompressor*::set_param
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanmscab(cli_ctx *ctx, off_t sfx_offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/libmspack.c:493,1
    - Dst: mspack_create_chm_decompressor
      Src: /src/clamav/libclamav/libmspack.c:496,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:498,1
    - Dst: struct mschm_decompressor*::open
      Src: /src/clamav/libclamav/libmspack.c:503,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:505,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/libmspack.c:514,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/libmspack.c:549,1
    - Dst: struct mschm_decompressor*::extract
      Src: /src/clamav/libclamav/libmspack.c:558,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/libmspack.c:561,1
    - Dst: cli_magic_scan_file
      Src: /src/clamav/libclamav/libmspack.c:565,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/libmspack.c:575,1
    - Dst: free
      Src: /src/clamav/libclamav/libmspack.c:581,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/libmspack.c:591,1
    - Dst: free
      Src: /src/clamav/libclamav/libmspack.c:594,1
    - Dst: struct mschm_decompressor*::close
      Src: /src/clamav/libclamav/libmspack.c:599,1
    - Dst: mspack_destroy_chm_decompressor
      Src: /src/clamav/libclamav/libmspack.c:601,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 605
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 605
    functionName: cli_scanmschm
    functionSourceFile: /src/clamav/libclamav/libmspack.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_file
    - memset
    - cli_matchmeta
    - struct mschm_decompressor*::open
    - mspack_destroy_chm_decompressor
    - cli_unlink
    - cli_gentemp
    - struct mschm_decompressor*::extract
    - cli_dbgmsg
    - struct mschm_decompressor*::close
    - free
    - mspack_create_chm_decompressor
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanmschm(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:53,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:54,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:56,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:71,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:72,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:73,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:74,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:75,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:76,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:77,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:78,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:79,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:80,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_detect.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct cli_environment*
    constantsTouched: []
    func_position:
      end: 82
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 82
    functionName: cli_print_environment
    functionSourceFile: /src/clamav/libclamav/bytecode_detect.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void cli_print_environment(struct cli_environment *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/bytecode_detect.c:90,1
    - Dst: fgets
      Src: /src/clamav/libclamav/bytecode_detect.c:93,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/bytecode_detect.c:94,1
    - Dst: strchr
      Src: /src/clamav/libclamav/bytecode_detect.c:96,1
    - Dst: fclose
      Src: /src/clamav/libclamav/bytecode_detect.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: detect_PaX
    functionSourceFile: /src/clamav/libclamav/bytecode_detect.c
    functionUses: 0
    functionsReached:
    - strchr
    - memcmp
    - fclose
    - fgets
    - fopen
    linkageType: ''
    returnType: int
    signature: int detect_PaX(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/bytecode_detect.c:110,1
    - Dst: fopen
      Src: /src/clamav/libclamav/bytecode_detect.c:112,1
    - Dst: fscanf
      Src: /src/clamav/libclamav/bytecode_detect.c:116,1
    - Dst: fclose
      Src: /src/clamav/libclamav/bytecode_detect.c:118,1
    - Dst: fgets
      Src: /src/clamav/libclamav/bytecode_detect.c:122,1
    - Dst: strstr
      Src: /src/clamav/libclamav/bytecode_detect.c:123,1
    - Dst: fclose
      Src: /src/clamav/libclamav/bytecode_detect.c:128,1
    - Dst: fopen
      Src: /src/clamav/libclamav/bytecode_detect.c:132,1
    - Dst: fscanf
      Src: /src/clamav/libclamav/bytecode_detect.c:134,1
    - Dst: fclose
      Src: /src/clamav/libclamav/bytecode_detect.c:140,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 143
    functionName: detect_SELinux
    functionSourceFile: /src/clamav/libclamav/bytecode_detect.c
    functionUses: 0
    functionsReached:
    - strstr
    - fscanf
    - fclose
    - fgets
    - fopen
    linkageType: ''
    returnType: int
    signature: int detect_SELinux(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: detect_PaX
      Src: /src/clamav/libclamav/bytecode_detect.c:148,1
    - Dst: detect_SELinux
      Src: /src/clamav/libclamav/bytecode_detect.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - os_features
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 170
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 170
    functionName: detect_os_features
    functionSourceFile: /src/clamav/libclamav/bytecode_detect.c
    functionUses: 0
    functionsReached:
    - detect_PaX
    - detect_SELinux
    linkageType: ''
    returnType: void
    signature: void detect_os_features(uint8_t *os_features)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - os_features
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: detect_os_features
    functionSourceFile: /src/clamav/libclamav/bytecode_detect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void detect_os_features(uint8_t *os_features)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_detect.c:184,1
    - Dst: CHECK_ARCH
      Src: /src/clamav/libclamav/bytecode_detect.c:193,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/bytecode_detect.c:195,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/bytecode_detect.c:196,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/bytecode_detect.c:197,1
    - Dst: MAKE_VERSION
      Src: /src/clamav/libclamav/bytecode_detect.c:270,1
    - Dst: have_clamjit
      Src: /src/clamav/libclamav/bytecode_detect.c:278,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/bytecode_detect.c:281,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:284,1
    - Dst: cl_retver
      Src: /src/clamav/libclamav/bytecode_detect.c:284,1
    - Dst: uname
      Src: /src/clamav/libclamav/bytecode_detect.c:288,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:289,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:290,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:291,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:292,1
    - Dst: GetVersionEx
      Src: /src/clamav/libclamav/bytecode_detect.c:300,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:302,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:304,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/bytecode_detect.c:305,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/bytecode_detect.c:308,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/bytecode_detect.c:315,1
    - Dst: detect_os_features
      Src: /src/clamav/libclamav/bytecode_detect.c:318,1
    - Dst: cli_detect_env_jit
      Src: /src/clamav/libclamav/bytecode_detect.c:320,1
    - Dst: cli_print_environment
      Src: /src/clamav/libclamav/bytecode_detect.c:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 69
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct cli_environment*
    constantsTouched: []
    func_position:
      end: 329
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 329
    functionName: cli_detect_environment
    functionSourceFile: /src/clamav/libclamav/bytecode_detect.c
    functionUses: 1
    functionsReached:
    - memset
    - snprintf
    - strcmp
    - MAKE_VERSION
    - cl_retflevel
    - cli_print_environment
    - cli_detect_env_jit
    - have_clamjit
    - CHECK_ARCH
    - detect_os_features
    - uname
    - cl_retver
    - GetVersionEx
    - INIT_STRFIELD
    linkageType: ''
    returnType: void
    signature: void cli_detect_environment(struct cli_environment *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/clamav/libclamav/crtmgr.c:47,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/crtmgr.c:48,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/crtmgr.c:49,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:52,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:53,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - x509
    argTypes:
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: cli_crt_init_fps
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_new
    linkageType: ''
    returnType: int
    signature: int cli_crt_init_fps(cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/crtmgr.c:66,1
    - Dst: cli_crt_init_fps
      Src: /src/clamav/libclamav/crtmgr.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x509
    argTypes:
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: cli_crt_init
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - memset
    - cli_crt_init_fps
    linkageType: ''
    returnType: int
    signature: int cli_crt_init(cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:72,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:73,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - x509
    argTypes:
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: cli_crt_clear
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void cli_crt_clear(cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:138,1
    - Dst: BN_cmp
      Src: /src/clamav/libclamav/crtmgr.c:140,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:146,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:156,1
    - Dst: BN_cmp
      Src: /src/clamav/libclamav/crtmgr.c:157,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 24
    argCount: 3
    argNames:
    - m
    - x509
    - crb_crts_only
    argTypes:
    - crtmgr*
    - cli_crt*
    - int
    constantsTouched: []
    func_position:
      end: 162
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 162
    functionName: crtmgr_trust_list_lookup
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - memcmp
    - BN_cmp
    linkageType: ''
    returnType: cli_crt
    signature: cli_crt *crtmgr_trust_list_lookup(crtmgr *m, cli_crt *x509, int crb_crts_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:187,1
    - Dst: BN_cmp
      Src: /src/clamav/libclamav/crtmgr.c:188,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - m
    - x509
    argTypes:
    - crtmgr*
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 200
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 200
    functionName: crtmgr_block_list_lookup
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - memcmp
    - BN_cmp
    linkageType: ''
    returnType: cli_crt
    signature: cli_crt *crtmgr_block_list_lookup(crtmgr *m, cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crtmgr_block_list_lookup
      Src: /src/clamav/libclamav/crtmgr.c:207,1
    - Dst: crtmgr_trust_list_lookup
      Src: /src/clamav/libclamav/crtmgr.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - m
    - x509
    argTypes:
    - crtmgr*
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: crtmgr_lookup
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - crtmgr_block_list_lookup
    - crtmgr_trust_list_lookup
    linkageType: ''
    returnType: cli_crt
    signature: cli_crt *crtmgr_lookup(crtmgr *m, cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crtmgr_block_list_lookup
      Src: /src/clamav/libclamav/crtmgr.c:219,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:220,1
    - Dst: crtmgr_trust_list_lookup
      Src: /src/clamav/libclamav/crtmgr.c:225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:226,1
    - Dst: malloc
      Src: /src/clamav/libclamav/crtmgr.c:232,1
    - Dst: cli_crt_init_fps
      Src: /src/clamav/libclamav/crtmgr.c:237,1
    - Dst: BN_copy
      Src: /src/clamav/libclamav/crtmgr.c:241,1
    - Dst: BN_copy
      Src: /src/clamav/libclamav/crtmgr.c:244,1
    - Dst: BN_copy
      Src: /src/clamav/libclamav/crtmgr.c:247,1
    - Dst: strdup
      Src: /src/clamav/libclamav/crtmgr.c:252,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crtmgr.c:259,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crtmgr.c:260,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crtmgr.c:261,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crtmgr.c:262,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crtmgr.c:263,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crtmgr.c:264,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crtmgr.c:265,1
    - Dst: cli_crt_clear
      Src: /src/clamav/libclamav/crtmgr.c:288,1
    - Dst: free
      Src: /src/clamav/libclamav/crtmgr.c:289,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 2
    argNames:
    - m
    - x509
    argTypes:
    - crtmgr*
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 293
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 293
    functionName: crtmgr_add
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 2
    functionsReached:
    - strdup
    - crtmgr_trust_list_lookup
    - cli_dbgmsg
    - crtmgr_block_list_lookup
    - cli_crt_clear
    - memcpy
    - malloc
    - cli_crt_init_fps
    - BN_copy
    - free
    linkageType: ''
    returnType: bool
    signature: bool crtmgr_add(crtmgr *m, cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - crtmgr*
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: crtmgr_init
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void crtmgr_init(crtmgr *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_crt_clear
      Src: /src/clamav/libclamav/crtmgr.c:312,1
    - Dst: free
      Src: /src/clamav/libclamav/crtmgr.c:314,1
    - Dst: free
      Src: /src/clamav/libclamav/crtmgr.c:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - m
    - x509
    argTypes:
    - crtmgr*
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 320
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 320
    functionName: crtmgr_del
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - free
    - cli_crt_clear
    linkageType: ''
    returnType: void
    signature: void crtmgr_del(crtmgr *m, cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crtmgr_del
      Src: /src/clamav/libclamav/crtmgr.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - crtmgr*
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: crtmgr_free
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 2
    functionsReached:
    - crtmgr_del
    linkageType: ''
    returnType: void
    signature: void crtmgr_free(crtmgr *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:350,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:357,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:369,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:377,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:382,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 5
    argNames:
    - to
    - tlen
    - from
    - flen
    - num
    argTypes:
    - uint8_t**
    - int*
    - uint8_t*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 391
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 391
    functionName: _padding_check_PKCS1_type_1
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t _padding_check_PKCS1_type_1(uint8_t **to, int *tlen,\n
      \                                             uint8_t *from, unsigned int flen,\n
      \                                             unsigned int num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/clamav/libclamav/crtmgr.c:409,1
    - Dst: BN_CTX_new
      Src: /src/clamav/libclamav/crtmgr.c:410,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/crtmgr.c:414,1
    - Dst: CLI_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/crtmgr.c:418,1
    - Dst: BN_mod_exp
      Src: /src/clamav/libclamav/crtmgr.c:420,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/crtmgr.c:421,1
    - Dst: BN_bn2bin
      Src: /src/clamav/libclamav/crtmgr.c:425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:427,1
    - Dst: _padding_check_PKCS1_type_1
      Src: /src/clamav/libclamav/crtmgr.c:431,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:433,1
    - Dst: BN_CTX_free
      Src: /src/clamav/libclamav/crtmgr.c:441,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:442,1
    - Dst: free
      Src: /src/clamav/libclamav/crtmgr.c:443,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 5
    argNames:
    - sig
    - x509
    - buffer
    - payload
    - payload_len
    argTypes:
    - BIGNUM*
    - cli_crt*
    - uint8_t**
    - uint8_t**
    - int*
    constantsTouched: []
    func_position:
      end: 445
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 445
    functionName: crtmgr_get_recov_data
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp
    - _padding_check_PKCS1_type_1
    - cli_warnmsg
    - CLI_MALLOC_OR_GOTO_DONE
    - BN_bn2bin
    - BN_CTX_free
    - BN_free
    - BN_CTX_new
    - cli_dbgmsg
    - free
    - BN_num_bytes
    - BN_new
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t crtmgr_get_recov_data(BIGNUM *sig, cli_crt *x509,\n                                        uint8_t
      **buffer, uint8_t **payload,\n                                        int *payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/crtmgr.c:467,1
    - Dst: MAX
      Src: /src/clamav/libclamav/crtmgr.c:471,1
    - Dst: MIN
      Src: /src/clamav/libclamav/crtmgr.c:471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:472,1
    - Dst: crtmgr_get_recov_data
      Src: /src/clamav/libclamav/crtmgr.c:476,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:484,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:490,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:497,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:506,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:511,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/crtmgr.c:512,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:517,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/crtmgr.c:518,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:524,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:525,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:531,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:532,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:538,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:539,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/crtmgr.c:544,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/crtmgr.c:548,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:555,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:561,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:565,1
    - Dst: free
      Src: /src/clamav/libclamav/crtmgr.c:574,1
    - Dst: free
      Src: /src/clamav/libclamav/crtmgr.c:579,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 107
    argCount: 4
    argNames:
    - x509
    - sig
    - hashtype
    - refhash
    argTypes:
    - cli_crt*
    - BIGNUM*
    - cli_crt_hashtype
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 581
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 581
    functionName: crtmgr_rsa_verify
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 0
    functionsReached:
    - MAX
    - crtmgr_get_recov_data
    - cli_dbgmsg
    - MIN
    - memcmp
    - cli_errmsg
    - free
    linkageType: ''
    returnType: int
    signature: int crtmgr_rsa_verify(cli_crt *x509, BIGNUM *sig, cli_crt_hashtype
      hashtype, const uint8_t *refhash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:606,1
    - Dst: crtmgr_rsa_verify
      Src: /src/clamav/libclamav/crtmgr.c:607,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/crtmgr.c:623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - m
    - x509
    argTypes:
    - crtmgr*
    - cli_crt*
    constantsTouched: []
    func_position:
      end: 626
      start: 586
    functionDepth: 4
    functionLinenumber: 586
    functionLinenumberEnd: 626
    functionName: crtmgr_verify_crt
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - memcmp
    - crtmgr_rsa_verify
    linkageType: ''
    returnType: cli_crt
    signature: cli_crt *crtmgr_verify_crt(crtmgr *m, cli_crt *x509)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:634,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/crtmgr.c:638,1
    - Dst: BN_bin2bn
      Src: /src/clamav/libclamav/crtmgr.c:642,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:649,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/crtmgr.c:650,1
    - Dst: crtmgr_rsa_verify
      Src: /src/clamav/libclamav/crtmgr.c:651,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/crtmgr.c:654,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/crtmgr.c:657,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 8
    argNames:
    - m
    - issuer
    - serial
    - signature
    - signature_len
    - hashtype
    - refhash
    - vrfytype
    argTypes:
    - crtmgr*
    - uint8_t*
    - uint8_t*
    - void*
    - unsigned int
    - cli_crt_hashtype
    - uint8_t*
    - cli_vrfy_type
    constantsTouched: []
    func_position:
      end: 659
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 659
    functionName: crtmgr_verify_pkcs7
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 2
    functionsReached:
    - BN_bin2bn
    - BN_free
    - cli_dbgmsg
    - crtmgr_rsa_verify
    - memcmp
    - BN_new
    linkageType: ''
    returnType: cli_crt
    signature: cli_crt *crtmgr_verify_pkcs7(crtmgr *m, const uint8_t *issuer, const
      uint8_t *serial, const void *signature, unsigned int signature_len, cli_crt_hashtype
      hashtype, const uint8_t *refhash, cli_vrfy_type vrfytype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crtmgr_add
      Src: /src/clamav/libclamav/crtmgr.c:672,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/crtmgr.c:673,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - engine
    - m
    - exclude_bl_crts
    argTypes:
    - struct cl_engine*
    - crtmgr*
    - int
    constantsTouched: []
    func_position:
      end: 682
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 682
    functionName: crtmgr_add_roots
    functionSourceFile: /src/clamav/libclamav/crtmgr.c
    functionUses: 1
    functionsReached:
    - crtmgr_free
    - crtmgr_add
    linkageType: ''
    returnType: int
    signature: int crtmgr_add_roots(struct cl_engine *engine, crtmgr *m, int exclude_bl_crts)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 70
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 70
    functionName: tld_hash
    functionSourceFile: /src/clamav/libclamav/iana_tld.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int tld_hash(const char *str, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/iana_tld.h:712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 717
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 717
    functionName: in_tld_set
    functionSourceFile: /src/clamav/libclamav/iana_tld.h
    functionUses: 3
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: __GNUC_STDC_INLINE__
    signature: "__GNUC_STDC_INLINE__ *\n    in_tld_set(const char *str, unsigned int
      len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct ASPK*
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: readstream
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int readstream(struct ASPK *stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: readstream
      Src: /src/clamav/libclamav/aspack.c:91,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - stream
    - which
    - err
    argTypes:
    - struct ASPK*
    - uint8_t
    - int*
    constantsTouched: []
    func_position:
      end: 132
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 132
    functionName: getdec
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 0
    functionsReached:
    - readstream
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getdec(struct ASPK *stream, uint8_t which, int *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:141,1
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:142,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/aspack.c:165,1
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:166,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - stream
    - array
    - which
    argTypes:
    - struct ASPK*
    - uint8_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 187
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 187
    functionName: build_decrypt_array
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 0
    functionsReached:
    - CLI_ISCONTAINED
    - memset
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t build_decrypt_array(struct ASPK *stream, uint8_t *array, uint8_t
      which)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: readstream
      Src: /src/clamav/libclamav/aspack.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - stream
    - num
    - err
    argTypes:
    - struct ASPK*
    - uint32_t
    - int*
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: getbits
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 20
    functionsReached:
    - readstream
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t getbits(struct ASPK *stream, uint32_t num, int *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getbits
      Src: /src/clamav/libclamav/aspack.c:211,1
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:211,1
    - Dst: getbits
      Src: /src/clamav/libclamav/aspack.c:215,1
    - Dst: build_decrypt_array
      Src: /src/clamav/libclamav/aspack.c:219,1
    - Dst: getdec
      Src: /src/clamav/libclamav/aspack.c:223,1
    - Dst: getbits
      Src: /src/clamav/libclamav/aspack.c:228,1
    - Dst: getbits
      Src: /src/clamav/libclamav/aspack.c:230,1
    - Dst: getbits
      Src: /src/clamav/libclamav/aspack.c:239,1
    - Dst: build_decrypt_array
      Src: /src/clamav/libclamav/aspack.c:254,1
    - Dst: build_decrypt_array
      Src: /src/clamav/libclamav/aspack.c:254,1
    - Dst: build_decrypt_array
      Src: /src/clamav/libclamav/aspack.c:254,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/aspack.c:264,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct ASPK*
    constantsTouched: []
    func_position:
      end: 267
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 267
    functionName: build_decrypt_dictionaries
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 0
    functionsReached:
    - memset
    - getdec
    - build_decrypt_array
    - getbits
    - memcpy
    linkageType: ''
    returnType: int
    signature: int build_decrypt_dictionaries(struct ASPK *stream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:276,1
    - Dst: getdec
      Src: /src/clamav/libclamav/aspack.c:278,1
    - Dst: build_decrypt_dictionaries
      Src: /src/clamav/libclamav/aspack.c:286,1
    - Dst: getdec
      Src: /src/clamav/libclamav/aspack.c:296,1
    - Dst: readstream
      Src: /src/clamav/libclamav/aspack.c:299,1
    - Dst: readstream
      Src: /src/clamav/libclamav/aspack.c:308,1
    - Dst: readstream
      Src: /src/clamav/libclamav/aspack.c:313,1
    - Dst: getdec
      Src: /src/clamav/libclamav/aspack.c:316,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 4
    argNames:
    - stream
    - stuff
    - size
    - output
    argTypes:
    - struct ASPK*
    - uint8_t*
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 342
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 342
    functionName: decrypt
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 0
    functionsReached:
    - readstream
    - cli_dbgmsg
    - getdec
    - build_decrypt_dictionaries
    linkageType: ''
    returnType: int
    signature: int decrypt(struct ASPK *stream, uint8_t *stuff, uint32_t size, uint8_t
      *output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:346,1
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:347,1
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:348,1
    - Dst: build_decrypt_dictionaries
      Src: /src/clamav/libclamav/aspack.c:350,1
    - Dst: decrypt
      Src: /src/clamav/libclamav/aspack.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - stream
    - size
    - stuff
    - output
    argTypes:
    - struct ASPK*
    - uint32_t
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: decomp_block
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 0
    functionsReached:
    - memset
    - decrypt
    - build_decrypt_dictionaries
    linkageType: ''
    returnType: int
    signature: int decomp_block(struct ASPK *stream, uint32_t size, uint8_t *stuff,
      uint8_t *output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:372,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:380,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:388,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:396,1
    - Dst: calloc
      Src: /src/clamav/libclamav/aspack.c:402,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:403,1
    - Dst: INIT_DICT_HELPER
      Src: /src/clamav/libclamav/aspack.c:407,1
    - Dst: INIT_DICT_HELPER
      Src: /src/clamav/libclamav/aspack.c:408,1
    - Dst: INIT_DICT_HELPER
      Src: /src/clamav/libclamav/aspack.c:409,1
    - Dst: INIT_DICT_HELPER
      Src: /src/clamav/libclamav/aspack.c:410,1
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:422,1
    - Dst: memset
      Src: /src/clamav/libclamav/aspack.c:423,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/aspack.c:426,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/aspack.c:426,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/aspack.c:426,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/aspack.c:426,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:428,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/aspack.c:429,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:432,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/aspack.c:438,1
    - Dst: decomp_block
      Src: /src/clamav/libclamav/aspack.c:440,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:441,1
    - Dst: free
      Src: /src/clamav/libclamav/aspack.c:442,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:445,1
    - Dst: free
      Src: /src/clamav/libclamav/aspack.c:447,1
    - Dst: CLI_ROL
      Src: /src/clamav/libclamav/aspack.c:456,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/aspack.c:457,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/aspack.c:468,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/aspack.c:471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:476,1
    - Dst: free
      Src: /src/clamav/libclamav/aspack.c:478,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:480,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/aspack.c:487,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:488,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/aspack.c:489,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/aspack.c:492,1
    - Dst: cli_rebuildpe
      Src: /src/clamav/libclamav/aspack.c:498,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/aspack.c:498,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:499,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/aspack.c:500,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/aspack.c:502,1
    - Dst: free
      Src: /src/clamav/libclamav/aspack.c:504,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 118
    argCount: 8
    argNames:
    - image
    - size
    - sections
    - sectcount
    - ep
    - base
    - f
    - version
    argTypes:
    - uint8_t*
    - unsigned int
    - struct cli_exe_section*
    - uint16_t
    - uint32_t
    - uint32_t
    - int
    - aspack_version_t
    constantsTouched: []
    func_position:
      end: 506
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 506
    functionName: unaspack
    functionSourceFile: /src/clamav/libclamav/aspack.c
    functionUses: 0
    functionsReached:
    - cli_rebuildpe
    - memset
    - cli_readint32
    - calloc
    - CLI_ROL
    - CLI_ISCONTAINED
    - cli_max_malloc
    - cli_dbgmsg
    - decomp_block
    - cli_writeint32
    - memcpy
    - cli_writen
    - cli_max_calloc
    - INIT_DICT_HELPER
    - free
    linkageType: ''
    returnType: int
    signature: int unaspack(uint8_t *image, unsigned int size, struct cli_exe_section
      *sections, uint16_t sectcount, uint32_t ep, uint32_t base, int f, aspack_version_t
      version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - scur
    - mydlptr
    - buffer
    - buffersize
    argTypes:
    - char**
    - uint8_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: doubledl
    functionSourceFile: /src/clamav/libclamav/packlibs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int doubledl(const char **scur, uint8_t *mydlptr, const char *buffer,
      uint32_t buffersize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:61,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:66,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:71,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:79,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:108,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:111,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:120,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:123,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:137,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:140,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/packlibs.c:155,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/packlibs.c:155,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 106
    argCount: 6
    argNames:
    - source
    - dest
    - ssize
    - dsize
    - endsrc
    - enddst
    argTypes:
    - char*
    - char*
    - int
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 174
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 174
    functionName: cli_unfsg
    functionSourceFile: /src/clamav/libclamav/packlibs.c
    functionUses: 0
    functionsReached:
    - doubledl
    - CLI_ISCONTAINED
    linkageType: ''
    returnType: int
    signature: int cli_unfsg(const char *source, char *dest, int ssize, int dsize,
      const char **endsrc, char **enddst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:187,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:192,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:197,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:205,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:237,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:240,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:249,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:252,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:266,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/packlibs.c:269,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/packlibs.c:284,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/packlibs.c:284,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/packlibs.c:285,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/packlibs.c:286,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/packlibs.c:288,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/packlibs.c:299,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 107
    argCount: 6
    argNames:
    - source
    - dest
    - ssize
    - dsize
    - endsrc
    - enddst
    argTypes:
    - char*
    - char*
    - int
    - int
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 312
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 312
    functionName: unmew
    functionSourceFile: /src/clamav/libclamav/packlibs.c
    functionUses: 0
    functionsReached:
    - doubledl
    - CLI_ISCONTAINED
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int unmew(const char *source, char *dest, int ssize, int dsize, const
      char **endsrc, char **enddst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/lzma_iface.c:36,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/lzma_iface.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - unused
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: __lzma_wrap_alloc
    functionSourceFile: /src/clamav/libclamav/lzma_iface.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_max_calloc
    linkageType: ''
    returnType: void
    signature: void *__lzma_wrap_alloc(void *unused, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/lzma_iface.c:46,1
    - Dst: free
      Src: /src/clamav/libclamav/lzma_iface.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unused
    - freeme
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: __lzma_wrap_free
    functionSourceFile: /src/clamav/libclamav/lzma_iface.c
    functionUses: 1
    functionsReached:
    - UNUSEDPARAM
    - free
    linkageType: ''
    returnType: void
    signature: void __lzma_wrap_free(void *unused, void *freeme)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - L
    - fail
    argTypes:
    - struct CLI_LZMA*
    - int*
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: lzma_getbyte
    functionSourceFile: /src/clamav/libclamav/lzma_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char lzma_getbyte(struct CLI_LZMA *L, int *fail)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/lzma_iface.c:80,1
    - Dst: lzma_getbyte
      Src: /src/clamav/libclamav/lzma_iface.c:85,1
    - Dst: LzmaDec_Construct
      Src: /src/clamav/libclamav/lzma_iface.c:97,1
    - Dst: LzmaDec_Allocate
      Src: /src/clamav/libclamav/lzma_iface.c:98,1
    - Dst: LzmaDec_Init
      Src: /src/clamav/libclamav/lzma_iface.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - L
    - size_override
    argTypes:
    - struct CLI_LZMA*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 104
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 104
    functionName: cli_LzmaInit
    functionSourceFile: /src/clamav/libclamav/lzma_iface.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - lzma_getbyte
    - LzmaDec_Construct
    - LzmaDec_Init
    - LzmaDec_Allocate
    linkageType: ''
    returnType: int
    signature: int cli_LzmaInit(struct CLI_LZMA *L, uint64_t size_override)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_Free
      Src: /src/clamav/libclamav/lzma_iface.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct CLI_LZMA*
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: cli_LzmaShutdown
    functionSourceFile: /src/clamav/libclamav/lzma_iface.c
    functionUses: 1
    functionsReached:
    - LzmaDec_Free
    linkageType: ''
    returnType: void
    signature: void cli_LzmaShutdown(struct CLI_LZMA *L)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_LzmaInit
      Src: /src/clamav/libclamav/lzma_iface.c:120,1
    - Dst: LzmaDec_DecodeToBuf
      Src: /src/clamav/libclamav/lzma_iface.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct CLI_LZMA*
    constantsTouched: []
    func_position:
      end: 141
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 141
    functionName: cli_LzmaDecode
    functionSourceFile: /src/clamav/libclamav/lzma_iface.c
    functionUses: 1
    functionsReached:
    - cli_LzmaInit
    - LzmaDec_DecodeToBuf
    linkageType: ''
    returnType: int
    signature: int cli_LzmaDecode(struct CLI_LZMA *L)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_compiler.c:48,1
    - Dst: yr_hash_table_create
      Src: /src/clamav/libclamav/yara_compiler.c:69,1
    - Dst: yr_hash_table_create
      Src: /src/clamav/libclamav/yara_compiler.c:72,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:75,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:78,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:81,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:84,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:87,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:90,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:93,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:96,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:99,1
    - Dst: yr_ac_create_automaton
      Src: /src/clamav/libclamav/yara_compiler.c:102,1
    - Dst: yr_compiler_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - YR_COMPILER**
    constantsTouched: []
    func_position:
      end: 114
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 114
    functionName: yr_compiler_create
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_ac_create_automaton
    - yr_arena_create
    - yr_compiler_destroy
    - yr_hash_table_create
    - yr_malloc
    linkageType: ''
    returnType: int
    signature: "int yr_compiler_create(\n    YR_COMPILER** compiler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:122,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:125,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:128,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:131,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:134,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:137,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:140,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:143,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:146,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:149,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:151,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/yara_compiler.c:155,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_compiler.c:160,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_compiler.c:162,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 163
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 163
    functionName: yr_compiler_destroy
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 1
    functionsReached:
    - yr_arena_destroy
    - yr_free
    - yr_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: "void yr_compiler_destroy(\n    YR_COMPILER* compiler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - compiler
    - callback
    argTypes:
    - YR_COMPILER*
    - YR_COMPILER_CALLBACK_FUNC
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: yr_compiler_set_callback
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void yr_compiler_set_callback(\n    YR_COMPILER* compiler,\n    YR_COMPILER_CALLBACK_FUNC
      callback)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - compiler
    - fh
    argTypes:
    - YR_COMPILER*
    - FILE*
    constantsTouched: []
    func_position:
      end: 185
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 185
    functionName: _yr_compiler_push_file
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _yr_compiler_push_file(\n    YR_COMPILER* compiler,\n    FILE*
      fh)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: _yr_compiler_pop_file
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: "FILE * _yr_compiler_pop_file(\n    YR_COMPILER* compiler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_compiler.c:208,1
    - Dst: yr_strdup
      Src: /src/clamav/libclamav/yara_compiler.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - compiler
    - file_name
    argTypes:
    - YR_COMPILER*
    - char*
    constantsTouched: []
    func_position:
      end: 228
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 228
    functionName: _yr_compiler_push_file_name
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_strdup
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int _yr_compiler_push_file_name(\n    YR_COMPILER* compiler,\n    const
      char* file_name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_compiler.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: _yr_compiler_pop_file_name
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_free
    linkageType: ''
    returnType: void
    signature: "void _yr_compiler_pop_file_name(\n    YR_COMPILER* compiler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: yr_compiler_get_current_file_name
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char * yr_compiler_get_current_file_name(\n    YR_COMPILER* context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_arena_base_address
      Src: /src/clamav/libclamav/yara_compiler.c:262,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_compiler.c:266,1
    - Dst: yr_arena_next_address
      Src: /src/clamav/libclamav/yara_compiler.c:271,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_compiler.c:278,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_compiler.c:284,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - compiler
    - namespace_
    argTypes:
    - YR_COMPILER*
    - char*
    constantsTouched: []
    func_position:
      end: 304
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 304
    functionName: _yr_compiler_set_namespace
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_arena_base_address
    - yr_arena_next_address
    - strcmp
    - yr_arena_allocate_struct
    - yr_arena_write_string
    linkageType: ''
    returnType: int
    signature: "int _yr_compiler_set_namespace(\n    YR_COMPILER* compiler,\n    const
      char* namespace_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/yara_compiler.c:315,1
    - Dst: _yr_compiler_push_file_name
      Src: /src/clamav/libclamav/yara_compiler.c:318,1
    - Dst: _yr_compiler_set_namespace
      Src: /src/clamav/libclamav/yara_compiler.c:321,1
    - Dst: _yr_compiler_set_namespace
      Src: /src/clamav/libclamav/yara_compiler.c:323,1
    - Dst: yr_lex_parse_rules_file
      Src: /src/clamav/libclamav/yara_compiler.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - compiler
    - rules_file
    - namespace_
    - file_name
    argTypes:
    - YR_COMPILER*
    - FILE*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 326
      start: 306
    functionDepth: 6
    functionLinenumber: 306
    functionLinenumberEnd: 326
    functionName: yr_compiler_add_file
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - _yr_compiler_set_namespace
    - yr_lex_parse_rules_file
    - _yr_compiler_push_file_name
    - assert
    linkageType: ''
    returnType: int
    signature: "int yr_compiler_add_file(\n    YR_COMPILER* compiler,\n    FILE* rules_file,\n
      \   const char* namespace_,\n    const char* file_name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/yara_compiler.c:336,1
    - Dst: _yr_compiler_set_namespace
      Src: /src/clamav/libclamav/yara_compiler.c:339,1
    - Dst: _yr_compiler_set_namespace
      Src: /src/clamav/libclamav/yara_compiler.c:341,1
    - Dst: yr_lex_parse_rules_string
      Src: /src/clamav/libclamav/yara_compiler.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - compiler
    - rules_string
    - namespace_
    argTypes:
    - YR_COMPILER*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 6
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: yr_compiler_add_string
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - _yr_compiler_set_namespace
    - assert
    - yr_lex_parse_rules_string
    linkageType: ''
    returnType: int
    signature: "int yr_compiler_add_string(\n    YR_COMPILER* compiler,\n    const
      char* rules_string,\n    const char* namespace_)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_compiler.c:358,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_compiler.c:365,1
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_compiler.c:368,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_compiler.c:375,1
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_compiler.c:378,1
    - Dst: yr_ac_create_failure_links
      Src: /src/clamav/libclamav/yara_compiler.c:385,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_compiler.c:389,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_compiler.c:392,1
    - Dst: yr_arena_base_address
      Src: /src/clamav/libclamav/yara_compiler.c:403,1
    - Dst: yr_arena_base_address
      Src: /src/clamav/libclamav/yara_compiler.c:406,1
    - Dst: yr_arena_base_address
      Src: /src/clamav/libclamav/yara_compiler.c:409,1
    - Dst: yr_arena_base_address
      Src: /src/clamav/libclamav/yara_compiler.c:412,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:417,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:424,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:432,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:440,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:448,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:456,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:464,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:472,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_compiler.c:480,1
    - Dst: yr_arena_coalesce
      Src: /src/clamav/libclamav/yara_compiler.c:489,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 1
    argNames:
    - compiler
    argTypes:
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 493
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 493
    functionName: _yr_compiler_compile_rules
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_arena_base_address
    - memset
    - yr_arena_create
    - yr_arena_allocate_struct
    - yr_arena_write_data
    - yr_arena_append
    - yr_arena_coalesce
    - yr_ac_create_failure_links
    linkageType: ''
    returnType: int
    signature: "int _yr_compiler_compile_rules(\n    YR_COMPILER* compiler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_ON_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:505,1
    - Dst: _yr_compiler_compile_rules
      Src: /src/clamav/libclamav/yara_compiler.c:505,1
    - Dst: yr_malloc
      Src: /src/clamav/libclamav/yara_compiler.c:507,1
    - Dst: FAIL_ON_ERROR_WITH_CLEANUP
      Src: /src/clamav/libclamav/yara_compiler.c:512,1
    - Dst: yr_arena_duplicate
      Src: /src/clamav/libclamav/yara_compiler.c:513,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_compiler.c:514,1
    - Dst: yr_arena_base_address
      Src: /src/clamav/libclamav/yara_compiler.c:516,1
    - Dst: CreateMutex
      Src: /src/clamav/libclamav/yara_compiler.c:526,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/libclamav/yara_compiler.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - compiler
    - rules
    argTypes:
    - YR_COMPILER*
    - YR_RULES**
    constantsTouched: []
    func_position:
      end: 534
      start: 495
    functionDepth: 5
    functionLinenumber: 495
    functionLinenumberEnd: 534
    functionName: yr_compiler_get_rules
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_arena_base_address
    - pthread_mutex_init
    - yr_arena_duplicate
    - CreateMutex
    - _yr_compiler_compile_rules
    - yr_malloc
    - FAIL_ON_ERROR_WITH_CLEANUP
    - yr_free
    - FAIL_ON_ERROR
    linkageType: ''
    returnType: int
    signature: "int yr_compiler_get_rules(\n    YR_COMPILER* compiler,\n    YR_RULES**
      rules)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:548,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_compiler.c:548,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:553,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_compiler.c:553,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:566,1
    - Dst: yr_object_from_external_variable
      Src: /src/clamav/libclamav/yara_compiler.c:566,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:570,1
    - Dst: yr_hash_table_add
      Src: /src/clamav/libclamav/yara_compiler.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - compiler
    - identifier
    - value
    argTypes:
    - YR_COMPILER*
    - char*
    - int64_t
    constantsTouched: []
    func_position:
      end: 577
      start: 536
    functionDepth: 5
    functionLinenumber: 536
    functionLinenumberEnd: 577
    functionName: yr_compiler_define_integer_variable
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_arena_allocate_struct
    - yr_hash_table_add
    - FAIL_ON_COMPILER_ERROR
    - yr_object_from_external_variable
    - yr_arena_write_string
    linkageType: ''
    returnType: int
    signature: "int yr_compiler_define_integer_variable(\n    YR_COMPILER* compiler,\n
      \   const char* identifier,\n    int64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_compiler_define_integer_variable
      Src: /src/clamav/libclamav/yara_compiler.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - compiler
    - identifier
    - value
    argTypes:
    - YR_COMPILER*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 588
      start: 579
    functionDepth: 6
    functionLinenumber: 579
    functionLinenumberEnd: 588
    functionName: yr_compiler_define_boolean_variable
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_compiler_define_integer_variable
    linkageType: ''
    returnType: int
    signature: "int yr_compiler_define_boolean_variable(\n    YR_COMPILER* compiler,\n
      \   const char* identifier,\n    int value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:603,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_compiler.c:603,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:608,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_compiler.c:608,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:613,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_compiler.c:613,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:626,1
    - Dst: yr_object_from_external_variable
      Src: /src/clamav/libclamav/yara_compiler.c:626,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_compiler.c:630,1
    - Dst: yr_hash_table_add
      Src: /src/clamav/libclamav/yara_compiler.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - compiler
    - identifier
    - value
    argTypes:
    - YR_COMPILER*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 637
      start: 590
    functionDepth: 5
    functionLinenumber: 590
    functionLinenumberEnd: 637
    functionName: yr_compiler_define_string_variable
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - yr_arena_allocate_struct
    - yr_hash_table_add
    - FAIL_ON_COMPILER_ERROR
    - yr_object_from_external_variable
    - yr_arena_write_string
    linkageType: ''
    returnType: int
    signature: "int yr_compiler_define_string_variable(\n    YR_COMPILER* compiler,\n
      \   const char* identifier,\n    const char* value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:647,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:650,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:657,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:664,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:671,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:678,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:685,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:692,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:699,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:706,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:713,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:720,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:727,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:733,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:739,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:744,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:749,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:754,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:765,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_compiler.c:772,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 3
    argNames:
    - compiler
    - buffer
    - buffer_size
    argTypes:
    - YR_COMPILER*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 780
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 780
    functionName: yr_compiler_get_error_message
    functionSourceFile: /src/clamav/libclamav/yara_compiler.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: "char * yr_compiler_get_error_message(\n    YR_COMPILER* compiler,\n
      \   char* buffer,\n    int buffer_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_log_add
      Src: /src/clamav/libclamav/matcher.c:67,1
    - Dst: cli_perf_log_add
      Src: /src/clamav/libclamav/matcher.c:68,1
    - Dst: cli_perf_log_count2
      Src: /src/clamav/libclamav/matcher.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pos
    - length
    - trie
    argTypes:
    - int32_t
    - int32_t
    - int8_t
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: perf_log_filter
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_perf_log_count2
    - cli_perf_log_add
    linkageType: ''
    returnType: void
    signature: void perf_log_filter(int32_t pos, int32_t length, int8_t trie)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_log_add
      Src: /src/clamav/libclamav/matcher.c:75,1
    - Dst: cli_perf_log_add
      Src: /src/clamav/libclamav/matcher.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - acmode
    - bm_called
    - length
    argTypes:
    - int8_t
    - int8_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: perf_log_tries
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_perf_log_add
    linkageType: ''
    returnType: int
    signature: int perf_log_tries(int8_t acmode, int8_t bm_called, int32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher.c:84,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher.c:85,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pos
    - length
    - trie
    argTypes:
    - int32_t
    - uint32_t
    - int8_t
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: perf_log_filter
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void perf_log_filter(int32_t pos, uint32_t length, int8_t trie)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher.c:91,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher.c:92,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - acmode
    - bm_called
    - length
    argTypes:
    - int8_t
    - int8_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: perf_log_tries
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: int
    signature: int perf_log_tries(int8_t acmode, int8_t bm_called, int32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_search_ext
      Src: /src/clamav/libclamav/matcher.c:121,1
    - Dst: perf_log_filter
      Src: /src/clamav/libclamav/matcher.c:125,1
    - Dst: perf_log_filter
      Src: /src/clamav/libclamav/matcher.c:131,1
    - Dst: perf_log_filter
      Src: /src/clamav/libclamav/matcher.c:134,1
    - Dst: perf_log_tries
      Src: /src/clamav/libclamav/matcher.c:144,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/libclamav/matcher.c:149,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/libclamav/matcher.c:151,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:158,1
    - Dst: perf_log_tries
      Src: /src/clamav/libclamav/matcher.c:163,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/libclamav/matcher.c:164,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:167,1
    - Dst: cli_bcomp_scanbuf
      Src: /src/clamav/libclamav/matcher.c:178,1
    - Dst: fuzzy_hash_check
      Src: /src/clamav/libclamav/matcher.c:195,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:196,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/libclamav/matcher.c:214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:218,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:223,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/matcher.c:225,1
    - Dst: cli_pcre_scanbuf
      Src: /src/clamav/libclamav/matcher.c:230,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/libclamav/matcher.c:234,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:238,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:242,1
    - Dst: cli_pcre_scanbuf
      Src: /src/clamav/libclamav/matcher.c:244,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:251,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 113
    argCount: 16
    argNames:
    - root
    - buffer
    - length
    - virname
    - mdata
    - offset
    - tinfo
    - ftype
    - ftoffset
    - acmode
    - pcremode
    - acres
    - map
    - offdata
    - poffdata
    - ctx
    argTypes:
    - struct cli_matcher*
    - unsigned char*
    - uint32_t
    - char**
    - struct cli_ac_data*
    - uint32_t
    - struct cli_target_info*
    - cli_file_t
    - struct cli_matched_type**
    - unsigned int
    - unsigned int
    - struct cli_ac_result**
    - fmap_t*
    - struct cli_bm_off*
    - struct cli_pcre_off*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 261
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 261
    functionName: matcher_run
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_pcre_scanbuf
    - cli_append_virus
    - cl_engine_get_num
    - perf_log_tries
    - cli_bm_scanbuff
    - cli_ac_scanbuff
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_bcomp_scanbuf
    - fuzzy_hash_check
    - perf_log_filter
    - cli_errmsg
    - filter_search_ext
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t matcher_run(const struct cli_matcher *root,\n                                     const
      unsigned char *buffer, uint32_t length,\n                                     const
      char **virname, struct cli_ac_data *mdata,\n                                     uint32_t
      offset,\n                                     const struct cli_target_info *tinfo,\n
      \                                    cli_file_t ftype,\n                                     struct
      cli_matched_type **ftoffset,\n                                     unsigned
      int acmode,\n                                     unsigned int pcremode,\n                                     struct
      cli_ac_result **acres,\n                                     fmap_t *map,\n
      \                                    struct cli_bm_off *offdata,\n                                     struct
      cli_pcre_off *poffdata,\n                                     cli_ctx *ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:273,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/matcher.c:299,1
    - Dst: matcher_run
      Src: /src/clamav/libclamav/matcher.c:305,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/matcher.c:311,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/matcher.c:324,1
    - Dst: matcher_run
      Src: /src/clamav/libclamav/matcher.c:330,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/matcher.c:336,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 6
    argNames:
    - buffer
    - length
    - offset
    - ctx
    - ftype
    - acdata
    argTypes:
    - unsigned char*
    - uint32_t
    - uint32_t
    - cli_ctx*
    - cli_file_t
    - struct cli_ac_data**
    constantsTouched: []
    func_position:
      end: 340
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 340
    functionName: cli_scan_buff
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 6
    functionsReached:
    - matcher_run
    - cli_ac_freedata
    - cli_errmsg
    - cli_ac_initdata
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scan_buff(const unsigned char *buffer, uint32_t length,
      uint32_t offset, cli_ctx *ctx, cli_file_t ftype, struct cli_ac_data **acdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:356,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher.c:360,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher.c:365,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:366,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/matcher.c:369,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher.c:371,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/matcher.c:372,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:373,1
    - Dst: atoi
      Src: /src/clamav/libclamav/matcher.c:376,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/matcher.c:384,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/matcher.c:384,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/matcher.c:390,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:391,1
    - Dst: atoi
      Src: /src/clamav/libclamav/matcher.c:394,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/matcher.c:398,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:399,1
    - Dst: atoi
      Src: /src/clamav/libclamav/matcher.c:403,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/matcher.c:405,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/matcher.c:407,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:408,1
    - Dst: atoi
      Src: /src/clamav/libclamav/matcher.c:411,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/matcher.c:413,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:418,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/matcher.c:422,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/matcher.c:424,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:425,1
    - Dst: atoi
      Src: /src/clamav/libclamav/matcher.c:428,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/matcher.c:429,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher.c:432,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/matcher.c:433,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:434,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:438,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/matcher.c:445,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:446,1
    - Dst: atoi
      Src: /src/clamav/libclamav/matcher.c:449,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:456,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:514,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 145
    argCount: 6
    argNames:
    - offstr
    - info
    - target
    - offdata
    - offset_min
    - offset_max
    argTypes:
    - char*
    - struct cli_target_info*
    - cli_target_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 523
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 523
    functionName: cli_caloff
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 4
    functionsReached:
    - sscanf
    - strcmp
    - strlen
    - strchr
    - strncmp
    - cli_isnumber
    - strcpy
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_caloff(const char *offstr, const struct cli_target_info
      *info, cli_target_t target, uint32_t *offdata, uint32_t *offset_min, uint32_t
      *offset_max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_exe_info_init
      Src: /src/clamav/libclamav/matcher.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cli_target_info*
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: cli_targetinfo_init
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_exe_info_init
    linkageType: ''
    returnType: void
    signature: void cli_targetinfo_init(struct cli_target_info *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: einfo
      Src: /src/clamav/libclamav/matcher.c:555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - info
    - target
    - ctx
    argTypes:
    - struct cli_target_info*
    - cli_target_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 559
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 559
    functionName: cli_targetinfo
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - einfo
    linkageType: ''
    returnType: void
    signature: void cli_targetinfo(struct cli_target_info *info, cli_target_t target,
      cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/matcher.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cli_target_info*
    constantsTouched: []
    func_position:
      end: 570
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 570
    functionName: cli_targetinfo_destroy
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_exe_info_destroy
    linkageType: ''
    returnType: void
    signature: void cli_targetinfo_destroy(struct cli_target_info *info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_get_hash
      Src: /src/clamav/libclamav/matcher.c:592,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:593,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/matcher.c:603,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:604,1
    - Dst: cli_hm_scan_wild
      Src: /src/clamav/libclamav/matcher.c:606,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:607,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/matcher.c:616,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:619,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:623,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:623,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:623,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:624,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:624,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/matcher.c:626,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/matcher.c:628,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/matcher.c:630,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:631,1
    - Dst: cli_hm_scan_wild
      Src: /src/clamav/libclamav/matcher.c:634,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:635,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/matcher.c:640,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:641,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/matcher.c:647,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/matcher.c:649,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:650,1
    - Dst: cli_hm_scan_wild
      Src: /src/clamav/libclamav/matcher.c:653,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:654,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/matcher.c:659,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:660,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/matcher.c:669,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/matcher.c:671,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/matcher.c:674,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/matcher.c:677,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/matcher.c:680,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:683,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:685,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:688,1
    - Dst: cli_ctx*::engine::cb_hash
      Src: /src/clamav/libclamav/matcher.c:695,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/matcher.c:695,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher.c:699,1
    - Dst: cli_genhash_pe
      Src: /src/clamav/libclamav/matcher.c:703,1
    - Dst: cli_ctx*::engine::cb_stats_add_sample
      Src: /src/clamav/libclamav/matcher.c:707,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher.c:710,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 93
    argCount: 2
    argNames:
    - ctx
    - vname
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 718
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 718
    functionName: cli_check_fp
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cl_sha256
    - memset
    - cli_hm_have_wild
    - cli_ctx*::engine::cb_hash
    - fmap_need_off_once
    - cli_genhash_pe
    - cl_sha1
    - cli_dbgmsg
    - fmap_get_hash
    - fmap_fd
    - cli_ctx*::engine::cb_stats_add_sample
    - free
    - cli_hm_have_size
    - cli_hm_scan
    - cli_errmsg
    - sprintf
    - cli_hm_scan_wild
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_check_fp(cli_ctx *ctx, const char *vname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_icongroupset_init
      Src: /src/clamav/libclamav/matcher.c:734,1
    - Dst: cli_icongroupset_add
      Src: /src/clamav/libclamav/matcher.c:735,1
    - Dst: cli_icongroupset_add
      Src: /src/clamav/libclamav/matcher.c:736,1
    - Dst: cli_scanicon
      Src: /src/clamav/libclamav/matcher.c:737,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - exeinfo
    - grp1
    - grp2
    argTypes:
    - cli_ctx*
    - struct cli_exe_info*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 738
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 738
    functionName: matchicon
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_icongroupset_init
    - cli_scanicon
    - cli_icongroupset_add
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t matchicon(cli_ctx *ctx, struct cli_exe_info *exeinfo, const
      char *grp1, const char *grp2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:751,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher.c:758,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher.c:759,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher.c:762,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/matcher.c:764,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:774,1
    - Dst: matchicon
      Src: /src/clamav/libclamav/matcher.c:775,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - grp1
    - grp1len
    - grp2
    - grp2len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 779
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 779
    functionName: cli_bcapi_matchicon
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - memset
    - le16_to_host
    - cli_dbgmsg
    - matchicon
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t cli_bcapi_matchicon(struct cli_bc_ctx *ctx, const uint8_t
      *grp1, int32_t grp1len,\n                            const uint8_t *grp2, int32_t
      grp2len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_check_empty
      Src: /src/clamav/libclamav/matcher.c:787,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:790,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/matcher.c:796,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:798,1
    - Dst: cli_scan_fmap
      Src: /src/clamav/libclamav/matcher.c:802,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/matcher.c:804,1
    - Dst: funmap
      Src: /src/clamav/libclamav/matcher.c:808,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 9
    argNames:
    - desc
    - ctx
    - ftype
    - filetype_only
    - ftoffset
    - acmode
    - acres
    - name
    - attributes
    argTypes:
    - int
    - cli_ctx*
    - cli_file_t
    - bool
    - struct cli_matched_type**
    - unsigned int
    - struct cli_ac_result**
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 812
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 812
    functionName: cli_scan_desc
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - fmap_check_empty
    - funmap
    - cli_dbgmsg
    - cli_scan_fmap
    - cli_recursion_stack_push
    - cli_recursion_stack_pop
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scan_desc(int desc, cli_ctx *ctx, cli_file_t ftype,
      bool filetype_only, struct cli_matched_type **ftoffset, unsigned int acmode,
      struct cli_ac_result **acres, const char *name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_recursion_stack_get_type
      Src: /src/clamav/libclamav/matcher.c:827,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - ac_lsig
    argTypes:
    - cli_ctx*
    - struct cli_ac_lsig*
    constantsTouched: []
    func_position:
      end: 831
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 831
    functionName: intermediates_eval
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_recursion_stack_get_type
    linkageType: ''
    returnType: int
    signature: int intermediates_eval(cli_ctx *ctx, struct cli_ac_lsig *ac_lsig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_ac_chkmacro
      Src: /src/clamav/libclamav/matcher.c:843,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/libclamav/matcher.c:847,1
    - Dst: cli_recursion_stack_get_type
      Src: /src/clamav/libclamav/matcher.c:857,1
    - Dst: intermediates_eval
      Src: /src/clamav/libclamav/matcher.c:868,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher.c:896,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/matcher.c:906,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:909,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher.c:913,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/matcher.c:915,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:917,1
    - Dst: cli_magic_scan
      Src: /src/clamav/libclamav/matcher.c:921,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/matcher.c:923,1
    - Dst: matchicon
      Src: /src/clamav/libclamav/matcher.c:938,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:946,1
    - Dst: cli_bytecode_runlsig
      Src: /src/clamav/libclamav/matcher.c:952,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/matcher.c:958,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/libclamav/matcher.c:966,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 89
    argCount: 6
    argNames:
    - ctx
    - root
    - acdata
    - target_info
    - hash
    - lsid
    argTypes:
    - cli_ctx*
    - struct cli_matcher*
    - struct cli_ac_data*
    - struct cli_target_info*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 970
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 970
    functionName: lsig_eval
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - cli_recursion_stack_get_type
    - intermediates_eval
    - cli_append_virus
    - cli_magic_scan
    - fmap_duplicate
    - cli_checktimelimit
    - cli_ac_chkmacro
    - cli_bytecode_runlsig
    - cli_dbgmsg
    - matchicon
    - free_duplicate_fmap
    - memcpy
    - memcmp
    - cli_recursion_stack_push
    - cli_recursion_stack_pop
    - cli_ac_chklsig
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t lsig_eval(cli_ctx *ctx, struct cli_matcher *root, struct
      cli_ac_data *acdata, struct cli_target_info *target_info, const char *hash,
      uint32_t lsid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/matcher.c:981,1
    - Dst: yr_execute_code
      Src: /src/clamav/libclamav/matcher.c:989,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - ctx
    - root
    - acdata
    - target_info
    - hash
    - lsid
    argTypes:
    - cli_ctx*
    - struct cli_matcher*
    - struct cli_ac_data*
    - struct cli_target_info*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 999
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 999
    functionName: yara_eval
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_append_virus
    - yr_execute_code
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t yara_eval(cli_ctx *ctx, struct cli_matcher *root, struct
      cli_ac_data *acdata, struct cli_target_info *target_info, const char *hash,
      uint32_t lsid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lsig_eval
      Src: /src/clamav/libclamav/matcher.c:1009,1
    - Dst: yara_eval
      Src: /src/clamav/libclamav/matcher.c:1013,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/matcher.c:1025,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:1027,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - ctx
    - root
    - acdata
    - target_info
    - hash
    argTypes:
    - cli_ctx*
    - struct cli_matcher*
    - struct cli_ac_data*
    - struct cli_target_info*
    - char*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1034
    functionName: cli_exp_eval
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 0
    functionsReached:
    - yara_eval
    - lsig_eval
    - cli_dbgmsg
    - cli_checktimelimit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_exp_eval(cli_ctx *ctx, struct cli_matcher *root, struct
      cli_ac_data *acdata, struct cli_target_info *target_info, const char *hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher.c:1073,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/matcher.c:1078,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/matcher.c:1084,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/matcher.c:1090,1
    - Dst: MAX
      Src: /src/clamav/libclamav/matcher.c:1128,1
    - Dst: cli_targetinfo_init
      Src: /src/clamav/libclamav/matcher.c:1135,1
    - Dst: cli_targetinfo
      Src: /src/clamav/libclamav/matcher.c:1136,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:1140,1
    - Dst: cli_check_auth_header
      Src: /src/clamav/libclamav/matcher.c:1168,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/matcher.c:1180,1
    - Dst: cli_ac_caloff
      Src: /src/clamav/libclamav/matcher.c:1187,1
    - Dst: cli_pcre_recaloff
      Src: /src/clamav/libclamav/matcher.c:1194,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/matcher.c:1205,1
    - Dst: cli_ac_caloff
      Src: /src/clamav/libclamav/matcher.c:1212,1
    - Dst: cli_bm_initoff
      Src: /src/clamav/libclamav/matcher.c:1220,1
    - Dst: cli_pcre_recaloff
      Src: /src/clamav/libclamav/matcher.c:1230,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:1249,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:1250,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:1251,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:1252,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher.c:1259,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:1262,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:1263,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:1264,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:1265,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:1271,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:1272,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/matcher.c:1273,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/matcher.c:1274,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/matcher.c:1282,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:1283,1
    - Dst: MIN
      Src: /src/clamav/libclamav/matcher.c:1288,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/matcher.c:1289,1
    - Dst: matcher_run
      Src: /src/clamav/libclamav/matcher.c:1297,1
    - Dst: matcher_run
      Src: /src/clamav/libclamav/matcher.c:1309,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/matcher.c:1327,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/matcher.c:1329,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/matcher.c:1331,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/matcher.c:1348,1
    - Dst: fmap_set_hash
      Src: /src/clamav/libclamav/matcher.c:1352,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/matcher.c:1360,1
    - Dst: fmap_set_hash
      Src: /src/clamav/libclamav/matcher.c:1364,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/matcher.c:1367,1
    - Dst: fmap_set_hash
      Src: /src/clamav/libclamav/matcher.c:1371,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/matcher.c:1384,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:1387,1
    - Dst: cli_hm_scan_wild
      Src: /src/clamav/libclamav/matcher.c:1394,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:1397,1
    - Dst: cli_exp_eval
      Src: /src/clamav/libclamav/matcher.c:1411,1
    - Dst: cli_exp_eval
      Src: /src/clamav/libclamav/matcher.c:1418,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/matcher.c:1424,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/matcher.c:1427,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/matcher.c:1430,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/matcher.c:1434,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/matcher.c:1437,1
    - Dst: cli_pcre_freeoff
      Src: /src/clamav/libclamav/matcher.c:1441,1
    - Dst: cli_pcre_freeoff
      Src: /src/clamav/libclamav/matcher.c:1444,1
    - Dst: cli_targetinfo_destroy
      Src: /src/clamav/libclamav/matcher.c:1448,1
    - Dst: cli_bm_freeoff
      Src: /src/clamav/libclamav/matcher.c:1452,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 266
    argCount: 7
    argNames:
    - ctx
    - ftype
    - filetype_only
    - ftoffset
    - acmode
    - acres
    - refhash
    argTypes:
    - cli_ctx*
    - cli_file_t
    - bool
    - struct cli_matched_type**
    - unsigned int
    - struct cli_ac_result**
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1460
      start: 1036
    functionDepth: 4
    functionLinenumber: 1036
    functionLinenumberEnd: 1460
    functionName: cli_scan_fmap
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 1
    functionsReached:
    - MAX
    - cli_pcre_recaloff
    - cli_hm_have_size
    - cl_hash_init
    - cli_bm_initoff
    - cli_check_auth_header
    - fmap_set_hash
    - cli_ac_freedata
    - fmap_need_off_once
    - cli_targetinfo
    - cli_dbgmsg
    - MIN
    - cli_ac_caloff
    - cli_append_virus
    - cli_exp_eval
    - cli_hm_have_wild
    - cli_checktimelimit
    - cli_bm_freeoff
    - cli_ac_initdata
    - cli_hm_scan
    - cli_pcre_freeoff
    - cl_update_hash
    - cli_targetinfo_init
    - cli_targetinfo_destroy
    - matcher_run
    - memcpy
    - cl_hash_destroy
    - cl_finish_hash
    - cli_errmsg
    - cli_hm_scan_wild
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scan_fmap(cli_ctx *ctx, cli_file_t ftype, bool filetype_only,
      struct cli_matched_type **ftoffset, unsigned int acmode, struct cli_ac_result
      **acres, unsigned char *refhash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:1476,1
    - Dst: cli_ftname
      Src: /src/clamav/libclamav/matcher.c:1477,1
    - Dst: cli_recursion_stack_get_type
      Src: /src/clamav/libclamav/matcher.c:1477,1
    - Dst: cli_ctx*::engine::cb_meta
      Src: /src/clamav/libclamav/matcher.c:1481,1
    - Dst: cli_ftname
      Src: /src/clamav/libclamav/matcher.c:1481,1
    - Dst: cli_recursion_stack_get_type
      Src: /src/clamav/libclamav/matcher.c:1481,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher.c:1482,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:1484,1
    - Dst: cli_recursion_stack_get_type
      Src: /src/clamav/libclamav/matcher.c:1496,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/matcher.c:1505,1
    - Dst: cli_recursion_stack_get_size
      Src: /src/clamav/libclamav/matcher.c:1505,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/matcher.c:1506,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/matcher.c:1507,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/matcher.c:1508,1
    - Dst: cli_regexec
      Src: /src/clamav/libclamav/matcher.c:1510,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher.c:1513,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 33
    argCount: 7
    argNames:
    - ctx
    - fname
    - fsizec
    - fsizer
    - encrypted
    - filepos
    - res1
    argTypes:
    - cli_ctx*
    - char*
    - size_t
    - size_t
    - int
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 1521
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1521
    functionName: cli_matchmeta
    functionSourceFile: /src/clamav/libclamav/matcher.c
    functionUses: 7
    functionsReached:
    - cli_ctx*::engine::cb_meta
    - cli_recursion_stack_get_type
    - cli_append_virus
    - cli_regexec
    - cli_dbgmsg
    - cli_recursion_stack_get_size
    - cli_ftname
    - CDBRANGE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_matchmeta(cli_ctx *ctx, const char *fname, size_t fsizec,
      size_t fsizer, int encrypted, unsigned int filepos, int res1)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - method
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 395
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 395
    functionName: getEncryptName
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getEncryptName(uint8_t method)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - magic
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 440
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 440
    functionName: getMagicHeaderName
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * getMagicHeaderName(uint32_t magic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encryptInfo
    argTypes:
    - egg_encrypt*
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: egg_free_encrypt
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void egg_free_encrypt(egg_encrypt* encryptInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:502,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:509,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:510,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:513,1
    - Dst: calloc
      Src: /src/clamav/libclamav/egg.c:517,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:519,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:526,1
    - Dst: getEncryptName
      Src: /src/clamav/libclamav/egg.c:526,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:533,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:539,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:539,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:548,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:561,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:572,1
    - Dst: egg_free_encrypt
      Src: /src/clamav/libclamav/egg.c:585,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 3
    argNames:
    - index
    - size
    - encryptInfo
    argTypes:
    - uint8_t*
    - size_t
    - egg_encrypt**
    constantsTouched: []
    func_position:
      end: 589
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 589
    functionName: egg_parse_encrypt_header
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - calloc
    - cli_warnmsg
    - cli_dbgmsg
    - egg_free_encrypt
    - cli_errmsg
    - getEncryptName
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t egg_parse_encrypt_header(const uint8_t* index, size_t size,
      egg_encrypt** encryptInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:599,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/egg.c:621,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:622,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/egg.c:628,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:630,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:635,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:644,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - index
    - size
    - extraField
    - commentInfo
    argTypes:
    - uint8_t*
    - size_t
    - extra_field*
    - char**
    constantsTouched: []
    func_position:
      end: 648
      start: 591
    functionDepth: 4
    functionLinenumber: 591
    functionLinenumberEnd: 648
    functionName: egg_parse_comment_header
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - cli_codepage_to_utf8
    - cli_errmsg
    - CLI_STRNDUP
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t egg_parse_comment_header(const uint8_t* index, size_t size,
      extra_field* extraField, char** commentInfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - block
    argTypes:
    - egg_block*
    constantsTouched: []
    func_position:
      end: 653
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 653
    functionName: egg_free_egg_block
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void egg_free_egg_block(egg_block* block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:665,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:671,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:672,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:681,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:683,1
    - Dst: calloc
      Src: /src/clamav/libclamav/egg.c:687,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:689,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:697,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:698,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:698,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:702,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:702,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:702,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:702,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:703,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:704,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:705,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:705,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:706,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:706,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:707,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:707,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:709,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:710,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:721,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:723,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:727,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:729,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:729,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:732,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:738,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:740,1
    - Dst: egg_free_egg_block
      Src: /src/clamav/libclamav/egg.c:753,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 73
    argCount: 2
    argNames:
    - handle
    - block
    argTypes:
    - egg_handle*
    - egg_block**
    constantsTouched: []
    func_position:
      end: 757
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 757
    functionName: egg_parse_block_headers
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - calloc
    - getMagicHeaderName
    - cli_warnmsg
    - fmap_need_off_once
    - le16_to_host
    - egg_free_egg_block
    - cli_dbgmsg
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t egg_parse_block_headers(egg_handle* handle, egg_block**
      block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:764,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:768,1
    - Dst: egg_free_egg_block
      Src: /src/clamav/libclamav/egg.c:773,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:776,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:781,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:784,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:788,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - file
    argTypes:
    - egg_file*
    constantsTouched: []
    func_position:
      end: 789
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 789
    functionName: egg_free_egg_file
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - free
    - egg_free_egg_block
    linkageType: ''
    returnType: void
    signature: void egg_free_egg_file(egg_file* file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:801,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:805,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:806,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:811,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:813,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:819,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:819,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:819,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:819,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:820,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:826,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:828,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:832,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:837,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:839,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:843,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:848,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:858,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:861,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:885,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:889,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:892,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:894,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:896,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:904,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:904,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:905,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:905,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:916,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:927,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:929,1
    - Dst: egg_parse_encrypt_header
      Src: /src/clamav/libclamav/egg.c:933,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:934,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:940,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:940,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 106
    argCount: 1
    argNames:
    - handle
    argTypes:
    - egg_handle*
    constantsTouched: []
    func_position:
      end: 951
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 951
    functionName: egg_parse_archive_extra_field
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - getMagicHeaderName
    - cli_warnmsg
    - fmap_need_off_once
    - le16_to_host
    - egg_parse_encrypt_header
    - cli_dbgmsg
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t egg_parse_archive_extra_field(egg_handle* handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:957,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:959,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:961,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:963,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:965,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:967,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:969,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:973,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:975,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:978,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:980,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:983,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:985,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:987,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:990,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:992,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:995,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:997,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1000,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1003,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1006,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1008,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1011,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1013,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1016,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1018,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1021,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1023,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1027,1
    - Dst: printf
      Src: /src/clamav/libclamav/egg.c:1028,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 79
    argCount: 1
    argNames:
    - mode
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1029
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 1029
    functionName: print_posix_info_mode
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_posix_info_mode(uint32_t mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1041,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:1045,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1046,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1051,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1053,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1059,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1059,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1059,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1059,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1060,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1066,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1068,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1072,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1077,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1079,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:1083,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1088,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1090,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1105,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1109,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1111,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1116,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1118,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1123,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1126,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1128,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1134,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1138,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1148,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1152,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1159,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/egg.c:1172,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1173,1
    - Dst: cli_genfname
      Src: /src/clamav/libclamav/egg.c:1174,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/egg.c:1177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1178,1
    - Dst: cli_genfname
      Src: /src/clamav/libclamav/egg.c:1179,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/egg.c:1184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1186,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1193,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1204,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1206,1
    - Dst: egg_parse_comment_header
      Src: /src/clamav/libclamav/egg.c:1210,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1211,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1214,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:1221,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:1223,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1235,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1246,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1248,1
    - Dst: egg_parse_encrypt_header
      Src: /src/clamav/libclamav/egg.c:1252,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1253,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1262,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1267,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1272,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1279,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/egg.c:1279,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1280,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1287,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1292,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1297,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1304,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1304,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/egg.c:1305,1
    - Dst: print_posix_info_mode
      Src: /src/clamav/libclamav/egg.c:1306,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1309,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1309,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1310,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1310,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1311,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/egg.c:1311,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1316,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1318,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1323,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1323,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 224
    argCount: 2
    argNames:
    - handle
    - eggFile
    argTypes:
    - egg_handle*
    - egg_file*
    constantsTouched: []
    func_position:
      end: 1334
      start: 1031
    functionDepth: 5
    functionLinenumber: 1031
    functionLinenumberEnd: 1334
    functionName: egg_parse_file_extra_field
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - UNLIKELY
    - getMagicHeaderName
    - cli_codepage_to_utf8
    - CLI_SAFER_REALLOC_OR_GOTO_DONE
    - cli_warnmsg
    - print_posix_info_mode
    - CLI_STRNDUP
    - fmap_need_off_once
    - le16_to_host
    - egg_parse_encrypt_header
    - egg_parse_comment_header
    - le64_to_host
    - cli_dbgmsg
    - cli_genfname
    - free
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t egg_parse_file_extra_field(egg_handle* handle, egg_file*
      eggFile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1347,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:1353,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1354,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1363,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1365,1
    - Dst: calloc
      Src: /src/clamav/libclamav/egg.c:1369,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1371,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1379,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1380,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1380,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1380,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1380,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1384,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1384,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1384,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1384,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1385,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1385,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1386,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/egg.c:1387,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/egg.c:1388,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:1390,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1391,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1410,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1412,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1416,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1424,1
    - Dst: egg_parse_file_extra_field
      Src: /src/clamav/libclamav/egg.c:1430,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1432,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1432,1
    - Dst: egg_free_egg_file
      Src: /src/clamav/libclamav/egg.c:1445,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 2
    argNames:
    - handle
    - file
    argTypes:
    - egg_handle*
    - egg_file**
    constantsTouched: []
    func_position:
      end: 1449
      start: 1336
    functionDepth: 6
    functionLinenumber: 1336
    functionLinenumberEnd: 1449
    functionName: egg_parse_file_headers
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - calloc
    - getMagicHeaderName
    - egg_parse_file_extra_field
    - fmap_need_off_once
    - le16_to_host
    - egg_free_egg_file
    - le64_to_host
    - cli_dbgmsg
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t egg_parse_file_headers(egg_handle* handle, egg_file** file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: egg_free_encrypt
      Src: /src/clamav/libclamav/egg.c:1460,1
    - Dst: egg_free_egg_file
      Src: /src/clamav/libclamav/egg.c:1465,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:1468,1
    - Dst: egg_free_egg_block
      Src: /src/clamav/libclamav/egg.c:1473,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:1476,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:1481,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:1484,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:1487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - handle
    argTypes:
    - egg_handle*
    constantsTouched: []
    func_position:
      end: 1488
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1488
    functionName: egg_free_egg_handle
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - free
    - egg_free_egg_block
    - egg_free_egg_file
    - egg_free_encrypt
    linkageType: ''
    returnType: void
    signature: void egg_free_egg_handle(egg_handle* handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1500,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:1504,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1505,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1515,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1517,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1523,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1524,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1524,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1528,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1528,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1528,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1528,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1529,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:1529,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1530,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1530,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1531,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1531,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:1533,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1534,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:1535,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1552,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1554,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1558,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1566,1
    - Dst: egg_parse_archive_extra_field
      Src: /src/clamav/libclamav/egg.c:1572,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1574,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1574,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 1
    argNames:
    - handle
    argTypes:
    - egg_handle*
    constantsTouched: []
    func_position:
      end: 1584
      start: 1490
    functionDepth: 3
    functionLinenumber: 1490
    functionLinenumberEnd: 1584
    functionName: egg_parse_archive_headers
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - getMagicHeaderName
    - fmap_need_off_once
    - le16_to_host
    - cli_dbgmsg
    - egg_parse_archive_extra_field
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t egg_parse_archive_headers(egg_handle* handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1595,1
    - Dst: calloc
      Src: /src/clamav/libclamav/egg.c:1603,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1605,1
    - Dst: egg_parse_archive_headers
      Src: /src/clamav/libclamav/egg.c:1616,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1617,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1631,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1633,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1637,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1646,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1649,1
    - Dst: egg_parse_file_headers
      Src: /src/clamav/libclamav/egg.c:1658,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1659,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1662,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:1667,1
    - Dst: egg_free_egg_file
      Src: /src/clamav/libclamav/egg.c:1669,1
    - Dst: egg_parse_block_headers
      Src: /src/clamav/libclamav/egg.c:1679,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1680,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1683,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:1689,1
    - Dst: egg_free_egg_block
      Src: /src/clamav/libclamav/egg.c:1691,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1701,1
    - Dst: egg_free_egg_block
      Src: /src/clamav/libclamav/egg.c:1703,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:1707,1
    - Dst: egg_free_egg_block
      Src: /src/clamav/libclamav/egg.c:1709,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1724,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1726,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1732,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1732,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1732,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1732,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1733,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1739,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1741,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/egg.c:1745,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1750,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1752,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/egg.c:1756,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1761,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/egg.c:1763,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1765,1
    - Dst: egg_parse_comment_header
      Src: /src/clamav/libclamav/egg.c:1769,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1770,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1778,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:1785,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:1787,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1796,1
    - Dst: getMagicHeaderName
      Src: /src/clamav/libclamav/egg.c:1796,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1806,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1808,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1811,1
    - Dst: egg_free_egg_handle
      Src: /src/clamav/libclamav/egg.c:1827,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 161
    argCount: 4
    argNames:
    - map
    - hArchive
    - comments
    - nComments
    argTypes:
    - fmap_t*
    - void**
    - char***
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1830
      start: 1586
    functionDepth: 7
    functionLinenumber: 1586
    functionLinenumberEnd: 1830
    functionName: cli_egg_open
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - egg_parse_file_headers
    - calloc
    - getMagicHeaderName
    - CLI_SAFER_REALLOC_OR_GOTO_DONE
    - cli_warnmsg
    - egg_parse_block_headers
    - fmap_need_off_once
    - egg_free_egg_file
    - egg_free_egg_block
    - le16_to_host
    - egg_parse_comment_header
    - cli_dbgmsg
    - free
    - egg_parse_archive_headers
    - cli_errmsg
    - egg_free_egg_handle
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_open(fmap_t* map, void** hArchive, char*** comments,
      uint32_t* nComments)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1839,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:1844,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1845,1
    - Dst: memset
      Src: /src/clamav/libclamav/egg.c:1850,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1859,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1864,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1869,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1884,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1890,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1897,1
    - Dst: strdup
      Src: /src/clamav/libclamav/egg.c:1901,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 2
    argNames:
    - hArchive
    - file_metadata
    argTypes:
    - void*
    - cl_egg_metadata*
    constantsTouched: []
    func_position:
      end: 1914
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1914
    functionName: cli_egg_peek_file_header
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_warnmsg
    - strdup
    - cli_dbgmsg
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_peek_file_header(void* hArchive, cl_egg_metadata*
      file_metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1928,1
    - Dst: calloc
      Src: /src/clamav/libclamav/egg.c:1936,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1937,1
    - Dst: memset
      Src: /src/clamav/libclamav/egg.c:1944,1
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/egg.c:1950,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:1952,1
    - Dst: inflate
      Src: /src/clamav/libclamav/egg.c:1959,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1964,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:1972,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:1974,1
    - Dst: inflate
      Src: /src/clamav/libclamav/egg.c:1983,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1992,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:1995,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2006,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2009,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2013,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/egg.c:2030,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2034,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 80
    argCount: 4
    argNames:
    - compressed
    - compressed_size
    - decompressed
    - decompressed_size
    argTypes:
    - char*
    - size_t
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 2038
      start: 1916
    functionDepth: 3
    functionLinenumber: 1916
    functionLinenumberEnd: 2038
    functionName: cli_egg_deflate_decompress
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - memset
    - calloc
    - CLI_SAFER_REALLOC_OR_GOTO_DONE
    - cli_warnmsg
    - cli_dbgmsg
    - inflate
    - inflateInit2
    - inflateEnd
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_deflate_decompress(char* compressed, size_t compressed_size,
      char** decompressed, size_t* decompressed_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2051,1
    - Dst: calloc
      Src: /src/clamav/libclamav/egg.c:2059,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2060,1
    - Dst: memset
      Src: /src/clamav/libclamav/egg.c:2067,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/clamav/libclamav/egg.c:2073,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2074,1
    - Dst: BZ2_bzDecompress
      Src: /src/clamav/libclamav/egg.c:2080,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2085,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:2093,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2095,1
    - Dst: BZ2_bzDecompress
      Src: /src/clamav/libclamav/egg.c:2104,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2113,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2116,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2124,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2128,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/egg.c:2144,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2147,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 4
    argNames:
    - compressed
    - compressed_size
    - decompressed
    - decompressed_size
    argTypes:
    - char*
    - size_t
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 2151
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2151
    functionName: cli_egg_bzip2_decompress
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - memset
    - BZ2_bzDecompressEnd
    - calloc
    - CLI_SAFER_REALLOC_OR_GOTO_DONE
    - cli_warnmsg
    - BZ2_bzDecompressInit
    - cli_dbgmsg
    - BZ2_bzDecompress
    - free
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_bzip2_decompress(char* compressed, size_t compressed_size,
      char** decompressed, size_t* decompressed_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2165,1
    - Dst: calloc
      Src: /src/clamav/libclamav/egg.c:2173,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2174,1
    - Dst: memset
      Src: /src/clamav/libclamav/egg.c:2181,1
    - Dst: cli_LzmaInit
      Src: /src/clamav/libclamav/egg.c:2187,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2189,1
    - Dst: cli_LzmaDecode
      Src: /src/clamav/libclamav/egg.c:2196,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2201,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:2209,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2211,1
    - Dst: cli_LzmaDecode
      Src: /src/clamav/libclamav/egg.c:2220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2229,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2232,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2239,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2243,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/egg.c:2260,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2264,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 4
    argNames:
    - compressed
    - compressed_size
    - decompressed
    - decompressed_size
    argTypes:
    - char*
    - size_t
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 2268
      start: 2153
    functionDepth: 3
    functionLinenumber: 2153
    functionLinenumberEnd: 2268
    functionName: cli_egg_lzma_decompress
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - memset
    - calloc
    - CLI_SAFER_REALLOC_OR_GOTO_DONE
    - cli_warnmsg
    - cli_LzmaInit
    - cli_LzmaDecode
    - cli_dbgmsg
    - free
    - cli_LzmaShutdown
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_lzma_decompress(char* compressed, size_t compressed_size,
      char** decompressed, size_t* decompressed_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2280,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:2290,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2291,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2297,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2303,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2308,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2313,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2335,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2343,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2352,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2355,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:2359,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2361,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/egg.c:2365,1
    - Dst: cli_egg_deflate_decompress
      Src: /src/clamav/libclamav/egg.c:2375,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2380,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:2384,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2386,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2388,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/egg.c:2391,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2394,1
    - Dst: cli_egg_bzip2_decompress
      Src: /src/clamav/libclamav/egg.c:2403,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2408,1
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/egg.c:2412,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2414,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2416,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/egg.c:2419,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2422,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2428,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2433,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2463,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2470,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2476,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2483,1
    - Dst: strdup
      Src: /src/clamav/libclamav/egg.c:2484,1
    - Dst: free
      Src: /src/clamav/libclamav/egg.c:2499,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 129
    argCount: 4
    argNames:
    - hArchive
    - filename
    - output_buffer
    - output_buffer_length
    argTypes:
    - void*
    - char**
    - char**
    - size_t*
    constantsTouched: []
    func_position:
      end: 2503
      start: 2270
    functionDepth: 4
    functionLinenumber: 2270
    functionLinenumberEnd: 2503
    functionName: cli_egg_extract_file
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - CLI_SAFER_REALLOC_OR_GOTO_DONE
    - cli_warnmsg
    - cli_egg_deflate_decompress
    - strdup
    - cli_dbgmsg
    - memcpy
    - cli_egg_bzip2_decompress
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_extract_file(void* hArchive, const char** filename,
      const char** output_buffer, size_t* output_buffer_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2511,1
    - Dst: EGG_VALIDATE_HANDLE
      Src: /src/clamav/libclamav/egg.c:2516,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2517,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/egg.c:2523,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/egg.c:2533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - hArchive
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2538
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2538
    functionName: cli_egg_skip_file
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - cli_dbgmsg
    - cli_errmsg
    - EGG_VALIDATE_HANDLE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_skip_file(void* hArchive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/egg.c:2545,1
    - Dst: egg_free_egg_handle
      Src: /src/clamav/libclamav/egg.c:2551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hArchive
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 2554
      start: 2540
    functionDepth: 3
    functionLinenumber: 2540
    functionLinenumberEnd: 2554
    functionName: cli_egg_close
    functionSourceFile: /src/clamav/libclamav/egg.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - egg_free_egg_handle
    linkageType: ''
    returnType: void
    signature: void cli_egg_close(void* hArchive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/clamav/libclamav/disasm.c:1199,1
    - Dst: strlen
      Src: /src/clamav/libclamav/disasm.c:1200,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1209,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1211,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1214,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1218,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1219,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1225,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1231,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1236,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1241,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/disasm.c:1243,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - s
    - hr
    argTypes:
    - struct DISASMED*
    - char*
    constantsTouched: []
    func_position:
      end: 1251
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1251
    functionName: spam_x86
    functionSourceFile: /src/clamav/libclamav/disasm.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcpy
    - sprintf
    linkageType: ''
    returnType: void
    signature: void spam_x86(struct DISASMED *s, char *hr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/disasm.c:1272,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1278,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1294,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1311,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1312,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1331,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1348,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1375,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1389,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1407,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1413,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1419,1
    - Dst: GETSIZE
      Src: /src/clamav/libclamav/disasm.c:1421,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1427,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1438,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1440,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1443,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1477,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1515,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1532,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1551,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1578,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1596,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1604,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1622,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1624,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1625,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1627,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1632,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1640,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1653,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1657,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1669,1
    - Dst: GETSIZE
      Src: /src/clamav/libclamav/disasm.c:1671,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1685,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1687,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1688,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1690,1
    - Dst: GETBYTE
      Src: /src/clamav/libclamav/disasm.c:1695,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1703,1
    - Dst: assert
      Src: /src/clamav/libclamav/disasm.c:1715,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 388
    argCount: 3
    argNames:
    - command
    - len
    - s
    argTypes:
    - uint8_t*
    - unsigned int
    - struct DISASMED*
    constantsTouched: []
    func_position:
      end: 1718
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1718
    functionName: disasm_x86
    functionSourceFile: /src/clamav/libclamav/disasm.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - GETSIZE
    - GETBYTE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *disasm_x86(const uint8_t *command, unsigned int len, struct
      DISASMED *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/disasm.c:1726,1
    - Dst: disasm_x86
      Src: /src/clamav/libclamav/disasm.c:1727,1
    - Dst: spam_x86
      Src: /src/clamav/libclamav/disasm.c:1732,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/disasm.c:1733,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/disasm.c:1735,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/disasm.c:1749,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/disasm.c:1755,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/disasm.c:1756,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - buff
    - len
    - w
    - spam
    argTypes:
    - uint8_t*
    - unsigned int
    - struct DISASM_RESULT*
    - int
    constantsTouched: []
    func_position:
      end: 1760
      start: 1720
    functionDepth: 2
    functionLinenumber: 1720
    functionLinenumberEnd: 1760
    functionName: cli_disasm_one
    functionSourceFile: /src/clamav/libclamav/disasm.c
    functionUses: 0
    functionsReached:
    - memset
    - le16_to_host
    - spam_x86
    - cli_dbgmsg
    - cli_writeint32
    - disasm_x86
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *cli_disasm_one(const uint8_t *buff, unsigned int len,\n                              struct
      DISASM_RESULT *w, int spam)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/disasm.c:1768,1
    - Dst: cli_disasm_one
      Src: /src/clamav/libclamav/disasm.c:1771,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/disasm.c:1779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - buff
    - len
    - fd
    argTypes:
    - uint8_t*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 1783
      start: 1762
    functionDepth: 3
    functionLinenumber: 1762
    functionLinenumberEnd: 1783
    functionName: disasmbuf
    functionSourceFile: /src/clamav/libclamav/disasm.c
    functionUses: 1
    functionsReached:
    - cli_disasm_one
    - memset
    - cli_writen
    linkageType: ''
    returnType: int
    signature: int disasmbuf(const uint8_t *buff, unsigned int len, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:113,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others.c:115,1
    - Dst: LoadLibraryA
      Src: /src/clamav/libclamav/others.c:117,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/others.c:121,1
    - Dst: FormatMessageA
      Src: /src/clamav/libclamav/others.c:123,1
    - Dst: MAKELANGID
      Src: /src/clamav/libclamav/others.c:127,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:134,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:136,1
    - Dst: LocalFree
      Src: /src/clamav/libclamav/others.c:137,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - name
    - featurename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 148
    functionName: load_module
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached:
    - snprintf
    - GetLastError
    - LoadLibraryA
    - LocalFree
    - cli_dbgmsg
    - FormatMessageA
    - MAKELANGID
    linkageType: ''
    returnType: void
    signature: void *load_module(const char *name, const char *featurename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/clamav/libclamav/others.c:175,1
    - Dst: getenv
      Src: /src/clamav/libclamav/others.c:177,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:179,1
    - Dst: strdup
      Src: /src/clamav/libclamav/others.c:189,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/others.c:190,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:193,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others.c:197,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others.c:201,1
    - Dst: dlopen
      Src: /src/clamav/libclamav/others.c:205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:207,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:211,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:219,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others.c:223,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others.c:227,1
    - Dst: dlopen
      Src: /src/clamav/libclamav/others.c:231,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:237,1
    - Dst: dlerror
      Src: /src/clamav/libclamav/others.c:240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:242,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:244,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - name
    - featurename
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 252
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 252
    functionName: load_module
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached:
    - getenv
    - snprintf
    - dlopen
    - strlen
    - dlerror
    - strdup
    - cli_strtokenize
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: void
    signature: void *load_module(const char *name, const char *featurename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/clamav/libclamav/others.c:261,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/others.c:264,1
    - Dst: FormatMessageA
      Src: /src/clamav/libclamav/others.c:266,1
    - Dst: MAKELANGID
      Src: /src/clamav/libclamav/others.c:270,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:276,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:278,1
    - Dst: LocalFree
      Src: /src/clamav/libclamav/others.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - handle
    - name
    argTypes:
    - HMODULE
    - char*
    constantsTouched: []
    func_position:
      end: 283
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 283
    functionName: get_module_function
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - GetLastError
    - cli_warnmsg
    - LocalFree
    - FormatMessageA
    - MAKELANGID
    linkageType: ''
    returnType: void
    signature: void *get_module_function(HMODULE handle, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/clamav/libclamav/others.c:290,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:294,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - name
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 300
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 300
    functionName: get_module_function
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - dlsym
    linkageType: ''
    returnType: void
    signature: void *get_module_function(void *handle, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_module
      Src: /src/clamav/libclamav/others.c:325,1
    - Dst: get_module_function
      Src: /src/clamav/libclamav/others.c:329,1
    - Dst: get_module_function
      Src: /src/clamav/libclamav/others.c:330,1
    - Dst: get_module_function
      Src: /src/clamav/libclamav/others.c:331,1
    - Dst: get_module_function
      Src: /src/clamav/libclamav/others.c:332,1
    - Dst: get_module_function
      Src: /src/clamav/libclamav/others.c:333,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:335,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:336,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:337,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 343
    functionName: rarload
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - get_module_function
    - load_module
    linkageType: ''
    returnType: void
    signature: void rarload(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: cl_debug
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_debug(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: cl_always_gen_section_hash
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_always_gen_section_hash(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: cl_retflevel
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cl_retflevel(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 73
    argCount: 1
    argNames:
    - clerror
    argTypes:
    - cl_error_t
    constantsTouched: []
    func_position:
      end: 438
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 438
    functionName: cl_strerror
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cl_strerror(cl_error_t clerror)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/others.c:446,1
    - Dst: clrs_log_init
      Src: /src/clamav/libclamav/others.c:449,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:450,1
    - Dst: cl_initialize_crypto
      Src: /src/clamav/libclamav/others.c:454,1
    - Dst: rarload
      Src: /src/clamav/libclamav/others.c:456,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/others.c:458,1
    - Dst: srand
      Src: /src/clamav/libclamav/others.c:459,1
    - Dst: clock
      Src: /src/clamav/libclamav/others.c:459,1
    - Dst: bytecode_init
      Src: /src/clamav/libclamav/others.c:460,1
    - Dst: xmlInitParser
      Src: /src/clamav/libclamav/others.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - initoptions
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 467
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 467
    functionName: cl_init
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 49
    functionsReached:
    - bytecode_init
    - UNUSEDPARAM
    - clrs_log_init
    - srand
    - cli_dbgmsg
    - rarload
    - clock
    - gettimeofday
    - xmlInitParser
    - cl_initialize_crypto
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_init(unsigned int initoptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:853,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:928,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 80
    argCount: 3
    argNames:
    - engine
    - field
    - err
    argTypes:
    - struct cl_engine*
    - enum cl_engine_field
    - int*
    constantsTouched: []
    func_position:
      end: 933
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 933
    functionName: cl_engine_get_num
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 2
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: long long
    signature: long long cl_engine_get_num(const struct cl_engine *engine, enum cl_engine_field
      field, int *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/others.c:943,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/others.c:946,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/others.c:952,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/others.c:955,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/others.c:961,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/others.c:964,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:969,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - engine
    - field
    - str
    argTypes:
    - struct cl_engine*
    - enum cl_engine_field
    - char*
    constantsTouched: []
    func_position:
      end: 974
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 974
    functionName: cl_engine_set_str
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached:
    - CLI_MPOOL_STRDUP
    - MPOOL_FREE
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_engine_set_str(struct cl_engine *engine, enum cl_engine_field
      field, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:979,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - engine
    - field
    - err
    argTypes:
    - struct cl_engine*
    - enum cl_engine_field
    - int*
    constantsTouched: []
    func_position:
      end: 1001
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1001
    functionName: cl_engine_get_str
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char *cl_engine_get_str(const struct cl_engine *engine, enum cl_engine_field
      field, int *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/others.c:1007,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1009,1
    - Dst: strdup
      Src: /src/clamav/libclamav/others.c:1017,1
    - Dst: strdup
      Src: /src/clamav/libclamav/others.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 1073
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1073
    functionName: cl_engine_settings_copy
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    - cli_errmsg
    linkageType: ''
    returnType: struct cl_settings
    signature: struct cl_settings *cl_engine_settings_copy(const struct cl_engine
      *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/others.c:1100,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/others.c:1102,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/others.c:1110,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/others.c:1112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 2
    argNames:
    - engine
    - settings
    argTypes:
    - struct cl_engine*
    - struct cl_settings*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1154
    functionName: cl_engine_settings_apply
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - CLI_MPOOL_STRDUP
    - MPOOL_FREE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_engine_settings_apply(struct cl_engine *engine, const
      struct cl_settings *settings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1161,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1162,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - settings
    argTypes:
    - struct cl_settings*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1165
    functionName: cl_engine_settings_free
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_engine_settings_free(struct cl_settings *settings)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/others.c:1174,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1175,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/others.c:1180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - vname
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 1183
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1183
    functionName: cli_append_potentially_unwanted_if_heur_exceedsmax
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    - cli_dbgmsg
    - cli_json_parse_error
    linkageType: ''
    returnType: void
    signature: void cli_append_potentially_unwanted_if_heur_exceedsmax(cli_ctx *ctx,
      char *vname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/others.c:1199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1209,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/others.c:1211,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1218,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/others.c:1220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1227,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/others.c:1229,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 5
    argNames:
    - who
    - ctx
    - need1
    - need2
    - need3
    argTypes:
    - char*
    - cli_ctx*
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1241
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1241
    functionName: cli_checklimits
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 3
    functionsReached:
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - cli_checktimelimit
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_checklimits(const char *who, cli_ctx *ctx, uint64_t
      need1, uint64_t need2, uint64_t need3)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/others.c:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - needed
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 1257
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1257
    functionName: cli_updatelimits
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - cli_checklimits
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_updatelimits(cli_ctx *ctx, size_t needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/others.c:1276,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/others.c:1286,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1294
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1294
    functionName: cli_checktimelimit
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 5
    functionsReached:
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - gettimeofday
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_checktimelimit(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/others.c:1323,1
    - Dst: fread
      Src: /src/clamav/libclamav/others.c:1327,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/others.c:1328,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/others.c:1330,1
    - Dst: calloc
      Src: /src/clamav/libclamav/others.c:1332,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/others.c:1337,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/others.c:1342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - fs
    - digcpy
    - type
    argTypes:
    - FILE*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 1345
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1345
    functionName: cli_hashstream
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - fread
    - calloc
    - memcpy
    - cl_hash_init
    - cl_update_hash
    - sprintf
    - cl_finish_hash
    linkageType: ''
    returnType: char
    signature: char *cli_hashstream(FILE *fs, unsigned char *digcpy, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/others.c:1352,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1353,1
    - Dst: cli_hashstream
      Src: /src/clamav/libclamav/others.c:1357,1
    - Dst: fclose
      Src: /src/clamav/libclamav/others.c:1359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - filename
    - type
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1361
      start: 1347
    functionDepth: 2
    functionLinenumber: 1347
    functionLinenumberEnd: 1361
    functionName: cli_hashfile
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - fclose
    - cli_hashstream
    - cli_errmsg
    - fopen
    linkageType: ''
    returnType: char
    signature: char *cli_hashfile(const char *filename, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/clamav/libclamav/others.c:1368,1
    - Dst: _chmod
      Src: /src/clamav/libclamav/others.c:1372,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:1374,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others.c:1374,1
    - Dst: unlink
      Src: /src/clamav/libclamav/others.c:1376,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:1378,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others.c:1378,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:1384,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others.c:1384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pathname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1389
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1389
    functionName: cli_unlink
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 13
    functionsReached:
    - cli_warnmsg
    - unlink
    - cli_strerror
    - _chmod
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unlink(const char *pathname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_ctx*::engine::cb_virus_found
      Src: /src/clamav/libclamav/others.c:1394,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/others.c:1395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - virname
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 1399
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1399
    functionName: cli_virus_found_cb
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - cli_ctx*::engine::cb_virus_found
    - fmap_fd
    linkageType: ''
    returnType: void
    signature: void cli_virus_found_cb(cli_ctx *ctx, const char *virname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_check_fp
      Src: /src/clamav/libclamav/others.c:1427,1
    - Dst: evidence_add_indicator
      Src: /src/clamav/libclamav/others.c:1433,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1439,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/others.c:1439,1
    - Dst: cli_virus_found_cb
      Src: /src/clamav/libclamav/others.c:1446,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/others.c:1451,1
    - Dst: json_object_new_array
      Src: /src/clamav/libclamav/others.c:1452,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1454,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/others.c:1458,1
    - Dst: json_object_new_string
      Src: /src/clamav/libclamav/others.c:1460,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1462,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/others.c:1466,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1493,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 3
    argNames:
    - ctx
    - virname
    - type
    argTypes:
    - cli_ctx*
    - char*
    - IndicatorType
    constantsTouched: []
    func_position:
      end: 1497
      start: 1411
    functionDepth: 3
    functionLinenumber: 1411
    functionLinenumberEnd: 1497
    functionName: append_virus
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 8
    functionsReached:
    - json_object_new_string
    - cli_check_fp
    - cli_virus_found_cb
    - json_object_object_add
    - json_object_new_array
    - json_object_object_get_ex
    - json_object_array_add
    - evidence_add_indicator
    - free
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t append_virus(cli_ctx *ctx, const char *virname, IndicatorType
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: append_virus
      Src: /src/clamav/libclamav/others.c:1502,1
    - Dst: append_virus
      Src: /src/clamav/libclamav/others.c:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - virname
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 1506
      start: 1499
    functionDepth: 4
    functionLinenumber: 1499
    functionLinenumberEnd: 1506
    functionName: cli_append_potentially_unwanted
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 12
    functionsReached:
    - append_virus
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_append_potentially_unwanted(cli_ctx *ctx, const char
      *virname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/others.c:1510,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others.c:1511,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others.c:1512,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/others.c:1513,1
    - Dst: append_virus
      Src: /src/clamav/libclamav/others.c:1515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - virname
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 1517
      start: 1508
    functionDepth: 5
    functionLinenumber: 1508
    functionLinenumberEnd: 1517
    functionName: cli_append_virus
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 8
    functionsReached:
    - append_virus
    - cli_append_potentially_unwanted
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_append_virus(cli_ctx *ctx, const char *virname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: evidence_get_last_alert
      Src: /src/clamav/libclamav/others.c:1525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1526
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1526
    functionName: cli_get_last_virus
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - evidence_get_last_alert
    linkageType: ''
    returnType: char
    signature: char *cli_get_last_virus(const cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_get_last_virus
      Src: /src/clamav/libclamav/others.c:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1537
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1537
    functionName: cli_get_last_virus_str
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 2
    functionsReached:
    - cli_get_last_virus
    linkageType: ''
    returnType: char
    signature: char *cli_get_last_virus_str(const cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/others.c:1547,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1548,1
    - Dst: emax_reached
      Src: /src/clamav/libclamav/others.c:1549,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1555,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1556,1
    - Dst: emax_reached
      Src: /src/clamav/libclamav/others.c:1557,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/others.c:1558,1
    - Dst: memset
      Src: /src/clamav/libclamav/others.c:1567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 5
    argNames:
    - ctx
    - map
    - type
    - is_new_buffer
    - attributes
    argTypes:
    - cli_ctx*
    - cl_fmap_t*
    - cli_file_t
    - bool
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1598
      start: 1539
    functionDepth: 3
    functionLinenumber: 1539
    functionLinenumberEnd: 1598
    functionName: cli_recursion_stack_push
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 2
    functionsReached:
    - memset
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - emax_reached
    - cli_dbgmsg
    - cli_checklimits
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_recursion_stack_push(cli_ctx *ctx, cl_fmap_t *map, cli_file_t
      type, bool is_new_buffer, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others.c:1605,1
    - Dst: memset
      Src: /src/clamav/libclamav/others.c:1613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1621
      start: 1600
    functionDepth: 1
    functionLinenumber: 1600
    functionLinenumberEnd: 1621
    functionName: cli_recursion_stack_pop
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 2
    functionsReached:
    - memset
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_fmap_t
    signature: cl_fmap_t *cli_recursion_stack_pop(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - cli_ctx*
    - cli_file_t
    constantsTouched: []
    func_position:
      end: 1626
      start: 1623
    functionDepth: 0
    functionLinenumber: 1623
    functionLinenumberEnd: 1626
    functionName: cli_recursion_stack_change_type
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_recursion_stack_change_type(cli_ctx *ctx, cli_file_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - index
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 1672
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1672
    functionName: recursion_stack_get
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int recursion_stack_get(cli_ctx *ctx, int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recursion_stack_get
      Src: /src/clamav/libclamav/others.c:1679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - index
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 1691
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1691
    functionName: cli_recursion_stack_get_type
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 3
    functionsReached:
    - recursion_stack_get
    linkageType: ''
    returnType: cli_file_t
    signature: cli_file_t cli_recursion_stack_get_type(cli_ctx *ctx, int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recursion_stack_get
      Src: /src/clamav/libclamav/others.c:1698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - index
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 1710
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1710
    functionName: cli_recursion_stack_get_size
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached:
    - recursion_stack_get
    linkageType: ''
    returnType: size_t
    signature: size_t cli_recursion_stack_get_size(cli_ctx *ctx, int index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/others.c:1724,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:1725,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others.c:1725,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclamav/others.c:1729,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/others.c:1730,1
    - Dst: opendir
      Src: /src/clamav/libclamav/others.c:1734,1
    - Dst: readdir
      Src: /src/clamav/libclamav/others.c:1739,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/others.c:1742,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/others.c:1744,1
    - Dst: malloc
      Src: /src/clamav/libclamav/others.c:1747,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1747,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1747,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1749,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1749,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1749,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1750,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/others.c:1754,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/others.c:1755,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1756,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1761,1
    - Dst: rmdir
      Src: /src/clamav/libclamav/others.c:1763,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1764,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others.c:1764,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1769
      start: 1716
    functionDepth: 3
    functionLinenumber: 1716
    functionLinenumberEnd: 1769
    functionName: cli_rmdirs
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 9
    functionsReached:
    - closedir
    - cli_rmdirs
    - strcmp
    - cli_warnmsg
    - cli_unlink
    - strlen
    - S_ISDIR
    - cli_strerror
    - CLAMSTAT
    - opendir
    - readdir
    - rmdir
    - free
    - malloc
    - cli_errmsg
    - sprintf
    linkageType: ''
    returnType: int
    signature: int cli_rmdirs(const char *dirname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chmod
      Src: /src/clamav/libclamav/others.c:1779,1
    - Dst: opendir
      Src: /src/clamav/libclamav/others.c:1780,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/others.c:1781,1
    - Dst: rmdir
      Src: /src/clamav/libclamav/others.c:1782,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1784,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others.c:1784,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1785,1
    - Dst: readdir
      Src: /src/clamav/libclamav/others.c:1789,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/others.c:1791,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/others.c:1791,1
    - Dst: malloc
      Src: /src/clamav/libclamav/others.c:1792,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1792,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1792,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1794,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1794,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others.c:1794,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1795,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/others.c:1799,1
    - Dst: LSTAT
      Src: /src/clamav/libclamav/others.c:1802,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclamav/others.c:1803,1
    - Dst: S_ISLNK
      Src: /src/clamav/libclamav/others.c:1803,1
    - Dst: rmdir
      Src: /src/clamav/libclamav/others.c:1804,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1806,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1807,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1808,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/others.c:1811,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others.c:1812,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1813,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1814,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/others.c:1819,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1820,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1821,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1826,1
    - Dst: rewinddir
      Src: /src/clamav/libclamav/others.c:1830,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others.c:1837,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1839
      start: 1771
    functionDepth: 3
    functionLinenumber: 1771
    functionLinenumberEnd: 1839
    functionName: cli_rmdirs
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 10
    functionsReached:
    - cli_warnmsg
    - S_ISDIR
    - readdir
    - sprintf
    - strcmp
    - chmod
    - cli_rmdirs
    - closedir
    - cli_unlink
    - rmdir
    - malloc
    - free
    - S_ISLNK
    - strlen
    - cli_strerror
    - CLAMSTAT
    - opendir
    - LSTAT
    - rewinddir
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int cli_rmdirs(const char *dirname)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1858
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1858
    functionName: nearest_power
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long nearest_power(unsigned long num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/others.c:1864,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1866,1
    - Dst: calloc
      Src: /src/clamav/libclamav/others.c:1870,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others.c:1872,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1860
    functionDepth: 1
    functionLinenumber: 1860
    functionLinenumberEnd: 1877
    functionName: cli_bitset_init
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - calloc
    - malloc
    - cli_errmsg
    - free
    linkageType: ''
    returnType: bitset_t
    signature: bitset_t *cli_bitset_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1885,1
    - Dst: free
      Src: /src/clamav/libclamav/others.c:1887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bs
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 1888
      start: 1879
    functionDepth: 0
    functionLinenumber: 1879
    functionLinenumberEnd: 1888
    functionName: cli_bitset_free
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cli_bitset_free(bitset_t *bs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nearest_power
      Src: /src/clamav/libclamav/others.c:1895,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/others.c:1896,1
    - Dst: memset
      Src: /src/clamav/libclamav/others.c:1901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - bs
    - min_size
    argTypes:
    - bitset_t*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1904
      start: 1890
    functionDepth: 1
    functionLinenumber: 1890
    functionLinenumberEnd: 1904
    functionName: bitset_realloc
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - nearest_power
    - memset
    - cli_max_realloc
    linkageType: ''
    returnType: bitset_t
    signature: bitset_t *bitset_realloc(bitset_t *bs, unsigned long min_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitset_realloc
      Src: /src/clamav/libclamav/others.c:1914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - bs
    - bit_offset
    argTypes:
    - bitset_t*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1921
      start: 1906
    functionDepth: 2
    functionLinenumber: 1906
    functionLinenumberEnd: 1921
    functionName: cli_bitset_set
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached:
    - bitset_realloc
    linkageType: ''
    returnType: int
    signature: int cli_bitset_set(bitset_t *bs, unsigned long bit_offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bs
    - bit_offset
    argTypes:
    - bitset_t*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1934
      start: 1923
    functionDepth: 0
    functionLinenumber: 1923
    functionLinenumberEnd: 1934
    functionName: cli_bitset_test
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_bitset_test(bitset_t *bs, unsigned long bit_offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_pre_cache
    constantsTouched: []
    func_position:
      end: 1939
      start: 1936
    functionDepth: 0
    functionLinenumber: 1936
    functionLinenumberEnd: 1939
    functionName: cl_engine_set_clcb_pre_cache
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_pre_cache(struct cl_engine *engine, clcb_pre_cache
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_file_inspection
    constantsTouched: []
    func_position:
      end: 1944
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1944
    functionName: cl_engine_set_clcb_file_inspection
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_file_inspection(struct cl_engine *engine, clcb_file_inspection
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_pre_scan
    constantsTouched: []
    func_position:
      end: 1949
      start: 1946
    functionDepth: 0
    functionLinenumber: 1946
    functionLinenumberEnd: 1949
    functionName: cl_engine_set_clcb_pre_scan
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_pre_scan(struct cl_engine *engine, clcb_pre_scan
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_post_scan
    constantsTouched: []
    func_position:
      end: 1954
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1954
    functionName: cl_engine_set_clcb_post_scan
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_post_scan(struct cl_engine *engine, clcb_post_scan
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_virus_found
    constantsTouched: []
    func_position:
      end: 1959
      start: 1956
    functionDepth: 0
    functionLinenumber: 1956
    functionLinenumberEnd: 1959
    functionName: cl_engine_set_clcb_virus_found
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_virus_found(struct cl_engine *engine, clcb_virus_found
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - engine
    - callback
    - context
    argTypes:
    - struct cl_engine*
    - clcb_sigload
    - void*
    constantsTouched: []
    func_position:
      end: 1965
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1965
    functionName: cl_engine_set_clcb_sigload
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_sigload(struct cl_engine *engine, clcb_sigload
      callback, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - engine
    - callback
    - context
    argTypes:
    - struct cl_engine*
    - clcb_progress
    - void*
    constantsTouched: []
    func_position:
      end: 1971
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 1971
    functionName: cl_engine_set_clcb_sigload_progress
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_sigload_progress(struct cl_engine *engine,
      clcb_progress callback, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - engine
    - callback
    - context
    argTypes:
    - struct cl_engine*
    - clcb_progress
    - void*
    constantsTouched: []
    func_position:
      end: 1977
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1977
    functionName: cl_engine_set_clcb_engine_compile_progress
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_engine_compile_progress(struct cl_engine *engine,
      clcb_progress callback, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - engine
    - callback
    - context
    argTypes:
    - struct cl_engine*
    - clcb_progress
    - void*
    constantsTouched: []
    func_position:
      end: 1983
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 1983
    functionName: cl_engine_set_clcb_engine_free_progress
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_engine_free_progress(struct cl_engine *engine,
      clcb_progress callback, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_hash
    constantsTouched: []
    func_position:
      end: 1988
      start: 1985
    functionDepth: 0
    functionLinenumber: 1985
    functionLinenumberEnd: 1988
    functionName: cl_engine_set_clcb_hash
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_hash(struct cl_engine *engine, clcb_hash callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_meta
    constantsTouched: []
    func_position:
      end: 1993
      start: 1990
    functionDepth: 0
    functionLinenumber: 1990
    functionLinenumberEnd: 1993
    functionName: cl_engine_set_clcb_meta
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_meta(struct cl_engine *engine, clcb_meta callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_file_props
    constantsTouched: []
    func_position:
      end: 1998
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 1998
    functionName: cl_engine_set_clcb_file_props
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_file_props(struct cl_engine *engine, clcb_file_props
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - engine
    - callback
    argTypes:
    - struct cl_engine*
    - clcb_generic_data
    constantsTouched: []
    func_position:
      end: 2003
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2003
    functionName: cl_engine_set_clcb_vba
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_engine_set_clcb_vba(struct cl_engine *engine, clcb_generic_data
      callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 2005
    functionDepth: 0
    functionLinenumber: 2005
    functionLinenumberEnd: 2008
    functionName: cli_get_debug_flag
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t cli_get_debug_flag()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - debug_flag
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 2016
      start: 2010
    functionDepth: 0
    functionLinenumber: 2010
    functionLinenumberEnd: 2016
    functionName: cli_set_debug_flag
    functionSourceFile: /src/clamav/libclamav/others.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t cli_set_debug_flag(uint8_t debug_flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_register
      Src: /src/clamav/libclamav/perflogging.h:71,1
    - Dst: cli_perf_flush
      Src: /src/clamav/libclamav/perflogging.h:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: cli_perf_enter
    functionSourceFile: /src/clamav/libclamav/perflogging.h
    functionUses: 0
    functionsReached:
    - cli_perf_register
    - cli_perf_flush
    linkageType: ''
    returnType: void
    signature: void cli_perf_enter(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_enter
      Src: /src/clamav/libclamav/perflogging.h:80,1
    - Dst: assert
      Src: /src/clamav/libclamav/perflogging.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - kind
    - add
    argTypes:
    - enum perf_log_sumable
    - uint64_t
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: cli_perf_log_add
    functionSourceFile: /src/clamav/libclamav/perflogging.h
    functionUses: 2
    functionsReached:
    - cli_perf_enter
    - assert
    linkageType: ''
    returnType: void
    signature: void cli_perf_log_add(enum perf_log_sumable kind, uint64_t add)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_enter
      Src: /src/clamav/libclamav/perflogging.h:87,1
    - Dst: assert
      Src: /src/clamav/libclamav/perflogging.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - kind
    - event
    - cnt
    argTypes:
    - enum perf_log_countable
    - uint8_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: cli_perf_log_count2
    functionSourceFile: /src/clamav/libclamav/perflogging.h
    functionUses: 1
    functionsReached:
    - cli_perf_enter
    - assert
    linkageType: ''
    returnType: void
    signature: void cli_perf_log_count2(enum perf_log_countable kind, uint8_t event,
      uint64_t cnt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_log_count2
      Src: /src/clamav/libclamav/perflogging.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - kind
    - event
    argTypes:
    - enum perf_log_countable
    - uint8_t
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: cli_perf_log_count
    functionSourceFile: /src/clamav/libclamav/perflogging.h
    functionUses: 0
    functionsReached:
    - cli_perf_log_count2
    linkageType: ''
    returnType: void
    signature: void cli_perf_log_count(enum perf_log_countable kind, uint8_t event)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - state
    - out
    - out_len
    argTypes:
    - struct text_norm_state*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: text_normalize_init
    functionSourceFile: /src/clamav/libclamav/textnorm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int text_normalize_init(struct text_norm_state *state, unsigned char
      *out, size_t out_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct text_norm_state*
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: text_normalize_reset
    functionSourceFile: /src/clamav/libclamav/textnorm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void text_normalize_reset(struct text_norm_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - state
    - buf
    - buf_len
    argTypes:
    - struct text_norm_state*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 126
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 126
    functionName: text_normalize_buffer
    functionSourceFile: /src/clamav/libclamav/textnorm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t text_normalize_buffer(struct text_norm_state *state, const unsigned
      char *buf, const size_t buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIN_3
      Src: /src/clamav/libclamav/textnorm.c:149,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/textnorm.c:152,1
    - Dst: text_normalize_buffer
      Src: /src/clamav/libclamav/textnorm.c:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - state
    - map
    - offset
    argTypes:
    - struct text_norm_state*
    - fmap_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 161
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 161
    functionName: text_normalize_map
    functionSourceFile: /src/clamav/libclamav/textnorm.c
    functionUses: 0
    functionsReached:
    - MIN_3
    - fmap_need_off_once
    - text_normalize_buffer
    linkageType: ''
    returnType: size_t
    signature: size_t text_normalize_map(struct text_norm_state *state, fmap_t *map,
      size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/clamav/libclamav/www.c:70,1
    - Dst: MAKEWORD
      Src: /src/clamav/libclamav/www.c:70,1
    - Dst: memset
      Src: /src/clamav/libclamav/www.c:75,1
    - Dst: getaddrinfo
      Src: /src/clamav/libclamav/www.c:79,1
    - Dst: socket
      Src: /src/clamav/libclamav/www.c:83,1
    - Dst: fcntl
      Src: /src/clamav/libclamav/www.c:88,1
    - Dst: fcntl
      Src: /src/clamav/libclamav/www.c:89,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:90,1
    - Dst: connect
      Src: /src/clamav/libclamav/www.c:95,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:98,1
    - Dst: FD_ZERO
      Src: /src/clamav/libclamav/www.c:103,1
    - Dst: FD_ZERO
      Src: /src/clamav/libclamav/www.c:104,1
    - Dst: FD_SET
      Src: /src/clamav/libclamav/www.c:105,1
    - Dst: FD_SET
      Src: /src/clamav/libclamav/www.c:106,1
    - Dst: select
      Src: /src/clamav/libclamav/www.c:111,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:112,1
    - Dst: FD_ISSET
      Src: /src/clamav/libclamav/www.c:116,1
    - Dst: FD_ISSET
      Src: /src/clamav/libclamav/www.c:116,1
    - Dst: getsockopt
      Src: /src/clamav/libclamav/www.c:118,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:119,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:123,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:127,1
    - Dst: freeaddrinfo
      Src: /src/clamav/libclamav/www.c:137,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:139,1
    - Dst: freeaddrinfo
      Src: /src/clamav/libclamav/www.c:143,1
    - Dst: fcntl
      Src: /src/clamav/libclamav/www.c:147,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:148,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 4
    argNames:
    - host
    - port
    - timeout
    - useAsync
    argTypes:
    - char*
    - char*
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 154
    functionName: connect_host
    functionSourceFile: /src/clamav/libclamav/www.c
    functionUses: 0
    functionsReached:
    - fcntl
    - connect
    - FD_ISSET
    - memset
    - getsockopt
    - FD_SET
    - getaddrinfo
    - FD_ZERO
    - MAKEWORD
    - select
    - closesocket
    - WSAStartup
    - socket
    - freeaddrinfo
    linkageType: ''
    returnType: int
    signature: int connect_host(const char *host, const char *port, uint32_t timeout,
      int useAsync)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/clamav/libclamav/www.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - postdata
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: encoded_size
    functionSourceFile: /src/clamav/libclamav/www.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: size_t
    signature: size_t encoded_size(const char *postdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encoded_size
      Src: /src/clamav/libclamav/www.c:172,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/www.c:176,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/www.c:181,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/www.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - postdata
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: encode_data
    functionSourceFile: /src/clamav/libclamav/www.c
    functionUses: 0
    functionsReached:
    - cli_max_calloc
    - encoded_size
    - sprintf
    - isalnum
    linkageType: ''
    returnType: char
    signature: char *encode_data(const char *postdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/www.c:209,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:215,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:217,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:219,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/www.c:223,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/www.c:223,1
    - Dst: encode_data
      Src: /src/clamav/libclamav/www.c:224,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:227,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:227,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:230,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:231,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/www.c:234,1
    - Dst: free
      Src: /src/clamav/libclamav/www.c:237,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:242,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:243,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:243,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:243,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:244,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:244,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:244,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/www.c:246,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/www.c:246,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:247,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:247,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:247,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:248,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:248,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:248,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:249,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:249,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:249,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/www.c:250,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:250,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:250,1
    - Dst: free
      Src: /src/clamav/libclamav/www.c:251,1
    - Dst: connect_host
      Src: /src/clamav/libclamav/www.c:254,1
    - Dst: connect_host
      Src: /src/clamav/libclamav/www.c:256,1
    - Dst: free
      Src: /src/clamav/libclamav/www.c:259,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/www.c:263,1
    - Dst: send
      Src: /src/clamav/libclamav/www.c:265,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:265,1
    - Dst: strlen
      Src: /src/clamav/libclamav/www.c:265,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:266,1
    - Dst: free
      Src: /src/clamav/libclamav/www.c:267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/www.c:271,1
    - Dst: FD_ZERO
      Src: /src/clamav/libclamav/www.c:274,1
    - Dst: FD_SET
      Src: /src/clamav/libclamav/www.c:275,1
    - Dst: select
      Src: /src/clamav/libclamav/www.c:284,1
    - Dst: FD_ISSET
      Src: /src/clamav/libclamav/www.c:287,1
    - Dst: memset
      Src: /src/clamav/libclamav/www.c:288,1
    - Dst: recv
      Src: /src/clamav/libclamav/www.c:289,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/www.c:294,1
    - Dst: strstr
      Src: /src/clamav/libclamav/www.c:296,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/www.c:297,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/www.c:303,1
    - Dst: free
      Src: /src/clamav/libclamav/www.c:304,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 6
    argNames:
    - host
    - port
    - method
    - url
    - postdata
    - timeout
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 305
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 305
    functionName: submit_post
    functionSourceFile: /src/clamav/libclamav/www.c
    functionUses: 1
    functionsReached:
    - FD_ISSET
    - encode_data
    - snprintf
    - memset
    - strcmp
    - strstr
    - strlen
    - send
    - FD_SET
    - recv
    - FD_ZERO
    - cli_dbgmsg
    - connect_host
    - select
    - closesocket
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: void
    signature: void submit_post(const char *host, const char *port, const char *method,
      const char *url, const char *postdata, uint32_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/clamav/libclamav/strlcat.c:41,1
    - Dst: strlen
      Src: /src/clamav/libclamav/strlcat.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 67
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 67
    functionName: cli_strlcat
    functionSourceFile: /src/clamav/libclamav/strlcat.c
    functionUses: 0
    functionsReached:
    - strlen
    - strlcat
    linkageType: ''
    returnType: size_t
    signature: size_t cli_strlcat(char *dst, const char *src, size_t siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/mbr.c:81,1
    - Dst: mbr_convert_to_host
      Src: /src/clamav/libclamav/mbr.c:82,1
    - Dst: mbr_check_mbr
      Src: /src/clamav/libclamav/mbr.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - buff
    - len
    - maplen
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: cli_mbr_check
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mbr_check_mbr
    - mbr_convert_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_mbr_check(const unsigned char *buff, size_t len, size_t
      maplen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbr.c:97,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:110,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/mbr.c:119,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:120,1
    - Dst: mbr_convert_to_host
      Src: /src/clamav/libclamav/mbr.c:125,1
    - Dst: mbr_check_mbr
      Src: /src/clamav/libclamav/mbr.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - sectorsize
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 131
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 131
    functionName: cli_mbr_check2
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 0
    functionsReached:
    - mbr_convert_to_host
    - fmap_readn
    - cli_dbgmsg
    - mbr_check_mbr
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_mbr_check2(cli_ctx *ctx, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbr_parsemsg
      Src: /src/clamav/libclamav/mbr.c:143,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbr.c:146,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:160,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/mbr.c:170,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:171,1
    - Dst: mbr_convert_to_host
      Src: /src/clamav/libclamav/mbr.c:177,1
    - Dst: mbr_check_mbr
      Src: /src/clamav/libclamav/mbr.c:180,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/mbr.c:186,1
    - Dst: mbr_primary_partition_intersection
      Src: /src/clamav/libclamav/mbr.c:193,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:204,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:217,1
    - Dst: mbr_scanextprtn
      Src: /src/clamav/libclamav/mbr.c:222,1
    - Dst: mbr_parsemsg
      Src: /src/clamav/libclamav/mbr.c:232,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/mbr.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:241,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 2
    argNames:
    - ctx
    - sectorsize
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 247
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 247
    functionName: cli_scanmbr
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 0
    functionsReached:
    - mbr_convert_to_host
    - mbr_primary_partition_intersection
    - mbr_parsemsg
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - mbr_check_mbr
    - mbr_scanextprtn
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanmbr(cli_ctx *ctx, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ebr_parsemsg
      Src: /src/clamav/libclamav/mbr.c:258,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/mbr.c:270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:271,1
    - Dst: mbr_convert_to_host
      Src: /src/clamav/libclamav/mbr.c:277,1
    - Dst: mbr_check_ebr
      Src: /src/clamav/libclamav/mbr.c:280,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:291,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:292,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:296,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:297,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:298,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbr.c:316,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbr.c:320,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbr.c:332,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbr.c:336,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:341,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbr.c:353,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbr.c:358,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbr.c:362,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:367,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:375,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/mbr.c:380,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:389,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:400,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 125
    argCount: 5
    argNames:
    - ctx
    - prtncount
    - extlba
    - extlbasize
    - sectorsize
    argTypes:
    - cli_ctx*
    - unsigned*
    - size_t
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 405
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 405
    functionName: mbr_scanextprtn
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - ebr_parsemsg
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - mbr_check_ebr
    - mbr_convert_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t mbr_scanextprtn(cli_ctx *ctx, unsigned *prtncount, size_t
      extlba, size_t extlbasize, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/mbr.c:415,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/mbr.c:416,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/mbr.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - record
    argTypes:
    - struct mbr_boot_record*
    constantsTouched: []
    func_position:
      end: 419
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 419
    functionName: mbr_convert_to_host
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 5
    functionsReached:
    - be16_to_host
    - le32_to_host
    linkageType: ''
    returnType: void
    signature: void mbr_convert_to_host(struct mbr_boot_record *record)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:432,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:440,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:448,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - record
    - maplen
    - sectorsize
    argTypes:
    - struct mbr_boot_record*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 463
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 463
    functionName: mbr_check_mbr
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 3
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t mbr_check_mbr(struct mbr_boot_record *record, size_t maplen,
      size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:474,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - record
    argTypes:
    - struct mbr_boot_record*
    constantsTouched: []
    func_position:
      end: 490
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 490
    functionName: mbr_check_ebr
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t mbr_check_ebr(struct mbr_boot_record *record)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: partition_intersection_list_init
      Src: /src/clamav/libclamav/mbr.c:500,1
    - Dst: partition_intersection_list_check
      Src: /src/clamav/libclamav/mbr.c:507,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:511,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/mbr.c:514,1
    - Dst: mbr_extended_partition_intersection
      Src: /src/clamav/libclamav/mbr.c:526,1
    - Dst: partition_intersection_list_free
      Src: /src/clamav/libclamav/mbr.c:539,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - mbr
    - sectorsize
    argTypes:
    - cli_ctx*
    - struct mbr_boot_record
    - size_t
    constantsTouched: []
    func_position:
      end: 541
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 541
    functionName: mbr_primary_partition_intersection
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 1
    functionsReached:
    - partition_intersection_list_free
    - partition_intersection_list_check
    - cli_append_potentially_unwanted
    - partition_intersection_list_init
    - mbr_extended_partition_intersection
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t mbr_primary_partition_intersection(cli_ctx *ctx, struct
      mbr_boot_record mbr, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: partition_intersection_list_init
      Src: /src/clamav/libclamav/mbr.c:556,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/mbr.c:565,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:566,1
    - Dst: partition_intersection_list_free
      Src: /src/clamav/libclamav/mbr.c:567,1
    - Dst: mbr_convert_to_host
      Src: /src/clamav/libclamav/mbr.c:573,1
    - Dst: partition_intersection_list_check
      Src: /src/clamav/libclamav/mbr.c:579,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:582,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/mbr.c:585,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbr.c:597,1
    - Dst: partition_intersection_list_free
      Src: /src/clamav/libclamav/mbr.c:607,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - prtncount
    - extlba
    - sectorsize
    argTypes:
    - cli_ctx*
    - unsigned*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 610
      start: 544
    functionDepth: 5
    functionLinenumber: 544
    functionLinenumberEnd: 610
    functionName: mbr_extended_partition_intersection
    functionSourceFile: /src/clamav/libclamav/mbr.c
    functionUses: 1
    functionsReached:
    - partition_intersection_list_free
    - partition_intersection_list_init
    - partition_intersection_list_check
    - cli_append_potentially_unwanted
    - fmap_readn
    - cli_dbgmsg
    - mbr_convert_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t mbr_extended_partition_intersection(cli_ctx *ctx, unsigned
      *prtncount, size_t extlba, size_t sectorsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/matcher-byte-comp.c:78,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-byte-comp.c:90,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:92,1
    - Dst: strtol
      Src: /src/clamav/libclamav/matcher-byte-comp.c:110,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:112,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:113,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:118,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:119,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-byte-comp.c:128,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:131,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:132,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:136,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:137,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/matcher-byte-comp.c:142,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/matcher-byte-comp.c:145,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:147,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:148,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:149,1
    - Dst: strtol
      Src: /src/clamav/libclamav/matcher-byte-comp.c:161,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:163,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:164,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:165,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:172,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:173,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:174,1
    - Dst: strtol
      Src: /src/clamav/libclamav/matcher-byte-comp.c:181,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:183,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:184,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:185,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:190,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:191,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:192,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:201,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:202,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:203,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/matcher-byte-comp.c:212,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:284,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:285,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:286,1
    - Dst: strtol
      Src: /src/clamav/libclamav/matcher-byte-comp.c:294,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:296,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:297,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:298,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:303,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:304,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:305,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:311,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:312,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:313,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/matcher-byte-comp.c:320,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:322,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:323,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-byte-comp.c:328,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/matcher-byte-comp.c:329,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:338,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:339,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:340,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:341,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-byte-comp.c:350,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:352,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:353,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:354,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:355,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-byte-comp.c:362,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:364,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:365,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:366,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:367,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:380,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:381,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:382,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:383,1
    - Dst: strtoll
      Src: /src/clamav/libclamav/matcher-byte-comp.c:390,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:392,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:393,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:394,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:395,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:408,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:419,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/matcher-byte-comp.c:425,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:427,1
    - Dst: cli_bcomp_freemeta
      Src: /src/clamav/libclamav/matcher-byte-comp.c:428,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:438,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 268
    argCount: 5
    argNames:
    - root
    - virname
    - hexsig
    - lsigid
    - options
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    - uint32_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 440
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 440
    functionName: cli_bcomp_addpatt
    functionSourceFile: /src/clamav/libclamav/matcher-byte-comp.c
    functionUses: 0
    functionsReached:
    - bcm_dbgmsg
    - strtoll
    - UNUSEDPARAM
    - CLI_STRNDUP
    - strchr
    - cli_strtokenize
    - MPOOL_REALLOC
    - strrchr
    - free
    - cli_bcomp_freemeta
    - strtol
    - cli_safer_strdup
    - cli_errmsg
    - MPOOL_CALLOC
    - isdigit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bcomp_addpatt(struct cli_matcher *root, const char *virname,
      const char *hexsig, const uint32_t *lsigid, unsigned int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclamav/matcher-byte-comp.c:480,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/libclamav/matcher-byte-comp.c:483,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-byte-comp.c:483,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:485,1
    - Dst: calloc
      Src: /src/clamav/libclamav/matcher-byte-comp.c:499,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:501,1
    - Dst: cli_bcomp_compare_check
      Src: /src/clamav/libclamav/matcher-byte-comp.c:518,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/matcher-byte-comp.c:529,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 6
    argNames:
    - buffer
    - buffer_length
    - res
    - root
    - mdata
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - struct cli_ac_result**
    - struct cli_matcher*
    - struct cli_ac_data*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 535
      start: 452
    functionDepth: 6
    functionLinenumber: 452
    functionLinenumberEnd: 535
    functionName: cli_bcomp_scanbuf
    functionSourceFile: /src/clamav/libclamav/matcher-byte-comp.c
    functionUses: 1
    functionsReached:
    - snprintf
    - calloc
    - cli_append_virus
    - strlen
    - cli_bcomp_compare_check
    - bcm_dbgmsg
    - cli_errmsg
    - cli_ac_chklsig
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bcomp_scanbuf(const unsigned char *buffer, size_t buffer_length,
      struct cli_ac_result **res, const struct cli_matcher *root, struct cli_ac_data
      *mdata, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:564,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:575,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:579,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:587,1
    - Dst: cli_bcomp_normalize_buffer
      Src: /src/clamav/libclamav/matcher-byte-comp.c:593,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:595,1
    - Dst: cli_bcomp_normalize_buffer
      Src: /src/clamav/libclamav/matcher-byte-comp.c:609,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:611,1
    - Dst: cli_bcomp_chk_hex
      Src: /src/clamav/libclamav/matcher-byte-comp.c:620,1
    - Dst: cli_strntol
      Src: /src/clamav/libclamav/matcher-byte-comp.c:633,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:636,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:643,1
    - Dst: cli_strntol
      Src: /src/clamav/libclamav/matcher-byte-comp.c:652,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:654,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:661,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:672,1
    - Dst: cli_strntol
      Src: /src/clamav/libclamav/matcher-byte-comp.c:678,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:681,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:688,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/matcher-byte-comp.c:703,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/matcher-byte-comp.c:706,1
    - Dst: le64_to_host
      Src: /src/clamav/libclamav/matcher-byte-comp.c:709,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:713,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/matcher-byte-comp.c:727,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/matcher-byte-comp.c:730,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/matcher-byte-comp.c:733,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:737,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:744,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:761,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:775,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:789,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:797,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:804,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:812,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:815,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 220
    argCount: 4
    argNames:
    - f_buffer
    - buffer_length
    - offset
    - bm
    argTypes:
    - unsigned char*
    - size_t
    - int
    - struct cli_bcomp_meta*
    constantsTouched: []
    func_position:
      end: 818
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 818
    functionName: cli_bcomp_compare_check
    functionSourceFile: /src/clamav/libclamav/matcher-byte-comp.c
    functionUses: 1
    functionsReached:
    - le32_to_host
    - cli_bcomp_chk_hex
    - cli_bcomp_normalize_buffer
    - cli_strntol
    - le16_to_host
    - be64_to_host
    - le64_to_host
    - be32_to_host
    - be16_to_host
    - bcm_dbgmsg
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bcomp_compare_check(const unsigned char *f_buffer, size_t
      buffer_length, int offset, struct cli_bcomp_meta *bm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/matcher-byte-comp.c:845,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/matcher-byte-comp.c:845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - buffer
    - opt
    - len
    - check_only
    argTypes:
    - unsigned char*
    - uint16_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 855
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 855
    functionName: cli_bcomp_chk_hex
    functionSourceFile: /src/clamav/libclamav/matcher-byte-comp.c
    functionUses: 1
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t cli_bcomp_chk_hex(const unsigned char *buffer, uint16_t opt,
      uint32_t len, uint32_t check_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:881,1
    - Dst: isspace
      Src: /src/clamav/libclamav/matcher-byte-comp.c:887,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:888,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/matcher-byte-comp.c:897,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:899,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher-byte-comp.c:902,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-byte-comp.c:903,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/matcher-byte-comp.c:915,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:917,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/matcher-byte-comp.c:921,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:923,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:924,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher-byte-comp.c:928,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher-byte-comp.c:929,1
    - Dst: cli_bcomp_chk_hex
      Src: /src/clamav/libclamav/matcher-byte-comp.c:937,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-byte-comp.c:938,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-byte-comp.c:941,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-byte-comp.c:945,1
    - Dst: cli_bcomp_chk_hex
      Src: /src/clamav/libclamav/matcher-byte-comp.c:946,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/matcher-byte-comp.c:954,1
    - Dst: toupper
      Src: /src/clamav/libclamav/matcher-byte-comp.c:954,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher-byte-comp.c:958,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/matcher-byte-comp.c:965,1
    - Dst: toupper
      Src: /src/clamav/libclamav/matcher-byte-comp.c:965,1
    - Dst: memset
      Src: /src/clamav/libclamav/matcher-byte-comp.c:969,1
    - Dst: bcm_dbgmsg
      Src: /src/clamav/libclamav/matcher-byte-comp.c:974,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-byte-comp.c:975,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 5
    argNames:
    - buffer
    - byte_len
    - pad_len
    - opt
    - whitespace_only
    argTypes:
    - unsigned char*
    - uint32_t
    - uint32_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 979
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 979
    functionName: cli_bcomp_normalize_buffer
    functionSourceFile: /src/clamav/libclamav/matcher-byte-comp.c
    functionUses: 1
    functionsReached:
    - memset
    - isxdigit
    - cli_bcomp_chk_hex
    - toupper
    - isspace
    - memcpy
    - bcm_dbgmsg
    - cli_max_calloc
    - cli_errmsg
    - free
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cli_bcomp_normalize_buffer(const unsigned char *buffer,
      uint32_t byte_len, uint32_t *pad_len, uint16_t opt, uint16_t whitespace_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-byte-comp.c:1000,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-byte-comp.c:1005,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-byte-comp.c:1009,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - root
    - bm
    argTypes:
    - struct cli_matcher*
    - struct cli_bcomp_meta*
    constantsTouched: []
    func_position:
      end: 1013
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 1013
    functionName: cli_bcomp_freemeta
    functionSourceFile: /src/clamav/libclamav/matcher-byte-comp.c
    functionUses: 1
    functionsReached:
    - MPOOL_FREE
    linkageType: ''
    returnType: void
    signature: void cli_bcomp_freemeta(struct cli_matcher *root, struct cli_bcomp_meta
      *bm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/uniq.c:42,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/uniq.c:45,1
    - Dst: uniq_free
      Src: /src/clamav/libclamav/uniq.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - count
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: uniq_init
    functionSourceFile: /src/clamav/libclamav/uniq.c
    functionUses: 3
    functionsReached:
    - cli_max_malloc
    - uniq_free
    - calloc
    linkageType: ''
    returnType: struct uniq
    signature: struct uniq *uniq_init(uint32_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/uniq.c:57,1
    - Dst: free
      Src: /src/clamav/libclamav/uniq.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - U
    argTypes:
    - struct uniq*
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: uniq_free
    functionSourceFile: /src/clamav/libclamav/uniq.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void uniq_free(struct uniq *U)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/uniq.c:81,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/uniq.c:90,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 5
    argNames:
    - U
    - item
    - item_len
    - rhash
    - count
    argTypes:
    - struct uniq*
    - char*
    - uint32_t
    - char**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 133
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 133
    functionName: uniq_add
    functionSourceFile: /src/clamav/libclamav/uniq.c
    functionUses: 2
    functionsReached:
    - memcmp
    - cl_hash_data
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t uniq_add(struct uniq *U, const char *item, uint32_t item_len,
      char **rhash, uint32_t *count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/uniq.c:154,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/uniq.c:175,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - U
    - item
    - item_len
    - rhash
    - count
    argTypes:
    - struct uniq*
    - char*
    - uint32_t
    - char**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 193
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 193
    functionName: uniq_get
    functionSourceFile: /src/clamav/libclamav/uniq.c
    functionUses: 2
    functionsReached:
    - memcmp
    - cl_hash_data
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t uniq_get(struct uniq *U, const char *item, uint32_t item_len,
      char **rhash, uint32_t *count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:323,1
    - Dst: cli_parse_mbox
      Src: /src/clamav/libclamav/mbox.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dir
    - ctx
    argTypes:
    - char*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: cli_mbox
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - cli_parse_mbox
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int cli_mbox(const char *dir, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:354,1
    - Dst: fmap_gets
      Src: /src/clamav/libclamav/mbox.c:356,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/mbox.c:362,1
    - Dst: initialiseTables
      Src: /src/clamav/libclamav/mbox.c:365,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/mbox.c:367,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/mbox.c:373,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:396,1
    - Dst: messageCreate
      Src: /src/clamav/libclamav/mbox.c:417,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:425,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/mbox.c:428,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:430,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:431,1
    - Dst: parseEmailHeaders
      Src: /src/clamav/libclamav/mbox.c:436,1
    - Dst: messageReset
      Src: /src/clamav/libclamav/mbox.c:438,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:439,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:446,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:447,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:448,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:449,1
    - Dst: messageReset
      Src: /src/clamav/libclamav/mbox.c:452,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:453,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:456,1
    - Dst: messageReset
      Src: /src/clamav/libclamav/mbox.c:472,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:473,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:475,1
    - Dst: isuuencodebegin
      Src: /src/clamav/libclamav/mbox.c:480,1
    - Dst: uudecodeFile
      Src: /src/clamav/libclamav/mbox.c:485,1
    - Dst: messageAddStr
      Src: /src/clamav/libclamav/mbox.c:486,1
    - Dst: messageAddStr
      Src: /src/clamav/libclamav/mbox.c:492,1
    - Dst: fmap_gets
      Src: /src/clamav/libclamav/mbox.c:496,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:499,1
    - Dst: parseEmailHeaders
      Src: /src/clamav/libclamav/mbox.c:501,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:507,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:513,1
    - Dst: fmap_gets
      Src: /src/clamav/libclamav/mbox.c:518,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:519,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:527,1
    - Dst: getline_from_mbox
      Src: /src/clamav/libclamav/mbox.c:528,1
    - Dst: parseEmailFile
      Src: /src/clamav/libclamav/mbox.c:535,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:545,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:546,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:547,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/mbox.c:565,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/mbox.c:571,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:587,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:590,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 129
    argCount: 2
    argNames:
    - dir
    - ctx
    argTypes:
    - char*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 593
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 593
    functionName: cli_parse_mbox
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - parseEmailHeaders
    - fmap_gets
    - parseEmailBody
    - isuuencodebegin
    - parseEmailFile
    - cli_dbgmsg
    - messageCreate
    - messageGetBody
    - cli_chomp
    - initialiseTables
    - strncmp
    - pthread_mutex_lock
    - messageAddStr
    - uudecodeFile
    - messageReset
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - pthread_mutex_unlock
    - messageSetCTX
    - strchr
    - getline_from_mbox
    - messageDestroy
    linkageType: ''
    returnType: int
    signature: int cli_parse_mbox(const char *dir, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:609,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:615,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/mbox.c:618,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/mbox.c:621,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/mbox.c:624,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:625,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/mbox.c:629,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - rs
    - buffer
    argTypes:
    - ReadStruct*
    - char*
    constantsTouched: []
    func_position:
      end: 635
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 635
    functionName: appendReadStruct
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - CLI_CALLOC_OR_GOTO_DONE
    - strlen
    - strncpy
    - cli_dbgmsg
    - strcpy
    linkageType: ''
    returnType: ReadStruct
    signature: 'ReadStruct *

      appendReadStruct(ReadStruct *rs, const char *const buffer)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/mbox.c:651,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/mbox.c:656,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - head
    argTypes:
    - ReadStruct*
    constantsTouched: []
    func_position:
      end: 669
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 669
    functionName: getMallocedBufferFromList
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - CLI_FREE_AND_SET_NULL
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      getMallocedBufferFromList(const ReadStruct *head)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - head
    argTypes:
    - ReadStruct*
    constantsTouched: []
    func_position:
      end: 679
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 679
    functionName: freeList
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - CLI_FREE_AND_SET_NULL
    linkageType: ''
    returnType: void
    signature: void freeList(ReadStruct *head)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:702,1
    - Dst: isblank
      Src: /src/clamav/libclamav/mbox.c:703,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - line
    - lastWasOnlySemi
    argTypes:
    - char*
    - bool*
    constantsTouched: []
    func_position:
      end: 721
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 721
    functionName: doContinueMultipleEmptyOptions
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - strlen
    - isblank
    linkageType: ''
    returnType: bool
    signature: bool doContinueMultipleEmptyOptions(const char *const line, bool *lastWasOnlySemi)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isblank
      Src: /src/clamav/libclamav/mbox.c:728,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/mbox.c:736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - line
    - lineFoldCnt
    - ctx
    - heuristicFound
    argTypes:
    - char*
    - size_t*
    - cli_ctx*
    - bool*
    constantsTouched: []
    func_position:
      end: 744
      start: 723
    functionDepth: 5
    functionLinenumber: 723
    functionLinenumberEnd: 744
    functionName: hitLineFoldCnt
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    - isblank
    linkageType: ''
    returnType: bool
    signature: bool hitLineFoldCnt(const char *const line, size_t *lineFoldCnt, cli_ctx
      *ctx, bool *heuristicFound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/mbox.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - totalLen
    - ctx
    - heuristicFound
    argTypes:
    - size_t
    - cli_ctx*
    - bool*
    constantsTouched: []
    func_position:
      end: 759
      start: 746
    functionDepth: 5
    functionLinenumber: 746
    functionLinenumberEnd: 759
    functionName: haveTooManyHeaderBytes
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    linkageType: ''
    returnType: bool
    signature: bool haveTooManyHeaderBytes(size_t totalLen, cli_ctx *ctx, bool *heuristicFound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/mbox.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - totalHeaderCnt
    - ctx
    - heuristicFound
    argTypes:
    - size_t
    - cli_ctx*
    - bool*
    constantsTouched: []
    func_position:
      end: 774
      start: 761
    functionDepth: 5
    functionLinenumber: 761
    functionLinenumberEnd: 774
    functionName: haveTooManyEmailHeaders
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    linkageType: ''
    returnType: bool
    signature: bool haveTooManyEmailHeaders(size_t totalHeaderCnt, cli_ctx *ctx, bool
      *heuristicFound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/mbox.c:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - mimePartCnt
    - ctx
    - rc
    argTypes:
    - size_t
    - cli_ctx*
    - mbox_status*
    constantsTouched: []
    func_position:
      end: 789
      start: 776
    functionDepth: 5
    functionLinenumber: 776
    functionLinenumberEnd: 789
    functionName: haveTooManyMIMEPartsPerMessage
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    linkageType: ''
    returnType: bool
    signature: bool haveTooManyMIMEPartsPerMessage(size_t mimePartCnt, cli_ctx *ctx,
      mbox_status *rc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/mbox.c:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - argCnt
    - ctx
    - heuristicFound
    argTypes:
    - size_t
    - cli_ctx*
    - bool*
    constantsTouched: []
    func_position:
      end: 805
      start: 791
    functionDepth: 5
    functionLinenumber: 791
    functionLinenumberEnd: 805
    functionName: haveTooManyMIMEArguments
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    linkageType: ''
    returnType: bool
    signature: bool haveTooManyMIMEArguments(size_t argCnt, cli_ctx *ctx, bool *heuristicFound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:835,1
    - Dst: messageCreate
      Src: /src/clamav/libclamav/mbox.c:837,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/mbox.c:841,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/mbox.c:844,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/mbox.c:848,1
    - Dst: doContinueMultipleEmptyOptions
      Src: /src/clamav/libclamav/mbox.c:855,1
    - Dst: hitLineFoldCnt
      Src: /src/clamav/libclamav/mbox.c:859,1
    - Dst: boundaryStart
      Src: /src/clamav/libclamav/mbox.c:869,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:870,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:875,1
    - Dst: isspace
      Src: /src/clamav/libclamav/mbox.c:881,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/mbox.c:884,1
    - Dst: strstrip
      Src: /src/clamav/libclamav/mbox.c:885,1
    - Dst: CLI_VERIFY_POINTER_OR_GOTO_DONE
      Src: /src/clamav/libclamav/mbox.c:903,1
    - Dst: haveTooManyEmailHeaders
      Src: /src/clamav/libclamav/mbox.c:906,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:907,1
    - Dst: parseEmailHeader
      Src: /src/clamav/libclamav/mbox.c:910,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:912,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:916,1
    - Dst: FREELIST_REALLOC
      Src: /src/clamav/libclamav/mbox.c:917,1
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/mbox.c:925,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:940,1
    - Dst: isblank
      Src: /src/clamav/libclamav/mbox.c:954,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:960,1
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:961,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:962,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:967,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:968,1
    - Dst: usefulHeader
      Src: /src/clamav/libclamav/mbox.c:978,1
    - Dst: appendReadStruct
      Src: /src/clamav/libclamav/mbox.c:981,1
    - Dst: appendReadStruct
      Src: /src/clamav/libclamav/mbox.c:989,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:995,1
    - Dst: haveTooManyHeaderBytes
      Src: /src/clamav/libclamav/mbox.c:996,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/mbox.c:1001,1
    - Dst: isblank
      Src: /src/clamav/libclamav/mbox.c:1009,1
    - Dst: CLI_VERIFY_POINTER_OR_GOTO_DONE
      Src: /src/clamav/libclamav/mbox.c:1020,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:1022,1
    - Dst: count_quotes
      Src: /src/clamav/libclamav/mbox.c:1024,1
    - Dst: haveTooManyEmailHeaders
      Src: /src/clamav/libclamav/mbox.c:1029,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:1030,1
    - Dst: parseEmailHeader
      Src: /src/clamav/libclamav/mbox.c:1033,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:1035,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:1041,1
    - Dst: FREELIST_REALLOC
      Src: /src/clamav/libclamav/mbox.c:1045,1
    - Dst: isuuencodebegin
      Src: /src/clamav/libclamav/mbox.c:1048,1
    - Dst: uudecodeFile
      Src: /src/clamav/libclamav/mbox.c:1054,1
    - Dst: messageAddStr
      Src: /src/clamav/libclamav/mbox.c:1055,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:1065,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1066,1
    - Dst: newline_in_header
      Src: /src/clamav/libclamav/mbox.c:1078,1
    - Dst: messageAddStr
      Src: /src/clamav/libclamav/mbox.c:1085,1
    - Dst: getline_from_mbox
      Src: /src/clamav/libclamav/mbox.c:1088,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:1093,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:1097,1
    - Dst: freeList
      Src: /src/clamav/libclamav/mbox.c:1099,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:1105,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1106,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:1111,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1116,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 178
    argCount: 7
    argNames:
    - map
    - at
    - rfc821
    - firstLine
    - dir
    - ctx
    - heuristicFound
    argTypes:
    - fmap_t*
    - size_t*
    - table_t*
    - char*
    - char*
    - cli_ctx*
    - bool*
    constantsTouched: []
    func_position:
      end: 1119
      start: 813
    functionDepth: 6
    functionLinenumber: 813
    functionLinenumberEnd: 1119
    functionName: parseEmailFile
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - tableFind
    - FREELIST_REALLOC
    - messageGetMimeType
    - usefulHeader
    - newline_in_header
    - isspace
    - boundaryStart
    - isuuencodebegin
    - strncpy
    - fmap_need_off_once
    - cli_dbgmsg
    - messageCreate
    - CLI_FREE_AND_SET_NULL
    - count_quotes
    - isblank
    - cli_chomp
    - CLI_VERIFY_POINTER_OR_GOTO_DONE
    - appendReadStruct
    - messageFindArgument
    - strstrip
    - haveTooManyHeaderBytes
    - messageDestroy
    - hitLineFoldCnt
    - rfc822comments
    - freeList
    - strcpy
    - messageAddStr
    - CLI_CALLOC_OR_GOTO_DONE
    - cli_strtokbuf
    - uudecodeFile
    - strlen
    - doContinueMultipleEmptyOptions
    - strchr
    - getline_from_mbox
    - haveTooManyEmailHeaders
    - parseEmailHeader
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: message
    signature: 'message *

      parseEmailFile(fmap_t *map, size_t *at, const table_t *rfc821, const char *firstLine,
      const char *dir, cli_ctx *ctx, bool *heuristicFound)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1144,1
    - Dst: messageCreate
      Src: /src/clamav/libclamav/mbox.c:1151,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:1153,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:1157,1
    - Dst: doContinueMultipleEmptyOptions
      Src: /src/clamav/libclamav/mbox.c:1161,1
    - Dst: hitLineFoldCnt
      Src: /src/clamav/libclamav/mbox.c:1165,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1170,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1179,1
    - Dst: isblank
      Src: /src/clamav/libclamav/mbox.c:1194,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:1200,1
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:1201,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:1202,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:1207,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:1208,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:1210,1
    - Dst: usefulHeader
      Src: /src/clamav/libclamav/mbox.c:1220,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/mbox.c:1223,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:1224,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:1226,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/mbox.c:1227,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/mbox.c:1231,1
    - Dst: haveTooManyHeaderBytes
      Src: /src/clamav/libclamav/mbox.c:1242,1
    - Dst: next_is_folded_header
      Src: /src/clamav/libclamav/mbox.c:1247,1
    - Dst: lineUnlink
      Src: /src/clamav/libclamav/mbox.c:1251,1
    - Dst: count_quotes
      Src: /src/clamav/libclamav/mbox.c:1254,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:1257,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:1259,1
    - Dst: haveTooManyEmailHeaders
      Src: /src/clamav/libclamav/mbox.c:1264,1
    - Dst: parseEmailHeader
      Src: /src/clamav/libclamav/mbox.c:1267,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:1274,1
    - Dst: newline_in_header
      Src: /src/clamav/libclamav/mbox.c:1288,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1294,1
    - Dst: messageMoveText
      Src: /src/clamav/libclamav/mbox.c:1295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1305,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:1307,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:1314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1315,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:1319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1320,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1324,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 130
    argCount: 3
    argNames:
    - m
    - rfc821
    - heuristicFound
    argTypes:
    - message*
    - table_t*
    - bool*
    constantsTouched: []
    func_position:
      end: 1327
      start: 1129
    functionDepth: 6
    functionLinenumber: 1129
    functionLinenumberEnd: 1327
    functionName: parseEmailHeaders
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - tableFind
    - usefulHeader
    - newline_in_header
    - lineGetData
    - lineUnlink
    - cli_dbgmsg
    - messageCreate
    - count_quotes
    - cli_max_realloc
    - isblank
    - messageGetBody
    - haveTooManyHeaderBytes
    - messageDestroy
    - hitLineFoldCnt
    - rfc822comments
    - cli_safer_strdup
    - free
    - cli_strlcat
    - cli_strtokbuf
    - strlen
    - next_is_folded_header
    - doContinueMultipleEmptyOptions
    - strchr
    - haveTooManyEmailHeaders
    - parseEmailHeader
    - messageMoveText
    - strncmp
    linkageType: ''
    returnType: message
    signature: 'message *

      parseEmailHeaders(message *m, const table_t *rfc821, bool *heuristicFound)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1342,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:1351,1
    - Dst: rfc2047
      Src: /src/clamav/libclamav/mbox.c:1357,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/mbox.c:1360,1
    - Dst: strtok_r
      Src: /src/clamav/libclamav/mbox.c:1370,1
    - Dst: strtok
      Src: /src/clamav/libclamav/mbox.c:1372,1
    - Dst: strstrip
      Src: /src/clamav/libclamav/mbox.c:1375,1
    - Dst: parseMimeHeader
      Src: /src/clamav/libclamav/mbox.c:1390,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/mbox.c:1394,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - m
    - line
    - rfc821
    - ctx
    - heuristicFound
    argTypes:
    - message*
    - char*
    - table_t*
    - cli_ctx*
    - bool*
    constantsTouched: []
    func_position:
      end: 1397
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1397
    functionName: parseEmailHeader
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - parseMimeHeader
    - strstrip
    - strchr
    - strtok
    - cli_dbgmsg
    - strtok_r
    - CLI_FREE_AND_SET_NULL
    - rfc2047
    - cli_safer_strdup
    linkageType: ''
    returnType: int
    signature: int parseEmailHeader(message *m, const char *line, const table_t *rfc821,
      cli_ctx *ctx, bool *heuristicFound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/mbox.c:1445,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/mbox.c:1446,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:1449,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:1450,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1452,1
    - Dst: xmlReaderForMemory
      Src: /src/clamav/libclamav/mbox.c:1456,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1458,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/mbox.c:1461,1
    - Dst: cli_msxml_parse_document
      Src: /src/clamav/libclamav/mbox.c:1469,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/mbox.c:1471,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/mbox.c:1472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - comment
    - ctx
    - wrkjobj
    - cbdata
    argTypes:
    - char*
    - cli_ctx*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1477
      start: 1438
    functionDepth: 4
    functionLinenumber: 1438
    functionLinenumberEnd: 1477
    functionName: parseMHTMLComment
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - strstr
    - UNUSEDPARAM
    - xmlTextReaderClose
    - xmlReaderForMemory
    - cli_dbgmsg
    - xmlFreeTextReader
    - cli_msxml_parse_document
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseMHTMLComment(const char *comment, cli_ctx *ctx, void
      *wrkjobj, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1498,1
    - Dst: messageToBlob
      Src: /src/clamav/libclamav/mbox.c:1507,1
    - Dst: textToBlob
      Src: /src/clamav/libclamav/mbox.c:1509,1
    - Dst: htmlReadMemory
      Src: /src/clamav/libclamav/mbox.c:1514,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1516,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/mbox.c:1519,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:1523,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/mbox.c:1528,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1531,1
    - Dst: htmlGetMetaEncoding
      Src: /src/clamav/libclamav/mbox.c:1531,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/mbox.c:1532,1
    - Dst: xmlGetDocCompressMode
      Src: /src/clamav/libclamav/mbox.c:1532,1
    - Dst: xmlReaderWalker
      Src: /src/clamav/libclamav/mbox.c:1536,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1538,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/mbox.c:1541,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:1545,1
    - Dst: memset
      Src: /src/clamav/libclamav/mbox.c:1549,1
    - Dst: cli_msxml_parse_document
      Src: /src/clamav/libclamav/mbox.c:1552,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/mbox.c:1576,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/mbox.c:1577,1
    - Dst: xmlFreeDoc
      Src: /src/clamav/libclamav/mbox.c:1578,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:1579,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/mbox.c:1582,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/mbox.c:1583,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1584,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1585,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 3
    argNames:
    - mctx
    - m
    - t
    argTypes:
    - mbox_ctx*
    - message*
    - text*
    constantsTouched: []
    func_position:
      end: 1587
      start: 1485
    functionDepth: 4
    functionLinenumber: 1485
    functionLinenumberEnd: 1587
    functionName: parseRootMHTML
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - xmlFreeDoc
    - memset
    - messageToBlob
    - cli_jsonstr
    - xmlGetDocCompressMode
    - xmlTextReaderClose
    - UNUSEDPARAM
    - cli_jsonobj
    - textToBlob
    - cli_jsonint
    - xmlReaderWalker
    - cli_msxml_parse_document
    - cli_dbgmsg
    - xmlFreeTextReader
    - blobDestroy
    - htmlGetMetaEncoding
    - htmlReadMemory
    - cli_json_parse_error
    linkageType: ''
    returnType: mbox_status
    signature: mbox_status parseRootMHTML(mbox_ctx *mctx, message *m, text *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1612,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1623,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1631,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:1638,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1649,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:1651,1
    - Dst: messageGetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:1652,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/mbox.c:1655,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1656,1
    - Dst: getMimeTypeStr
      Src: /src/clamav/libclamav/mbox.c:1656,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1657,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1658,1
    - Dst: getEncTypeStr
      Src: /src/clamav/libclamav/mbox.c:1658,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:1658,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1659,1
    - Dst: messageGetDispositionType
      Src: /src/clamav/libclamav/mbox.c:1659,1
    - Dst: messageHasFilename
      Src: /src/clamav/libclamav/mbox.c:1660,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1662,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:1663,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1665,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:1670,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1676,1
    - Dst: messageSetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:1678,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:1680,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1687,1
    - Dst: messageSetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:1689,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1691,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1695,1
    - Dst: textAddMessage
      Src: /src/clamav/libclamav/mbox.c:1696,1
    - Dst: checkURLs
      Src: /src/clamav/libclamav/mbox.c:1714,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1724,1
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/mbox.c:1725,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:1728,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1731,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/mbox.c:1742,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1746,1
    - Dst: messageSetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:1748,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:1754,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1757,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:1758,1
    - Dst: boundaryStart
      Src: /src/clamav/libclamav/mbox.c:1765,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:1765,1
    - Dst: binhexBegin
      Src: /src/clamav/libclamav/mbox.c:1772,1
    - Dst: exportBinhexMessage
      Src: /src/clamav/libclamav/mbox.c:1773,1
    - Dst: encodingLine
      Src: /src/clamav/libclamav/mbox.c:1780,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1790,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:1791,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:1792,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1799,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:1801,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:1820,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/mbox.c:1841,1
    - Dst: messageCreate
      Src: /src/clamav/libclamav/mbox.c:1846,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:1854,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1856,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:1865,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:1865,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1869,1
    - Dst: binhexBegin
      Src: /src/clamav/libclamav/mbox.c:1878,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:1879,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1905,1
    - Dst: parseEmailHeader
      Src: /src/clamav/libclamav/mbox.c:1914,1
    - Dst: isspace
      Src: /src/clamav/libclamav/mbox.c:1920,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/mbox.c:1928,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:1956,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:1957,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:1958,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/mbox.c:1969,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1970,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:1973,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:1974,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1975,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1979,1
    - Dst: isspace
      Src: /src/clamav/libclamav/mbox.c:1984,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:1993,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/mbox.c:1995,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:2005,1
    - Dst: messageSetMimeType
      Src: /src/clamav/libclamav/mbox.c:2006,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2012,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2013,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:2022,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/mbox.c:2024,1
    - Dst: next_is_folded_header
      Src: /src/clamav/libclamav/mbox.c:2035,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2041,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2050,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2056,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2056,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/mbox.c:2057,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/mbox.c:2063,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2068,1
    - Dst: parseEmailHeader
      Src: /src/clamav/libclamav/mbox.c:2071,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2072,1
    - Dst: boundaryEnd
      Src: /src/clamav/libclamav/mbox.c:2076,1
    - Dst: boundaryStart
      Src: /src/clamav/libclamav/mbox.c:2087,1
    - Dst: messageAddLine
      Src: /src/clamav/libclamav/mbox.c:2091,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2097,1
    - Dst: do_multipart
      Src: /src/clamav/libclamav/mbox.c:2115,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2122,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2143,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2150,1
    - Dst: haveTooManyMIMEPartsPerMessage
      Src: /src/clamav/libclamav/mbox.c:2152,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2156,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2158,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2171,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2180,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2189,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2193,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2199,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2201,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/mbox.c:2205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2222,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:2230,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2232,1
    - Dst: getTextPart
      Src: /src/clamav/libclamav/mbox.c:2240,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:2243,1
    - Dst: textAddMessage
      Src: /src/clamav/libclamav/mbox.c:2245,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:2254,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2262,1
    - Dst: parseRootMHTML
      Src: /src/clamav/libclamav/mbox.c:2266,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:2268,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2301,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2333,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2337,1
    - Dst: do_multipart
      Src: /src/clamav/libclamav/mbox.c:2339,1
    - Dst: getTextPart
      Src: /src/clamav/libclamav/mbox.c:2365,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:2368,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2372,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2378,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/mbox.c:2381,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2382,1
    - Dst: fileblobSetFilename
      Src: /src/clamav/libclamav/mbox.c:2383,1
    - Dst: fileblobSetCTX
      Src: /src/clamav/libclamav/mbox.c:2385,1
    - Dst: textToFileblob
      Src: /src/clamav/libclamav/mbox.c:2386,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/mbox.c:2388,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/mbox.c:2391,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2397,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2399,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:2411,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2417,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:2421,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:2422,1
    - Dst: parseEmailHeaders
      Src: /src/clamav/libclamav/mbox.c:2423,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2425,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:2427,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2430,1
    - Dst: messageReset
      Src: /src/clamav/libclamav/mbox.c:2433,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:2434,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:2435,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2437,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:2442,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:2446,1
    - Dst: rfc1341
      Src: /src/clamav/libclamav/mbox.c:2449,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbox.c:2452,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:2454,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbox.c:2456,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbox.c:2458,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2461,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2466,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2468,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2477,1
    - Dst: messageToFileblob
      Src: /src/clamav/libclamav/mbox.c:2492,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2495,1
    - Dst: fileblobScanAndDestroy
      Src: /src/clamav/libclamav/mbox.c:2496,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2500,1
    - Dst: messageReset
      Src: /src/clamav/libclamav/mbox.c:2503,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbox.c:2517,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2520,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2522,1
    - Dst: isBounceStart
      Src: /src/clamav/libclamav/mbox.c:2545,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2545,1
    - Dst: isBounceStart
      Src: /src/clamav/libclamav/mbox.c:2550,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2550,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2570,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/mbox.c:2571,1
    - Dst: CLI_STRCASESTR
      Src: /src/clamav/libclamav/mbox.c:2576,1
    - Dst: CLI_STRCASESTR
      Src: /src/clamav/libclamav/mbox.c:2586,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2593,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2612,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/mbox.c:2613,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:2614,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:2615,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:2616,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2621,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/mbox.c:2625,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2627,1
    - Dst: fileblobSetFilename
      Src: /src/clamav/libclamav/mbox.c:2628,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/mbox.c:2629,1
    - Dst: fileblobSetCTX
      Src: /src/clamav/libclamav/mbox.c:2630,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2643,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/mbox.c:2644,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2644,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/mbox.c:2646,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2653,1
    - Dst: isBounceStart
      Src: /src/clamav/libclamav/mbox.c:2654,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2655,1
    - Dst: fileblobInfected
      Src: /src/clamav/libclamav/mbox.c:2660,1
    - Dst: fileblobScanAndDestroy
      Src: /src/clamav/libclamav/mbox.c:2662,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/mbox.c:2669,1
    - Dst: encodingLine
      Src: /src/clamav/libclamav/mbox.c:2684,1
    - Dst: bounceBegin
      Src: /src/clamav/libclamav/mbox.c:2685,1
    - Dst: exportBounceMessage
      Src: /src/clamav/libclamav/mbox.c:2686,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:2690,1
    - Dst: encodingLine
      Src: /src/clamav/libclamav/mbox.c:2697,1
    - Dst: encodingLine
      Src: /src/clamav/libclamav/mbox.c:2698,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/mbox.c:2706,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2707,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:2708,1
    - Dst: fileblobSetFilename
      Src: /src/clamav/libclamav/mbox.c:2709,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/mbox.c:2710,1
    - Dst: fileblobSetCTX
      Src: /src/clamav/libclamav/mbox.c:2714,1
    - Dst: fileblobScanAndDestroy
      Src: /src/clamav/libclamav/mbox.c:2715,1
    - Dst: textToFileblob
      Src: /src/clamav/libclamav/mbox.c:2715,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2729,1
    - Dst: saveTextPart
      Src: /src/clamav/libclamav/mbox.c:2731,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2735,1
    - Dst: messageReset
      Src: /src/clamav/libclamav/mbox.c:2738,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:2746,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2753,1
    CyclomaticComplexity: 251
    EdgeCount: 251
    ICount: 605
    argCount: 4
    argNames:
    - messageIn
    - textIn
    - mctx
    - recursion_level
    argTypes:
    - message*
    - text*
    - mbox_ctx*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 2756
      start: 1599
    functionDepth: 7
    functionLinenumber: 1599
    functionLinenumberEnd: 2756
    functionName: parseEmailBody
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - tableFind
    - saveTextPart
    - messageAddArgument
    - bounceBegin
    - cli_warnmsg
    - haveTooManyMIMEPartsPerMessage
    - strcasecmp
    - messageGetEncoding
    - parseEmailHeaders
    - messageGetMimeType
    - messageGetMimeSubtype
    - textToFileblob
    - getMimeTypeStr
    - isspace
    - strncasecmp
    - boundaryStart
    - lineGetData
    - CLI_STRCASESTR
    - messageSetMimeSubtype
    - getTextPart
    - strstr
    - parseEmailBody
    - fileblobSetFilename
    - boundaryEnd
    - cli_jsonobj
    - checkURLs
    - binhexBegin
    - cli_dbgmsg
    - textAddMessage
    - messageCreate
    - cli_max_realloc
    - messageGetDispositionType
    - fileblobScanAndDestroy
    - messageGetBody
    - do_multipart
    - cli_chomp
    - fileblobInfected
    - messageFindArgument
    - cli_jsonstr
    - rfc1341
    - messageSetEncoding
    - messageSetMimeType
    - messageAddLine
    - textDestroy
    - encodingLine
    - strncmp
    - rfc822comments
    - fileblobDestroy
    - messageToFileblob
    - free
    - cli_safer_strdup
    - cli_strlcat
    - messageHasFilename
    - fileblobCreate
    - strlen
    - messageReset
    - fileblobAddData
    - messageSetCTX
    - next_is_folded_header
    - isBounceStart
    - exportBounceMessage
    - parseRootMHTML
    - exportBinhexMessage
    - fileblobSetCTX
    - parseEmailHeader
    - getEncTypeStr
    - messageDestroy
    linkageType: ''
    returnType: mbox_status
    signature: mbox_status parseEmailBody(message *messageIn, text *textIn, mbox_ctx
      *mctx, unsigned int recursion_level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/libclamav/mbox.c:2777,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2781,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2784,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/mbox.c:2790,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2796,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:2800,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2802,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2806,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:2808,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:2810,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2817,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2819,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:2844,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:2844,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/mbox.c:2854,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/mbox.c:2862,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:2871,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2874,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:2877,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2880,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 65
    argCount: 2
    argNames:
    - line
    - boundary
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2883
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2883
    functionName: boundaryStart
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - cli_chomp
    - strcmp
    - strstr
    - strlen
    - strcasecmp
    - strdup
    - strchr
    - cli_dbgmsg
    - rfc822comments
    - free
    linkageType: ''
    returnType: int
    signature: int boundaryStart(const char *line, const char *boundary)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/libclamav/mbox.c:2899,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2905,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2907,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2916,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2922,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2927,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/mbox.c:2928,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2930,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:2938,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2940,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2948,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2956,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:2962,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 2
    argNames:
    - line
    - boundary
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2965
      start: 2890
    functionDepth: 1
    functionLinenumber: 2890
    functionLinenumberEnd: 2965
    functionName: boundaryEnd
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - strlen
    - strdup
    - free
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int boundaryEnd(const char *line, const char *boundary)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tableCreate
      Src: /src/clamav/libclamav/mbox.c:2981,1
    - Dst: tableInsert
      Src: /src/clamav/libclamav/mbox.c:2987,1
    - Dst: tableDestroy
      Src: /src/clamav/libclamav/mbox.c:2988,1
    - Dst: tableCreate
      Src: /src/clamav/libclamav/mbox.c:2995,1
    - Dst: tableDestroy
      Src: /src/clamav/libclamav/mbox.c:2997,1
    - Dst: tableInsert
      Src: /src/clamav/libclamav/mbox.c:3003,1
    - Dst: tableDestroy
      Src: /src/clamav/libclamav/mbox.c:3004,1
    - Dst: tableDestroy
      Src: /src/clamav/libclamav/mbox.c:3005,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - rfc821Table
    - subtypeTable
    argTypes:
    - table_t**
    - table_t**
    constantsTouched: []
    func_position:
      end: 3014
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 3014
    functionName: initialiseTables
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - tableInsert
    - tableCreate
    - tableDestroy
    linkageType: ''
    returnType: int
    signature: int initialiseTables(table_t **rfc821Table, table_t **subtypeTable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:3031,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:3032,1
    - Dst: messageGetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:3032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - messages
    - size
    argTypes:
    - message*[]
    - size_t
    constantsTouched: []
    func_position:
      end: 3038
      start: 3024
    functionDepth: 1
    functionLinenumber: 3024
    functionLinenumberEnd: 3038
    functionName: getTextPart
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - messageGetMimeSubtype
    - strcasecmp
    - messageGetMimeType
    linkageType: ''
    returnType: int
    signature: int getTextPart(message *const messages[], size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3063,1
    - Dst: isgraph
      Src: /src/clamav/libclamav/mbox.c:3072,1
    - Dst: isspace
      Src: /src/clamav/libclamav/mbox.c:3079,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3082
      start: 3054
    functionDepth: 1
    functionLinenumber: 3054
    functionLinenumberEnd: 3082
    functionName: strip
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 4
    functionsReached:
    - strlen
    - isgraph
    - isspace
    linkageType: ''
    returnType: size_t
    signature: size_t strip(char *buf, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strip
      Src: /src/clamav/libclamav/mbox.c:3094,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3095
      start: 3088
    functionDepth: 2
    functionLinenumber: 3088
    functionLinenumberEnd: 3095
    functionName: strstrip
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - strlen
    - strip
    linkageType: ''
    returnType: size_t
    signature: size_t strstrip(char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3110,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:3112,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:3114,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3115,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:3117,1
    - Dst: rfc822comments
      Src: /src/clamav/libclamav/mbox.c:3120,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3148,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:3149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3156,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/mbox.c:3160,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3160,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3162,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3162,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3164,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3172,1
    - Dst: messageSetMimeType
      Src: /src/clamav/libclamav/mbox.c:3173,1
    - Dst: messageSetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:3174,1
    - Dst: isspace
      Src: /src/clamav/libclamav/mbox.c:3183,1
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:3194,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3206,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3207,1
    - Dst: strtok_r
      Src: /src/clamav/libclamav/mbox.c:3218,1
    - Dst: strtok
      Src: /src/clamav/libclamav/mbox.c:3220,1
    - Dst: strstrip
      Src: /src/clamav/libclamav/mbox.c:3228,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:3231,1
    - Dst: messageSetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:3232,1
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:3233,1
    - Dst: messageSetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:3235,1
    - Dst: isspace
      Src: /src/clamav/libclamav/mbox.c:3239,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3246,1
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:3258,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3259,1
    - Dst: haveTooManyMIMEArguments
      Src: /src/clamav/libclamav/mbox.c:3262,1
    - Dst: messageAddArguments
      Src: /src/clamav/libclamav/mbox.c:3265,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/mbox.c:3270,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/mbox.c:3273,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3273,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3275,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3275,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3277,1
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:3280,1
    - Dst: messageSetDispositionType
      Src: /src/clamav/libclamav/mbox.c:3282,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/mbox.c:3283,1
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:3283,1
    - Dst: messageHasFilename
      Src: /src/clamav/libclamav/mbox.c:3285,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/mbox.c:3293,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3296,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3298,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 110
    argCount: 6
    argNames:
    - m
    - cmd
    - rfc821Table
    - arg
    - ctx
    - heuristicFound
    argTypes:
    - message*
    - char*
    - table_t*
    - char*
    - cli_ctx*
    - bool*
    constantsTouched: []
    func_position:
      end: 3301
      start: 3100
    functionDepth: 6
    functionLinenumber: 3100
    functionLinenumberEnd: 3301
    functionName: parseMimeHeader
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - tableFind
    - messageAddArgument
    - messageAddArguments
    - strtok
    - isspace
    - messageSetDispositionType
    - messageSetMimeSubtype
    - cli_dbgmsg
    - strtok_r
    - strstrip
    - haveTooManyMIMEArguments
    - messageSetEncoding
    - messageSetMimeType
    - cli_max_malloc
    - rfc822comments
    - free
    - cli_strtokbuf
    - messageHasFilename
    - strlen
    - strchr
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int parseMimeHeader(message *m, const char *cmd, const table_t *rfc821Table,
      const char *arg, cli_ctx *ctx, bool *heuristicFound)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/mbox.c:3311,1
    - Dst: messageToFileblob
      Src: /src/clamav/libclamav/mbox.c:3312,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3316,1
    - Dst: fileblobScanAndDestroy
      Src: /src/clamav/libclamav/mbox.c:3319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - mctx
    - m
    - destroy_text
    argTypes:
    - mbox_ctx*
    - message*
    - int
    constantsTouched: []
    func_position:
      end: 3322
      start: 3306
    functionDepth: 1
    functionLinenumber: 3306
    functionLinenumberEnd: 3322
    functionName: saveTextPart
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - fileblobScanAndDestroy
    - cli_dbgmsg
    - messageToFileblob
    - messageAddArgument
    linkageType: ''
    returnType: int
    signature: int saveTextPart(mbox_ctx *mctx, message *m, int destroy_text)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3340,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:3344,1
    - Dst: isspace
      Src: /src/clamav/libclamav/mbox.c:3348,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/mbox.c:3353,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3353,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3355,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3355,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3363,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3402,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3405
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3405
    functionName: rfc822comments
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 5
    functionsReached:
    - strlen
    - strchr
    - cli_max_malloc
    - cli_dbgmsg
    - isspace
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      rfc822comments(const char *in, char *out)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:3417,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:3417,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/mbox.c:3418,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3420,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/mbox.c:3421,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3421,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3424,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3424,1
    - Dst: tolower
      Src: /src/clamav/libclamav/mbox.c:3450,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbox.c:3453,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3454,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/mbox.c:3464,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3466,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:3470,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3472,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:3476,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3478,1
    - Dst: messageCreate
      Src: /src/clamav/libclamav/mbox.c:3484,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3486,1
    - Dst: messageAddStr
      Src: /src/clamav/libclamav/mbox.c:3489,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3491,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/mbox.c:3496,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/mbox.c:3499,1
    - Dst: messageToBlob
      Src: /src/clamav/libclamav/mbox.c:3502,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:3504,1
    - Dst: blobGetDataSize
      Src: /src/clamav/libclamav/mbox.c:3507,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3508,1
    - Dst: blobGetData
      Src: /src/clamav/libclamav/mbox.c:3509,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/mbox.c:3510,1
    - Dst: blobGetData
      Src: /src/clamav/libclamav/mbox.c:3510,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:3511,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:3512,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3523,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 87
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3525
      start: 3411
    functionDepth: 1
    functionLinenumber: 3411
    functionLinenumberEnd: 3525
    functionName: rfc2047
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - blobGetDataSize
    - tolower
    - messageToBlob
    - strstr
    - strlen
    - cli_errmsg
    - cli_warnmsg
    - messageAddStr
    - messageSetEncoding
    - cli_max_malloc
    - cli_dbgmsg
    - blobGetData
    - messageCreate
    - free
    - blobDestroy
    - memcpy
    - cli_safer_strdup
    - messageDestroy
    linkageType: ''
    returnType: char
    signature: 'char *

      rfc2047(const char *in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3541,1
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/mbox.c:3545,1
    - Dst: cl_engine_get_str
      Src: /src/clamav/libclamav/mbox.c:3551,1
    - Dst: cli_gettmpdir
      Src: /src/clamav/libclamav/mbox.c:3554,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/mbox.c:3557,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/mbox.c:3559,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3560,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3561,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/mbox.c:3566,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3568,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/mbox.c:3569,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3570,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mbox.c:3574,1
    - Dst: ACCESSPERMS
      Src: /src/clamav/libclamav/mbox.c:3576,1
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/mbox.c:3584,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3586,1
    - Dst: messageGetFilename
      Src: /src/clamav/libclamav/mbox.c:3590,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/mbox.c:3592,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3592,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3592,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/mbox.c:3594,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/mbox.c:3595,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3596,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3600,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3601,1
    - Dst: atoi
      Src: /src/clamav/libclamav/mbox.c:3604,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/mbox.c:3605,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:3605,1
    - Dst: cli_str2hex
      Src: /src/clamav/libclamav/mbox.c:3606,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3609,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3610,1
    - Dst: messageSavePartial
      Src: /src/clamav/libclamav/mbox.c:3614,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3615,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3616,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3617,1
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/mbox.c:3621,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3622,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3627,1
    - Dst: opendir
      Src: /src/clamav/libclamav/mbox.c:3632,1
    - Dst: sanitiseName
      Src: /src/clamav/libclamav/mbox.c:3637,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/mbox.c:3639,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3641,1
    - Dst: fopen
      Src: /src/clamav/libclamav/mbox.c:3643,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3645,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3646,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3647,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3648,1
    - Dst: closedir
      Src: /src/clamav/libclamav/mbox.c:3649,1
    - Dst: time
      Src: /src/clamav/libclamav/mbox.c:3653,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/mbox.c:3658,1
    - Dst: readdir
      Src: /src/clamav/libclamav/mbox.c:3660,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/mbox.c:3671,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/mbox.c:3672,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/mbox.c:3674,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:3676,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/mbox.c:3679,1
    - Dst: open
      Src: /src/clamav/libclamav/mbox.c:3683,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/mbox.c:3686,1
    - Dst: close
      Src: /src/clamav/libclamav/mbox.c:3687,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/mbox.c:3692,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/mbox.c:3693,1
    - Dst: fclose
      Src: /src/clamav/libclamav/mbox.c:3694,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3695,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3696,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3697,1
    - Dst: closedir
      Src: /src/clamav/libclamav/mbox.c:3698,1
    - Dst: close
      Src: /src/clamav/libclamav/mbox.c:3699,1
    - Dst: close
      Src: /src/clamav/libclamav/mbox.c:3704,1
    - Dst: fopen
      Src: /src/clamav/libclamav/mbox.c:3708,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3710,1
    - Dst: fclose
      Src: /src/clamav/libclamav/mbox.c:3711,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/mbox.c:3712,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3713,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3714,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3715,1
    - Dst: closedir
      Src: /src/clamav/libclamav/mbox.c:3716,1
    - Dst: fgets
      Src: /src/clamav/libclamav/mbox.c:3720,1
    - Dst: putc
      Src: /src/clamav/libclamav/mbox.c:3730,1
    - Dst: fputs
      Src: /src/clamav/libclamav/mbox.c:3732,1
    - Dst: fclose
      Src: /src/clamav/libclamav/mbox.c:3733,1
    - Dst: fclose
      Src: /src/clamav/libclamav/mbox.c:3734,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/mbox.c:3735,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3736,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3737,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3738,1
    - Dst: closedir
      Src: /src/clamav/libclamav/mbox.c:3739,1
    - Dst: fclose
      Src: /src/clamav/libclamav/mbox.c:3743,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/mbox.c:3747,1
    - Dst: fclose
      Src: /src/clamav/libclamav/mbox.c:3748,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/mbox.c:3749,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3750,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3751,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3752,1
    - Dst: closedir
      Src: /src/clamav/libclamav/mbox.c:3753,1
    - Dst: rewinddir
      Src: /src/clamav/libclamav/mbox.c:3759,1
    - Dst: closedir
      Src: /src/clamav/libclamav/mbox.c:3761,1
    - Dst: fclose
      Src: /src/clamav/libclamav/mbox.c:3762,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3765,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3766,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3767,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 166
    argCount: 2
    argNames:
    - mctx
    - m
    argTypes:
    - mbox_ctx*
    - message*
    constantsTouched: []
    func_position:
      end: 3770
      start: 3530
    functionDepth: 3
    functionLinenumber: 3530
    functionLinenumberEnd: 3770
    functionName: rfc1341
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - snprintf
    - messageAddArgument
    - cli_warnmsg
    - cl_engine_get_str
    - cli_gettmpdir
    - messageSavePartial
    - readdir
    - sprintf
    - strcmp
    - cli_str2hex
    - cli_dbgmsg
    - time
    - cl_hash_data
    - sanitiseName
    - closedir
    - close
    - messageFindArgument
    - cli_unlink
    - open
    - FSTAT
    - cli_max_malloc
    - fclose
    - free
    - fgets
    - messageGetFilename
    - fputs
    - mkdir
    - strlen
    - cli_strerror
    - CLAMSTAT
    - strchr
    - opendir
    - ACCESSPERMS
    - putc
    - rewinddir
    - cli_errmsg
    - atoi
    - fopen
    linkageType: ''
    returnType: int
    signature: int rfc1341(mbox_ctx *mctx, message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:3776,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/libclamav/mbox.c:3777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - hrefs
    argTypes:
    - blob*
    - tag_arguments_t*
    constantsTouched: []
    func_position:
      end: 3778
      start: 3772
    functionDepth: 1
    functionLinenumber: 3772
    functionLinenumberEnd: 3778
    functionName: hrefs_done
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - blobDestroy
    - html_tag_arg_free
    linkageType: ''
    returnType: void
    signature: void hrefs_done(blob *b, tag_arguments_t *hrefs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/mbox.c:3802,1
    - Dst: html_tag_arg_add
      Src: /src/clamav/libclamav/mbox.c:3804,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 3
    argNames:
    - mem
    - len
    - hrefs
    argTypes:
    - unsigned char*
    - size_t
    - tag_arguments_t*
    constantsTouched: []
    func_position:
      end: 3808
      start: 3781
    functionDepth: 2
    functionLinenumber: 3781
    functionLinenumberEnd: 3808
    functionName: extract_text_urls
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - memcpy
    - html_tag_arg_add
    linkageType: ''
    returnType: void
    signature: void extract_text_urls(const unsigned char *mem, size_t len, tag_arguments_t
      *hrefs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageToBlob
      Src: /src/clamav/libclamav/mbox.c:3819,1
    - Dst: blobGetDataSize
      Src: /src/clamav/libclamav/mbox.c:3825,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:3828,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3834,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:3835,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3843,1
    - Dst: blobGetData
      Src: /src/clamav/libclamav/mbox.c:3844,1
    - Dst: html_normalise_mem
      Src: /src/clamav/libclamav/mbox.c:3845,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/mbox.c:3846,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3849,1
    - Dst: extract_text_urls
      Src: /src/clamav/libclamav/mbox.c:3851,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - m
    - hrefs
    argTypes:
    - cli_ctx*
    - message*
    - tag_arguments_t*
    constantsTouched: []
    func_position:
      end: 3856
      start: 3815
    functionDepth: 3
    functionLinenumber: 3815
    functionLinenumberEnd: 3856
    functionName: getHrefs
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - blobGetDataSize
    - messageToBlob
    - html_normalise_mem
    - extract_text_urls
    - cli_dbgmsg
    - blobGetData
    - blobDestroy
    linkageType: ''
    returnType: blob
    signature: 'blob *

      getHrefs(cli_ctx *ctx, message *m, tag_arguments_t *hrefs)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/mbox.c:3868,1
    - Dst: getHrefs
      Src: /src/clamav/libclamav/mbox.c:3886,1
    - Dst: phishingScan
      Src: /src/clamav/libclamav/mbox.c:3889,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3897,1
    - Dst: hrefs_done
      Src: /src/clamav/libclamav/mbox.c:3901,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - mainMessage
    - mctx
    - rc
    - is_html
    argTypes:
    - message*
    - mbox_ctx*
    - mbox_status*
    - int
    constantsTouched: []
    func_position:
      end: 3902
      start: 3862
    functionDepth: 4
    functionLinenumber: 3862
    functionLinenumberEnd: 3902
    functionName: checkURLs
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - hrefs_done
    - phishingScan
    - getHrefs
    linkageType: ''
    returnType: void
    signature: void checkURLs(message *mainMessage, mbox_ctx *mctx, mbox_status *rc,
      int is_html)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/clamav/libclamav/mbox.c:3908,1
    - Dst: print_trace
      Src: /src/clamav/libclamav/mbox.c:3909,1
    - Dst: exit
      Src: /src/clamav/libclamav/mbox.c:3910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3911
      start: 3905
    functionDepth: 1
    functionLinenumber: 3905
    functionLinenumberEnd: 3911
    functionName: sigsegv
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 0
    functionsReached:
    - exit
    - signal
    - print_trace
    linkageType: ''
    returnType: void
    signature: void sigsegv(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/clamav/libclamav/mbox.c:3920,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3922,1
    - Dst: backtrace
      Src: /src/clamav/libclamav/mbox.c:3924,1
    - Dst: backtrace_symbols
      Src: /src/clamav/libclamav/mbox.c:3925,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3927,1
    - Dst: syslog
      Src: /src/clamav/libclamav/mbox.c:3929,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3932,1
    - Dst: syslog
      Src: /src/clamav/libclamav/mbox.c:3934,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3938,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:3942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - use_syslog
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 3943
      start: 3913
    functionDepth: 1
    functionLinenumber: 3913
    functionLinenumberEnd: 3943
    functionName: print_trace
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - getpid
    - syslog
    - backtrace
    - free
    - cli_errmsg
    - backtrace_symbols
    linkageType: ''
    returnType: void
    signature: void print_trace(int use_syslog)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:3956,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:3958,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:3960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - commandNumber
    - cmd
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 3965
      start: 3947
    functionDepth: 0
    functionLinenumber: 3947
    functionLinenumberEnd: 3965
    functionName: usefulHeader
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: bool
    signature: bool usefulHeader(int commandNumber, const char *cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/mbox.c:3977,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:3983,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:3987,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - buffer
    - buffer_len
    - map
    - at
    argTypes:
    - char*
    - size_t
    - fmap_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 4031
      start: 3970
    functionDepth: 1
    functionLinenumber: 3970
    functionLinenumberEnd: 4031
    functionName: getline_from_mbox
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - cli_dbgmsg
    - fmap_need_off_once
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      getline_from_mbox(char *buffer, size_t buffer_len, fmap_t *map, size_t *at)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/mbox.c:4050,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/mbox.c:4054,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/mbox.c:4055,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/mbox.c:4063,1
    - Dst: cli_compare_ftm_file
      Src: /src/clamav/libclamav/mbox.c:4073,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - mctx
    - line
    argTypes:
    - mbox_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 4074
      start: 4036
    functionDepth: 1
    functionLinenumber: 4036
    functionLinenumberEnd: 4074
    functionName: isBounceStart
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - strlen
    - memcmp
    - cli_compare_ftm_file
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool isBounceStart(mbox_ctx *mctx, const char *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:4086,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/mbox.c:4087,1
    - Dst: messageToFileblob
      Src: /src/clamav/libclamav/mbox.c:4089,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4092,1
    - Dst: fileblobGetFilename
      Src: /src/clamav/libclamav/mbox.c:4093,1
    - Dst: fileblobScanAndDestroy
      Src: /src/clamav/libclamav/mbox.c:4095,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:4099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mctx
    - m
    argTypes:
    - mbox_ctx*
    - message*
    constantsTouched: []
    func_position:
      end: 4102
      start: 4080
    functionDepth: 1
    functionLinenumber: 4080
    functionLinenumberEnd: 4102
    functionName: exportBinhexMessage
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - messageSetEncoding
    - messageGetEncoding
    - cli_dbgmsg
    - fileblobGetFilename
    - fileblobScanAndDestroy
    - messageToFileblob
    - cli_errmsg
    linkageType: ''
    returnType: bool
    signature: bool exportBinhexMessage(mbox_ctx *mctx, message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strtokbuf
      Src: /src/clamav/libclamav/mbox.c:4139,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:4142,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:4144,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:4145,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mbox.c:4151,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:4155,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:4157,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/mbox.c:4163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4164,1
    - Dst: fileblobSetFilename
      Src: /src/clamav/libclamav/mbox.c:4165,1
    - Dst: fileblobSetCTX
      Src: /src/clamav/libclamav/mbox.c:4166,1
    - Dst: textToFileblob
      Src: /src/clamav/libclamav/mbox.c:4167,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4168,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/mbox.c:4169,1
    - Dst: fileblobScanAndDestroy
      Src: /src/clamav/libclamav/mbox.c:4171,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4174,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 2
    argNames:
    - mctx
    - start
    argTypes:
    - mbox_ctx*
    - text*
    constantsTouched: []
    func_position:
      end: 4177
      start: 4107
    functionDepth: 1
    functionLinenumber: 4107
    functionLinenumberEnd: 4177
    functionName: exportBounceMessage
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - tableFind
    - cli_strtokbuf
    - fileblobCreate
    - strstr
    - fileblobSetFilename
    - strcasecmp
    - cli_dbgmsg
    - textToFileblob
    - fileblobSetCTX
    - fileblobDestroy
    - fileblobScanAndDestroy
    linkageType: ''
    returnType: int
    signature: int exportBounceMessage(mbox_ctx *mctx, text *start)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mimetype
    argTypes:
    - mime_type
    constantsTouched: []
    func_position:
      end: 4193
      start: 4182
    functionDepth: 0
    functionLinenumber: 4182
    functionLinenumberEnd: 4193
    functionName: getMimeTypeStr
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getMimeTypeStr(mime_type mimetype)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - enctype
    argTypes:
    - encoding_type
    constantsTouched: []
    func_position:
      end: 4209
      start: 4198
    functionDepth: 0
    functionLinenumber: 4198
    functionLinenumberEnd: 4209
    functionName: getEncTypeStr
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *getEncTypeStr(encoding_type enctype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/mbox.c:4228,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mbox.c:4230,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/mbox.c:4231,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4232,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/mbox.c:4234,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4247,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:4248,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4251,1
    - Dst: getMimeTypeStr
      Src: /src/clamav/libclamav/mbox.c:4251,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:4251,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4252,1
    - Dst: messageGetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:4252,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4253,1
    - Dst: getEncTypeStr
      Src: /src/clamav/libclamav/mbox.c:4253,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:4253,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4254,1
    - Dst: messageGetDispositionType
      Src: /src/clamav/libclamav/mbox.c:4254,1
    - Dst: messageHasFilename
      Src: /src/clamav/libclamav/mbox.c:4255,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4257,1
    - Dst: free
      Src: /src/clamav/libclamav/mbox.c:4258,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4260,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:4264,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4271,1
    - Dst: binhexBegin
      Src: /src/clamav/libclamav/mbox.c:4273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4274,1
    - Dst: exportBinhexMessage
      Src: /src/clamav/libclamav/mbox.c:4276,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4280,1
    - Dst: binhexBegin
      Src: /src/clamav/libclamav/mbox.c:4283,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4284,1
    - Dst: exportBinhexMessage
      Src: /src/clamav/libclamav/mbox.c:4285,1
    - Dst: messageReset
      Src: /src/clamav/libclamav/mbox.c:4287,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/mbox.c:4291,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4295,1
    - Dst: messageGetDispositionType
      Src: /src/clamav/libclamav/mbox.c:4298,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4299,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:4301,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/mbox.c:4303,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4307,1
    - Dst: messageGetMimeSubtype
      Src: /src/clamav/libclamav/mbox.c:4309,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4310,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/mbox.c:4311,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:4312,1
    - Dst: messageHasFilename
      Src: /src/clamav/libclamav/mbox.c:4318,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4322,1
    - Dst: checkURLs
      Src: /src/clamav/libclamav/mbox.c:4326,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/mbox.c:4327,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4332,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4336,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:4337,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/mbox.c:4339,1
    - Dst: encodingLine
      Src: /src/clamav/libclamav/mbox.c:4343,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4354,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4355,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4361,1
    - Dst: saveTextPart
      Src: /src/clamav/libclamav/mbox.c:4370,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4372,1
    - Dst: parseEmailHeaders
      Src: /src/clamav/libclamav/mbox.c:4379,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4389,1
    - Dst: messageSetCTX
      Src: /src/clamav/libclamav/mbox.c:4394,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:4395,1
    - Dst: messageContainsVirus
      Src: /src/clamav/libclamav/mbox.c:4396,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4398,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4410,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:4418,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4419,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4420,1
    - Dst: parseEmailBody
      Src: /src/clamav/libclamav/mbox.c:4423,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4434,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/mbox.c:4435,1
    - Dst: messageToFileblob
      Src: /src/clamav/libclamav/mbox.c:4440,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/mbox.c:4451,1
    - Dst: json_object_array_length
      Src: /src/clamav/libclamav/mbox.c:4452,1
    - Dst: fileblobSetCTX
      Src: /src/clamav/libclamav/mbox.c:4458,1
    - Dst: fileblobScanAndDestroy
      Src: /src/clamav/libclamav/mbox.c:4459,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/mbox.c:4472,1
    - Dst: json_object_array_length
      Src: /src/clamav/libclamav/mbox.c:4473,1
    - Dst: json_object_array_get_idx
      Src: /src/clamav/libclamav/mbox.c:4474,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/mbox.c:4478,1
    - Dst: json_object_get_string
      Src: /src/clamav/libclamav/mbox.c:4480,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/mbox.c:4483,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/mbox.c:4484,1
    - Dst: messageContainsVirus
      Src: /src/clamav/libclamav/mbox.c:4487,1
    - Dst: messageDestroy
      Src: /src/clamav/libclamav/mbox.c:4491,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 176
    argCount: 8
    argNames:
    - mainMessage
    - messages
    - i
    - rc
    - mctx
    - messageIn
    - tptr
    - recursion_level
    argTypes:
    - message*
    - message**
    - int
    - mbox_status*
    - mbox_ctx*
    - message*
    - text**
    - unsigned int
    constantsTouched: []
    func_position:
      end: 4495
      start: 4214
    functionDepth: 8
    functionLinenumber: 4214
    functionLinenumberEnd: 4495
    functionName: do_multipart
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 1
    functionsReached:
    - tableFind
    - saveTextPart
    - messageAddArgument
    - json_object_array_get_idx
    - strcasecmp
    - json_object_get_string
    - messageGetEncoding
    - parseEmailHeaders
    - messageGetMimeType
    - messageGetMimeSubtype
    - messageContainsVirus
    - getMimeTypeStr
    - cli_jsonarray
    - json_object_array_length
    - parseEmailBody
    - cli_jsonobj
    - checkURLs
    - cli_jsonint
    - binhexBegin
    - cli_dbgmsg
    - messageGetDispositionType
    - fileblobScanAndDestroy
    - messageGetBody
    - cli_jsonstr
    - json_object_array_add
    - encodingLine
    - messageToFileblob
    - free
    - messageHasFilename
    - messageReset
    - messageSetCTX
    - json_object_object_get_ex
    - exportBinhexMessage
    - fileblobSetCTX
    - getEncTypeStr
    - cli_errmsg
    - messageDestroy
    linkageType: ''
    returnType: message
    signature: 'message *

      do_multipart(message *mainMessage, message **messages, int i, mbox_status *rc,
      mbox_ctx *mctx, message *messageIn, text **tptr, unsigned int recursion_level)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4510
      start: 4500
    functionDepth: 0
    functionLinenumber: 4500
    functionLinenumberEnd: 4510
    functionName: count_quotes
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_quotes(const char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:4527,1
    - Dst: isblank
      Src: /src/clamav/libclamav/mbox.c:4533,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:4536,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/mbox.c:4559,1
    - Dst: strchr
      Src: /src/clamav/libclamav/mbox.c:4561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - t
    argTypes:
    - text*
    constantsTouched: []
    func_position:
      end: 4576
      start: 4515
    functionDepth: 1
    functionLinenumber: 4515
    functionLinenumberEnd: 4576
    functionName: next_is_folded_header
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - lineGetData
    - isblank
    - strchr
    linkageType: ''
    returnType: bool
    signature: bool next_is_folded_header(const text *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4586,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:4588,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mbox.c:4590,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mbox.c:4593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4596
      start: 4583
    functionDepth: 1
    functionLinenumber: 4583
    functionLinenumberEnd: 4596
    functionName: newline_in_header
    functionSourceFile: /src/clamav/libclamav/mbox.c
    functionUses: 2
    functionsReached:
    - cli_dbgmsg
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool newline_in_header(const char *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pe_icons.c:71,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pe_icons.c:72,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:74,1
    - Dst: cli_groupiconscan
      Src: /src/clamav/libclamav/pe_icons.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ptr
    - type
    - name
    - lang
    - rva
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 88
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: groupicon_scan_cb
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_groupiconscan
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int groupicon_scan_cb(void *ptr, uint32_t type, uint32_t name, uint32_t
      lang, uint32_t rva)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pe_icons.c:96,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pe_icons.c:97,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pe_icons.c:98,1
    - Dst: parseicon
      Src: /src/clamav/libclamav/pe_icons.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ptr
    - type
    - name
    - lang
    - rva
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: icon_scan_cb
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - parseicon
    linkageType: ''
    returnType: int
    signature: int icon_scan_cb(void *ptr, uint32_t type, uint32_t name, uint32_t
      lang, uint32_t rva)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: findres
      Src: /src/clamav/libclamav/pe_icons.c:135,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:139,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:141,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pe_icons.c:143,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:147,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:151,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:153,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:155,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - set
    - ctx
    - peinfo
    argTypes:
    - icon_groupset*
    - cli_ctx*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 165
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 165
    functionName: cli_scanicon
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - findres
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int cli_scanicon(icon_groupset *set, cli_ctx *ctx, struct cli_exe_info
      *peinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe_icons.c:193,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe_icons.c:193,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:194,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe_icons.c:195,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe_icons.c:197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:206,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe_icons.c:206,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe_icons.c:206,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe_icons.c:206,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe_icons.c:206,1
    - Dst: findres
      Src: /src/clamav/libclamav/pe_icons.c:209,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe_icons.c:209,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:229,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - icon_env
    - rva
    argTypes:
    - struct ICON_ENV*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 237
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 237
    functionName: cli_groupiconscan
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 1
    functionsReached:
    - cli_readint32
    - fmap_need_off_once
    - cli_readint16
    - cli_rawaddr
    - cli_dbgmsg
    - findres
    linkageType: ''
    returnType: int
    signature: int cli_groupiconscan(struct ICON_ENV *icon_env, uint32_t rva)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:649,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:653,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:657,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:674,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:678,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:682,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 6
    argNames:
    - r
    - g
    - b
    - L
    - A
    - B
    argTypes:
    - double
    - double
    - double
    - double*
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 689
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 689
    functionName: lab
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: void
    signature: void lab(double r, double g, double b, double *L, double *A, double
      *B)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lab
      Src: /src/clamav/libclamav/pe_icons.c:701,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:703,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:703,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:703,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - rgb
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 704
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 704
    functionName: labdiff
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - pow
    - sqrt
    - lab
    linkageType: ''
    returnType: double
    signature: double labdiff(unsigned int rgb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:714,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:719,1
    - Dst: pow
      Src: /src/clamav/libclamav/pe_icons.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 6
    argNames:
    - r
    - g
    - b
    - L
    - A
    - B
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - int32_t*
    - int32_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 731
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 731
    functionName: lab2
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - pow
    linkageType: ''
    returnType: void
    signature: void lab2(uint32_t r, uint32_t g, uint32_t b, int32_t *L, int32_t *A,
      int32_t *B)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lab2
      Src: /src/clamav/libclamav/pe_icons.c:746,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - b
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 755
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 755
    functionName: labdiff2
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - sqrt
    - lab2
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t labdiff2(unsigned int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/pe_icons.c:766,1
    - Dst: fopen
      Src: /src/clamav/libclamav/pe_icons.c:768,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pe_icons.c:769,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:770,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:771,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/pe_icons.c:774,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/pe_icons.c:775,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/pe_icons.c:777,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:778,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:779,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:780,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:781,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:782,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:783,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:784,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:785,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:786,1
    - Dst: fclose
      Src: /src/clamav/libclamav/pe_icons.c:787,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pe_icons.c:788,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:789,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:790,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:796,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/pe_icons.c:802,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/pe_icons.c:803,1
    - Dst: fclose
      Src: /src/clamav/libclamav/pe_icons.c:810,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pe_icons.c:812,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:814,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:815,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 39
    argCount: 5
    argNames:
    - step
    - tempd
    - w
    - h
    - data
    argTypes:
    - char*
    - char*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 816
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 816
    functionName: makebmp
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_unlink
    - fwrite
    - cli_dbgmsg
    - cli_writeint32
    - fclose
    - free
    - fopen
    linkageType: ''
    returnType: void
    signature: void makebmp(const char *step, const char *tempd, int w, int h, void
      *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 8
    argNames:
    - side
    - x1
    - y1
    - avg1
    - x2
    - y2
    - avg2
    - max
    argTypes:
    - unsigned int
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 839
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 839
    functionName: matchpoint
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int matchpoint(unsigned int side, unsigned int *x1, unsigned
      int *y1, unsigned int *avg1, const unsigned int *x2, const unsigned int *y2,
      const unsigned int *avg2, unsigned int max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:869,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 13
    argNames:
    - side
    - x1a
    - y1a
    - avg1a
    - x1b
    - y1b
    - avg1b
    - x2a
    - y2a
    - avg2a
    - x2b
    - y2b
    - avg2b
    argTypes:
    - unsigned int
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 879
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 879
    functionName: matchbwpoint
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int matchbwpoint(unsigned int side, unsigned int *x1a, unsigned
      int *y1a, unsigned int *avg1a, unsigned int *x1b, unsigned int *y1b, unsigned
      int *avg1b, const unsigned int *x2a, const unsigned int *y2a, const unsigned
      int *avg2a, const unsigned int *x2b, const unsigned int *y2b, const unsigned
      int *avg2b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/clamav/libclamav/pe_icons.c:887,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe_icons.c:887,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe_icons.c:888,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe_icons.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - c
    - r
    - g
    - b
    - s
    - v
    - delta
    argTypes:
    - unsigned int
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 895
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 895
    functionName: hsv
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - MIN
    - MAX
    linkageType: ''
    returnType: void
    signature: void hsv(unsigned int c, unsigned int *r, unsigned int *g, unsigned
      int *b, unsigned int *s, unsigned int *v, unsigned int *delta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe_icons.c:904,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe_icons.c:905,1
    - Dst: memset
      Src: /src/clamav/libclamav/pe_icons.c:909,1
    - Dst: hsv
      Src: /src/clamav/libclamav/pe_icons.c:921,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:922,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:928,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:929,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:930,1
    - Dst: hsv
      Src: /src/clamav/libclamav/pe_icons.c:940,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:941,1
    - Dst: hsv
      Src: /src/clamav/libclamav/pe_icons.c:944,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:945,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:951,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:952,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:953,1
    - Dst: hsv
      Src: /src/clamav/libclamav/pe_icons.c:961,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:962,1
    - Dst: hsv
      Src: /src/clamav/libclamav/pe_icons.c:966,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:967,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:973,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:974,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:975,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe_icons.c:1070,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe_icons.c:1072,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:1073,1
    - Dst: LABDIFF
      Src: /src/clamav/libclamav/pe_icons.c:1081,1
    - Dst: sqrt
      Src: /src/clamav/libclamav/pe_icons.c:1109,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:1116,1
    - Dst: makebmp
      Src: /src/clamav/libclamav/pe_icons.c:1139,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe_icons.c:1146,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe_icons.c:1146,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe_icons.c:1161,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe_icons.c:1161,1
    - Dst: makebmp
      Src: /src/clamav/libclamav/pe_icons.c:1172,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:1237,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1259,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1260,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1261,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1262,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1264,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1266,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1272,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1275,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1277,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1279,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1283,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1285,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1287,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1291,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1293,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1295,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1299,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1301,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1303,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1307,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1309,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1311,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1315,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1317,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1319,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1322,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1324,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1326,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe_icons.c:1328,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1329,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 349
    argCount: 4
    argNames:
    - side
    - imagedata
    - res
    - tempd
    argTypes:
    - unsigned int
    - unsigned int*
    - struct icomtr*
    - char*
    constantsTouched: []
    func_position:
      end: 1333
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 1333
    functionName: getmetrics
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 0
    functionsReached:
    - memset
    - sqrt
    - LABDIFF
    - abs
    - makebmp
    - cli_max_malloc
    - MIN
    - cli_dbgmsg
    - free
    - hsv
    - cli_errmsg
    - sprintf
    linkageType: ''
    returnType: int
    signature: int getmetrics(unsigned int side, unsigned int *imagedata, struct icomtr
      *res, const char *tempd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gettmpdir
      Src: /src/clamav/libclamav/pe_icons.c:1372,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe_icons.c:1373,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe_icons.c:1376,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe_icons.c:1382,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe_icons.c:1383,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe_icons.c:1384,1
    - Dst: READ32
      Src: /src/clamav/libclamav/pe_icons.c:1390,1
    - Dst: READ32
      Src: /src/clamav/libclamav/pe_icons.c:1397,1
    - Dst: READ32
      Src: /src/clamav/libclamav/pe_icons.c:1399,1
    - Dst: READ32
      Src: /src/clamav/libclamav/pe_icons.c:1400,1
    - Dst: READ16
      Src: /src/clamav/libclamav/pe_icons.c:1401,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1423,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1430,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/pe_icons.c:1436,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe_icons.c:1455,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/pe_icons.c:1457,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe_icons.c:1460,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/pe_icons.c:1462,1
    - Dst: READ32
      Src: /src/clamav/libclamav/pe_icons.c:1481,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/pe_icons.c:1517,1
    - Dst: makebmp
      Src: /src/clamav/libclamav/pe_icons.c:1518,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe_icons.c:1522,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1530,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1532,1
    - Dst: makebmp
      Src: /src/clamav/libclamav/pe_icons.c:1552,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1586,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1596,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1596,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1596,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1596,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1598,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1598,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1598,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1598,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe_icons.c:1604,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe_icons.c:1605,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1608,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:1614,1
    - Dst: makebmp
      Src: /src/clamav/libclamav/pe_icons.c:1620,1
    - Dst: getmetrics
      Src: /src/clamav/libclamav/pe_icons.c:1622,1
    - Dst: free
      Src: /src/clamav/libclamav/pe_icons.c:1623,1
    - Dst: matchbwpoint
      Src: /src/clamav/libclamav/pe_icons.c:1644,1
    - Dst: matchbwpoint
      Src: /src/clamav/libclamav/pe_icons.c:1645,1
    - Dst: matchpoint
      Src: /src/clamav/libclamav/pe_icons.c:1648,1
    - Dst: matchpoint
      Src: /src/clamav/libclamav/pe_icons.c:1649,1
    - Dst: matchpoint
      Src: /src/clamav/libclamav/pe_icons.c:1652,1
    - Dst: matchpoint
      Src: /src/clamav/libclamav/pe_icons.c:1653,1
    - Dst: matchpoint
      Src: /src/clamav/libclamav/pe_icons.c:1657,1
    - Dst: matchpoint
      Src: /src/clamav/libclamav/pe_icons.c:1658,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1660,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1662,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1664,1
    - Dst: abs
      Src: /src/clamav/libclamav/pe_icons.c:1666,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1677,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1678,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1680,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1681,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1684,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1686,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1690,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 248
    argCount: 2
    argNames:
    - icon_env
    - rva
    argTypes:
    - struct ICON_ENV*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1696
      start: 1335
    functionDepth: 4
    functionLinenumber: 1335
    functionLinenumberEnd: 1696
    functionName: parseicon
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 1
    functionsReached:
    - fmap_need_off
    - matchbwpoint
    - cli_readint32
    - READ32
    - cli_errmsg
    - fmap_need_off_once
    - abs
    - fmap_readn
    - READ16
    - cli_max_malloc
    - makebmp
    - cli_rawaddr
    - cli_dbgmsg
    - getmetrics
    - matchpoint
    - fmap_unneed_ptr
    - free
    - cli_gettmpdir
    linkageType: ''
    returnType: int
    signature: int parseicon(struct ICON_ENV *icon_env, uint32_t rva)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/pe_icons.c:1712,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe_icons.c:1716,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - groupname
    - set
    - type
    - ctx
    argTypes:
    - char*
    - icon_groupset*
    - unsigned int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1722
      start: 1698
    functionDepth: 1
    functionLinenumber: 1698
    functionLinenumberEnd: 1722
    functionName: cli_icongroupset_add
    functionSourceFile: /src/clamav/libclamav/pe_icons.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cli_icongroupset_add(const char *groupname, icon_groupset *set,
      unsigned int type, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/mpool.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: spam
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void spam(const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - size
    argTypes:
    - struct MP*
    - size_t
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: align_to_pagesize
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t align_to_pagesize(struct MP *mp, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 417
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 417
    functionName: to_bits
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int to_bits(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bits
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: from_bits
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t from_bits(unsigned int bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 448
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 448
    functionName: alignof
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int alignof(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: alignto
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t alignto(size_t p, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:460,1
    - Dst: cli_getpagesize
      Src: /src/clamav/libclamav/mpool.c:461,1
    - Dst: align_to_pagesize
      Src: /src/clamav/libclamav/mpool.c:462,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:466,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:470,1
    - Dst: mmap
      Src: /src/clamav/libclamav/mpool.c:474,1
    - Dst: VirtualAlloc
      Src: /src/clamav/libclamav/mpool.c:476,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:480,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/mpool.c:482,1
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 485
    functionName: mpool_create
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 10
    functionsReached:
    - spam
    - memset
    - memcpy
    - align_to_pagesize
    - cli_getpagesize
    - mmap
    - VirtualAlloc
    - cli_errmsg
    linkageType: ''
    returnType: struct MP
    signature: struct MP *mpool_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:492,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:497,1
    - Dst: munmap
      Src: /src/clamav/libclamav/mpool.c:500,1
    - Dst: VirtualFree
      Src: /src/clamav/libclamav/mpool.c:502,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:507,1
    - Dst: munmap
      Src: /src/clamav/libclamav/mpool.c:510,1
    - Dst: VirtualFree
      Src: /src/clamav/libclamav/mpool.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - mp
    argTypes:
    - struct MP*
    constantsTouched: []
    func_position:
      end: 514
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 514
    functionName: mpool_destroy
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 2
    functionsReached:
    - munmap
    - memset
    - spam
    - VirtualFree
    linkageType: ''
    returnType: void
    signature: void mpool_destroy(struct MP *mp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/clamav/libclamav/mpool.c:522,1
    - Dst: align_to_pagesize
      Src: /src/clamav/libclamav/mpool.c:527,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:530,1
    - Dst: munmap
      Src: /src/clamav/libclamav/mpool.c:533,1
    - Dst: VirtualFree
      Src: /src/clamav/libclamav/mpool.c:535,1
    - Dst: align_to_pagesize
      Src: /src/clamav/libclamav/mpool.c:542,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:545,1
    - Dst: munmap
      Src: /src/clamav/libclamav/mpool.c:548,1
    - Dst: VirtualFree
      Src: /src/clamav/libclamav/mpool.c:550,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mpool.c:555,1
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - mp
    argTypes:
    - struct MP*
    constantsTouched: []
    func_position:
      end: 557
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 557
    functionName: mpool_flush
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - munmap
    - memset
    - VirtualFree
    - exit
    - cli_dbgmsg
    - align_to_pagesize
    - spam
    linkageType: ''
    returnType: void
    signature: void mpool_flush(struct MP *mp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - eng
    - used
    - total
    argTypes:
    - struct cl_engine*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 578
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 578
    functionName: mpool_getstats
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpool_getstats(const struct cl_engine *eng, size_t *used, size_t
      *total)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - a
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: align_increase
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t align_increase(size_t size, size_t a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/mpool.c:602,1
    - Dst: assert
      Src: /src/clamav/libclamav/mpool.c:609,1
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:611,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - mpm
    - size
    - align
    - dbg
    argTypes:
    - struct MPMAP*
    - size_t
    - unsigned
    - char*
    constantsTouched: []
    func_position:
      end: 617
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 617
    functionName: allocate_aligned
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - memset
    - spam
    - assert
    linkageType: ''
    returnType: void
    signature: void *allocate_aligned(struct MPMAP *mpm, size_t size, unsigned align,
      const char *dbg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/mpool.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct FRAG*
    constantsTouched: []
    func_position:
      end: 696
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 696
    functionName: allocbase_fromfrag
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void *allocbase_fromfrag(struct FRAG *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/mpool.c:706,1
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:709,1
    - Dst: allocbase_fromfrag
      Src: /src/clamav/libclamav/mpool.c:711,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:713,1
    - Dst: from_bits
      Src: /src/clamav/libclamav/mpool.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mp
    - ptr
    argTypes:
    - struct MP*
    - void*
    constantsTouched: []
    func_position:
      end: 718
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 718
    functionName: mpool_free
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - allocbase_fromfrag
    - memset
    - spam
    - assert
    - from_bits
    linkageType: ''
    returnType: void
    signature: void mpool_free(struct MP *mp, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpool_malloc
      Src: /src/clamav/libclamav/mpool.c:726,1
    - Dst: memset
      Src: /src/clamav/libclamav/mpool.c:727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - mp
    - nmemb
    - size
    argTypes:
    - struct MP*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 729
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 729
    functionName: mpool_calloc
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - memset
    - mpool_malloc
    linkageType: ''
    returnType: void
    signature: void *mpool_calloc(struct MP *mp, size_t nmemb, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpool_malloc
      Src: /src/clamav/libclamav/mpool.c:736,1
    - Dst: from_bits
      Src: /src/clamav/libclamav/mpool.c:739,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:740,1
    - Dst: from_bits
      Src: /src/clamav/libclamav/mpool.c:744,1
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:745,1
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:746,1
    - Dst: mpool_malloc
      Src: /src/clamav/libclamav/mpool.c:749,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/mpool.c:751,1
    - Dst: mpool_free
      Src: /src/clamav/libclamav/mpool.c:752,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - mp
    - ptr
    - size
    argTypes:
    - struct MP*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 754
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 754
    functionName: mpool_realloc
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - mpool_malloc
    - cli_errmsg
    - mpool_free
    - memcpy
    - spam
    - from_bits
    linkageType: ''
    returnType: void
    signature: void *mpool_realloc(struct MP *mp, void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpool_free
      Src: /src/clamav/libclamav/mpool.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mp
    - ptr
    - size
    argTypes:
    - struct MP*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 763
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 763
    functionName: mpool_realloc2
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - mpool_free
    linkageType: ''
    returnType: void
    signature: void *mpool_realloc2(struct MP *mp, void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:771,1
    - Dst: mpool_malloc
      Src: /src/clamav/libclamav/mpool.c:775,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:777,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/mpool.c:780,1
    - Dst: mpool_free
      Src: /src/clamav/libclamav/mpool.c:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - mp
    - hex
    argTypes:
    - mpool_t*
    - char*
    constantsTouched: []
    func_position:
      end: 786
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 786
    functionName: cli_mpool_hex2str
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - mpool_free
    - cli_hex2str_to
    - cli_errmsg
    - mpool_malloc
    linkageType: ''
    returnType: char
    signature: char *cli_mpool_hex2str(mpool_t *mp, const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:794,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mpool.c:798,1
    - Dst: mpool_malloc
      Src: /src/clamav/libclamav/mpool.c:799,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:801,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/mpool.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mp
    - s
    argTypes:
    - mpool_t*
    - char*
    constantsTouched: []
    func_position:
      end: 805
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 805
    functionName: cli_mpool_strdup
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - cli_errmsg
    - mpool_malloc
    linkageType: ''
    returnType: char
    signature: char *cli_mpool_strdup(mpool_t *mp, const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:813,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/mpool.c:817,1
    - Dst: mpool_malloc
      Src: /src/clamav/libclamav/mpool.c:818,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:820,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/mpool.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - mp
    - s
    - n
    argTypes:
    - mpool_t*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 825
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 825
    functionName: cli_mpool_strndup
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CLI_STRNLEN
    - cli_errmsg
    - mpool_malloc
    linkageType: ''
    returnType: char
    signature: char *cli_mpool_strndup(mpool_t *mp, const char *s, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/libclamav/mpool.c:838,1
    - Dst: strstr
      Src: /src/clamav/libclamav/mpool.c:839,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:843,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/mpool.c:848,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/mpool.c:849,1
    - Dst: cli_mpool_strdup
      Src: /src/clamav/libclamav/mpool.c:855,1
    - Dst: mpool_malloc
      Src: /src/clamav/libclamav/mpool.c:857,1
    - Dst: strlen
      Src: /src/clamav/libclamav/mpool.c:857,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:859,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/mpool.c:862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - mp
    - virname
    - official
    argTypes:
    - mpool_t*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 864
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 864
    functionName: cli_mpool_virname
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - cli_mpool_strdup
    - snprintf
    - mpool_malloc
    - strstr
    - strlen
    - strchr
    - sprintf
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *cli_mpool_virname(mpool_t *mp, const char *virname, unsigned
      int official)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/mpool.c:871,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/mpool.c:874,1
    - Dst: mpool_calloc
      Src: /src/clamav/libclamav/mpool.c:878,1
    - Dst: cli_realhex2ui
      Src: /src/clamav/libclamav/mpool.c:882,1
    - Dst: mpool_free
      Src: /src/clamav/libclamav/mpool.c:885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mp
    - hex
    argTypes:
    - mpool_t*
    - char*
    constantsTouched: []
    func_position:
      end: 887
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 887
    functionName: cli_mpool_hex2ui
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - mpool_calloc
    - strlen
    - cli_errmsg
    - mpool_free
    - cli_realhex2ui
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t *cli_mpool_hex2ui(mpool_t *mp, const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mpool.c:895,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mpool.c:897,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/mpool.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mp
    argTypes:
    - struct MP*
    constantsTouched: []
    func_position:
      end: 904
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 904
    functionName: mpool_stats
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    linkageType: ''
    returnType: void
    signature: void mpool_stats(struct MP *mp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spam
      Src: /src/clamav/libclamav/mpool.c:912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mp
    argTypes:
    - struct MP*
    constantsTouched: []
    func_position:
      end: 918
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 918
    functionName: check_all
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached:
    - spam
    linkageType: ''
    returnType: void
    signature: void check_all(struct MP *mp)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 924
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 924
    functionName: mpool_free
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpool_free()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 925
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 925
    functionName: mpool_create
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpool_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 926
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 926
    functionName: mpool_destroy
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpool_destroy()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 927
    functionName: mpool_getstats
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpool_getstats()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 928
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 928
    functionName: mpool_calloc
    functionSourceFile: /src/clamav/libclamav/mpool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpool_calloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/clamav/libclamav/untar.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: octal
    functionSourceFile: /src/clamav/libclamav/untar.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: int
    signature: int octal(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/clamav/libclamav/untar.c:81,1
    - Dst: octal
      Src: /src/clamav/libclamav/untar.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - header
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: getchecksum
    functionSourceFile: /src/clamav/libclamav/untar.c
    functionUses: 0
    functionsReached:
    - octal
    - strncpy
    linkageType: ''
    returnType: int
    signature: int getchecksum(const char *header)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - header
    - targetsum
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 124
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 124
    functionName: testchecksum
    functionSourceFile: /src/clamav/libclamav/untar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int testchecksum(const char *header, int targetsum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:142,1
    - Dst: memset
      Src: /src/clamav/libclamav/untar.c:143,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/untar.c:149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:150,1
    - Dst: close
      Src: /src/clamav/libclamav/untar.c:160,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/untar.c:161,1
    - Dst: lseek
      Src: /src/clamav/libclamav/untar.c:174,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/untar.c:175,1
    - Dst: close
      Src: /src/clamav/libclamav/untar.c:176,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/untar.c:178,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/untar.c:190,1
    - Dst: getchecksum
      Src: /src/clamav/libclamav/untar.c:197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:198,1
    - Dst: testchecksum
      Src: /src/clamav/libclamav/untar.c:199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:204,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:209,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/untar.c:213,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/untar.c:215,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:216,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:225,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/untar.c:266,1
    - Dst: octal
      Src: /src/clamav/libclamav/untar.c:268,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:274,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/untar.c:275,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:282,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:298,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/untar.c:303,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/untar.c:305,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/untar.c:309,1
    - Dst: open
      Src: /src/clamav/libclamav/untar.c:311,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/untar.c:315,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/untar.c:315,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:333,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/untar.c:334,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/untar.c:342,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/untar.c:345,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/untar.c:346,1
    - Dst: close
      Src: /src/clamav/libclamav/untar.c:347,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/untar.c:352,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/untar.c:359,1
    - Dst: lseek
      Src: /src/clamav/libclamav/untar.c:367,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/untar.c:368,1
    - Dst: close
      Src: /src/clamav/libclamav/untar.c:369,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/untar.c:371,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 192
    argCount: 3
    argNames:
    - dir
    - posix
    - ctx
    argTypes:
    - char*
    - unsigned int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 381
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 381
    functionName: cli_untar
    functionSourceFile: /src/clamav/libclamav/untar.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - testchecksum
    - snprintf
    - cli_warnmsg
    - fmap_need_off_once_len
    - lseek
    - strcmp
    - strncpy
    - cli_dbgmsg
    - cli_checklimits
    - cli_writen
    - close
    - memset
    - cli_matchmeta
    - cli_unlink
    - open
    - getchecksum
    - octal
    - cli_strerror
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_untar(const char *dir, unsigned int posix, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pread
      Src: /src/clamav/libclamav/fmap.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - buf
    - count
    - offset
    argTypes:
    - void*
    - void*
    - size_t
    - off_t
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: pread_cb
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - pread
    linkageType: ''
    returnType: off_t
    signature: off_t pread_cb(void *handle, void *buf, size_t count, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FSTAT
      Src: /src/clamav/libclamav/fmap.c:117,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:118,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:124,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/fmap.c:128,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:129,1
    - Dst: cl_fmap_open_handle
      Src: /src/clamav/libclamav/fmap.c:132,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/fmap.c:138,1
    - Dst: funmap
      Src: /src/clamav/libclamav/fmap.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - fd
    - offset
    - len
    - empty
    - name
    argTypes:
    - int
    - off_t
    - size_t
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 146
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 146
    functionName: fmap_check_empty
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 1
    functionsReached:
    - funmap
    - cli_warnmsg
    - FSTAT
    - cli_dbgmsg
    - CLI_ISCONTAINED_0_TO
    - cli_safer_strdup
    - cl_fmap_open_handle
    linkageType: ''
    returnType: fmap_t
    signature: fmap_t *fmap_check_empty(int fd, off_t offset, size_t len, int *empty,
      const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnmapViewOfFile
      Src: /src/clamav/libclamav/fmap.c:153,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamav/fmap.c:156,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:159,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: unmap_win32
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - free
    - CloseHandle
    - UnmapViewOfFile
    linkageType: ''
    returnType: void
    signature: void unmap_win32(fmap_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FSTAT
      Src: /src/clamav/libclamav/fmap.c:176,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:177,1
    - Dst: fmap_align_to
      Src: /src/clamav/libclamav/fmap.c:180,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:181,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:186,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/fmap.c:190,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:191,1
    - Dst: fmap_align_items
      Src: /src/clamav/libclamav/fmap.c:195,1
    - Dst: _get_osfhandle
      Src: /src/clamav/libclamav/fmap.c:197,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:198,1
    - Dst: CreateFileMapping
      Src: /src/clamav/libclamav/fmap.c:201,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:202,1
    - Dst: MapViewOfFile
      Src: /src/clamav/libclamav/fmap.c:205,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:206,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamav/fmap.c:207,1
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/libclamav/fmap.c:210,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:211,1
    - Dst: UnmapViewOfFile
      Src: /src/clamav/libclamav/fmap.c:212,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamav/fmap.c:213,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/fmap.c:223,1
    - Dst: funmap
      Src: /src/clamav/libclamav/fmap.c:225,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 5
    argNames:
    - fd
    - offset
    - len
    - empty
    - name
    argTypes:
    - int
    - off_t
    - size_t
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 231
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 231
    functionName: fmap_check_empty
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 1
    functionsReached:
    - _get_osfhandle
    - MapViewOfFile
    - funmap
    - cli_warnmsg
    - cl_fmap_open_memory
    - FSTAT
    - fmap_align_items
    - CLI_ISCONTAINED_0_TO
    - cli_dbgmsg
    - CloseHandle
    - CreateFileMapping
    - cli_safer_strdup
    - cli_errmsg
    - fmap_align_to
    - UnmapViewOfFile
    linkageType: ''
    returnType: fmap_t
    signature: fmap_t *fmap_check_empty(int fd, off_t offset, size_t len, int *empty,
      const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:242,1
    - Dst: malloc
      Src: /src/clamav/libclamav/fmap.c:246,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:248,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:253,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:257,1
    - Dst: MIN
      Src: /src/clamav/libclamav/fmap.c:270,1
    - Dst: CLI_ISCONTAINED_2
      Src: /src/clamav/libclamav/fmap.c:277,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:282,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/fmap.c:296,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:310,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 4
    argNames:
    - map
    - offset
    - length
    - name
    argTypes:
    - cl_fmap_t*
    - size_t
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 316
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 316
    functionName: fmap_duplicate
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 4
    functionsReached:
    - cli_warnmsg
    - CLI_ISCONTAINED_2
    - MIN
    - malloc
    - memcpy
    - cli_safer_strdup
    - free
    linkageType: ''
    returnType: fmap_t
    signature: fmap_t *fmap_duplicate(cl_fmap_t *map, size_t offset, size_t length,
      const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:322,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - map
    argTypes:
    - cl_fmap_t*
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: free_duplicate_fmap
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_duplicate_fmap(cl_fmap_t *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unmap_mmap
      Src: /src/clamav/libclamav/fmap.c:334,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:336,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:341,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:345,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - m
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: unmap_handle
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - free
    - unmap_mmap
    linkageType: ''
    returnType: void
    signature: void unmap_handle(fmap_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_align_to
      Src: /src/clamav/libclamav/fmap.c:360,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:361,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:365,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:369,1
    - Dst: fmap_align_items
      Src: /src/clamav/libclamav/fmap.c:373,1
    - Dst: calloc
      Src: /src/clamav/libclamav/fmap.c:378,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:380,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/fmap.c:384,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:386,1
    - Dst: mmap
      Src: /src/clamav/libclamav/fmap.c:396,1
    - Dst: madvise
      Src: /src/clamav/libclamav/fmap.c:404,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/fmap.c:411,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:414,1
    - Dst: unmap_handle
      Src: /src/clamav/libclamav/fmap.c:442,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 5
    argNames:
    - handle
    - offset
    - len
    - pread_cb
    - use_aging
    argTypes:
    - void*
    - size_t
    - size_t
    - clcb_pread
    - int
    constantsTouched: []
    func_position:
      end: 446
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 446
    functionName: cl_fmap_open_handle
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 3
    functionsReached:
    - calloc
    - cli_warnmsg
    - unmap_handle
    - cli_max_malloc
    - fmap_align_items
    - cli_dbgmsg
    - mmap
    - madvise
    - cli_max_calloc
    - fmap_align_to
    linkageType: ''
    returnType: cl_fmap_t
    signature: "cl_fmap_t *cl_fmap_open_handle(void *handle, size_t offset, size_t
      len,\n                                      clcb_pread pread_cb, int use_aging)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/clamav/libclamav/fmap.c:498,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:499,1
    - Dst: mmap
      Src: /src/clamav/libclamav/fmap.c:506,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:507,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/fmap.c:514,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 1
    argNames:
    - m
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 516
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 516
    functionName: fmap_aging
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - mmap
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void fmap_aging(fmap_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:526,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:558,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/fmap.c:585,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/fmap.c:586,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:587,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:591,1
    - Dst: fmap_t*::pread_cb
      Src: /src/clamav/libclamav/fmap.c:603,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/fmap.c:616,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:617,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:619,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 4
    argNames:
    - m
    - first_page
    - count
    - lock_count
    argTypes:
    - fmap_t*
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 647
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 647
    functionName: fmap_readpage
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - fmap_t*::pread_cb
    - cli_warnmsg
    - cli_strerror
    - FSTAT
    - cli_dbgmsg
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int fmap_readpage(fmap_t *m, uint64_t first_page, uint64_t count, uint64_t
      lock_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/fmap.c:658,1
    - Dst: fmap_aging
      Src: /src/clamav/libclamav/fmap.c:661,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:663,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:664,1
    - Dst: fmap_readpage
      Src: /src/clamav/libclamav/fmap.c:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - m
    - at
    - len
    - lock
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 676
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 676
    functionName: handle_need
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - fmap_which_page
    - CLI_ISCONTAINED
    - fmap_aging
    - fmap_readpage
    linkageType: ''
    returnType: void
    signature: void *handle_need(fmap_t *m, size_t at, size_t len, int lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:690,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - m
    - page
    argTypes:
    - fmap_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 695
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 695
    functionName: fmap_unneed_page
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void fmap_unneed_page(fmap_t *m, uint64_t page)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:702,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/fmap.c:707,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:708,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:712,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:713,1
    - Dst: fmap_unneed_page
      Src: /src/clamav/libclamav/fmap.c:716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - m
    - at
    - len
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 718
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 718
    functionName: handle_unneed_off
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - fmap_which_page
    - fmap_unneed_page
    - CLI_ISCONTAINED
    linkageType: ''
    returnType: void
    signature: void handle_unneed_off(fmap_t *m, size_t at, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/clamav/libclamav/fmap.c:725,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:726,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/fmap.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 731
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 731
    functionName: unmap_mmap
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 1
    functionsReached:
    - munmap
    - UNUSEDPARAM
    - cli_warnmsg
    linkageType: ''
    returnType: void
    signature: void unmap_mmap(fmap_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:737,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 741
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 741
    functionName: unmap_malloc
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void unmap_malloc(fmap_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/fmap.c:754,1
    - Dst: fmap_aging
      Src: /src/clamav/libclamav/fmap.c:757,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:759,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:760,1
    - Dst: fmap_readpage
      Src: /src/clamav/libclamav/fmap.c:766,1
    - Dst: MIN
      Src: /src/clamav/libclamav/fmap.c:772,1
    - Dst: MIN
      Src: /src/clamav/libclamav/fmap.c:775,1
    - Dst: memchr
      Src: /src/clamav/libclamav/fmap.c:778,1
    - Dst: fmap_unneed_page
      Src: /src/clamav/libclamav/fmap.c:782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - m
    - at
    - len_hint
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 784
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 784
    functionName: handle_need_offstr
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - fmap_which_page
    - CLI_ISCONTAINED
    - fmap_readpage
    - memchr
    - fmap_aging
    - MIN
    - fmap_unneed_page
    linkageType: ''
    returnType: void
    signature: void *handle_need_offstr(fmap_t *m, size_t at, size_t len_hint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/fmap.c:794,1
    - Dst: fmap_aging
      Src: /src/clamav/libclamav/fmap.c:797,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:799,1
    - Dst: fmap_which_page
      Src: /src/clamav/libclamav/fmap.c:800,1
    - Dst: fmap_readpage
      Src: /src/clamav/libclamav/fmap.c:806,1
    - Dst: MIN
      Src: /src/clamav/libclamav/fmap.c:811,1
    - Dst: MIN
      Src: /src/clamav/libclamav/fmap.c:814,1
    - Dst: memchr
      Src: /src/clamav/libclamav/fmap.c:818,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:824,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:828,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - m
    - dst
    - at
    - max_len
    argTypes:
    - fmap_t*
    - char*
    - size_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 833
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 833
    functionName: handle_gets
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - fmap_which_page
    - fmap_readpage
    - memchr
    - CLI_ISCONTAINED_0_TO
    - fmap_aging
    - MIN
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *handle_gets(fmap_t *m, char *dst, size_t *at, size_t max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/fmap.c:847,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:849,1
    - Dst: fmap_align_items
      Src: /src/clamav/libclamav/fmap.c:856,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/fmap.c:865,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:867,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:878,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:880,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - start
    - len
    - name
    argTypes:
    - void*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 886
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 886
    functionName: fmap_open_memory
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 6
    functionsReached:
    - calloc
    - cli_warnmsg
    - fmap_align_items
    - free
    - cli_safer_strdup
    linkageType: ''
    returnType: fmap_t
    signature: fmap_t *fmap_open_memory(const void *start, size_t len, const char
      *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_open_memory
      Src: /src/clamav/libclamav/fmap.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: cl_fmap_open_memory
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 6
    functionsReached:
    - fmap_open_memory
    linkageType: ''
    returnType: cl_fmap_t
    signature: cl_fmap_t *cl_fmap_open_memory(const void *start, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/fmap.c:895,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/fmap.c:900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - m
    - at
    - len
    - lock
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 905
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 905
    functionName: mem_need
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - CLI_ISCONTAINED
    linkageType: ''
    returnType: void
    signature: void *mem_need(fmap_t *m, size_t at, size_t len, int lock)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/fmap.c:909,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/fmap.c:910,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/fmap.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - at
    - len
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 912
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 912
    functionName: mem_unneed_off
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void mem_unneed_off(fmap_t *m, size_t at, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/fmap.c:924,1
    - Dst: memchr
      Src: /src/clamav/libclamav/fmap.c:927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - m
    - at
    - len_hint
    argTypes:
    - fmap_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 930
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 930
    functionName: mem_need_offstr
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - memchr
    - CLI_ISCONTAINED
    linkageType: ''
    returnType: void
    signature: void *mem_need_offstr(fmap_t *m, size_t at, size_t len_hint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/fmap.c:938,1
    - Dst: memchr
      Src: /src/clamav/libclamav/fmap.c:941,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:943,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - m
    - dst
    - at
    - max_len
    argTypes:
    - fmap_t*
    - char*
    - size_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 952
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 952
    functionName: mem_gets
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memchr
    - CLI_ISCONTAINED_0_TO
    linkageType: ''
    returnType: void
    signature: void *mem_gets(fmap_t *m, char *dst, size_t *at, size_t max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_check_empty
      Src: /src/clamav/libclamav/fmap.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - offset
    - len
    - name
    argTypes:
    - int
    - off_t
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 958
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 958
    functionName: fmap
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 8
    functionsReached:
    - fmap_check_empty
    linkageType: ''
    returnType: fmap_t
    signature: fmap_t *fmap(int fd, off_t offset, size_t len, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sz
    - al
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 963
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 963
    functionName: fmap_align_items
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fmap_align_items(uint64_t sz, uint64_t al)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_align_items
      Src: /src/clamav/libclamav/fmap.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sz
    - al
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 968
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 968
    functionName: fmap_align_to
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 2
    functionsReached:
    - fmap_align_items
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fmap_align_to(uint64_t sz, uint64_t al)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - at
    argTypes:
    - fmap_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 973
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 973
    functionName: fmap_which_page
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fmap_which_page(fmap_t *m, size_t at)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:988,1
    - Dst: MIN
      Src: /src/clamav/libclamav/fmap.c:993,1
    - Dst: cli_basename
      Src: /src/clamav/libclamav/fmap.c:998,1
    - Dst: strlen
      Src: /src/clamav/libclamav/fmap.c:998,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:999,1
    - Dst: malloc
      Src: /src/clamav/libclamav/fmap.c:1004,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1006,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:1007,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/fmap.c:1010,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:1012,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:1021,1
    - Dst: cli_gentempfd_with_prefix
      Src: /src/clamav/libclamav/fmap.c:1022,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:1024,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:1026,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:1033,1
    - Dst: MIN
      Src: /src/clamav/libclamav/fmap.c:1040,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/fmap.c:1042,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/fmap.c:1045,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/fmap.c:1046,1
    - Dst: close
      Src: /src/clamav/libclamav/fmap.c:1047,1
    - Dst: unlink
      Src: /src/clamav/libclamav/fmap.c:1048,1
    - Dst: free
      Src: /src/clamav/libclamav/fmap.c:1049,1
    - Dst: lseek
      Src: /src/clamav/libclamav/fmap.c:1060,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fmap.c:1061,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 7
    argNames:
    - map
    - filepath
    - tmpdir
    - outname
    - outfd
    - start_offset
    - end_offset
    argTypes:
    - fmap_t*
    - char*
    - char*
    - char**
    - int*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 1067
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1067
    functionName: fmap_dump_to_file
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 1
    functionsReached:
    - close
    - lseek
    - snprintf
    - strlen
    - cli_warnmsg
    - unlink
    - cli_basename
    - cli_dbgmsg
    - fmap_need_off_once_len
    - MIN
    - malloc
    - cli_writen
    - cli_gentempfd_with_prefix
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t fmap_dump_to_file(fmap_t *map, const char *filepath, const
      char *tmpdir, char **outname, int *outfd, size_t start_offset, size_t end_offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1073,1
    - Dst: lseek
      Src: /src/clamav/libclamav/fmap.c:1080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 1082
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1082
    functionName: fmap_fd
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 2
    functionsReached:
    - lseek
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int fmap_fd(fmap_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: funmap
      Src: /src/clamav/libclamav/fmap.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - cl_fmap_t*
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: cl_fmap_close
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 7
    functionsReached:
    - funmap
    linkageType: ''
    returnType: void
    signature: void cl_fmap_close(cl_fmap_t *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1094,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1099,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:1106,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:1110,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/fmap.c:1114,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - map
    - hash
    - type
    argTypes:
    - fmap_t*
    - unsigned char*
    - cli_hash_type_t
    constantsTouched: []
    func_position:
      end: 1125
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1125
    functionName: fmap_set_hash
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 1
    functionsReached:
    - memcpy
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t fmap_set_hash(fmap_t *map, unsigned char *hash, cli_hash_type_t
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1152,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/fmap.c:1163,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/fmap.c:1166,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/fmap.c:1169,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1172,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1177,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/fmap.c:1185,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1186,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/fmap.c:1194,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1195,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/fmap.c:1203,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/fmap.c:1207,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/fmap.c:1211,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1215,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/fmap.c:1234,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/fmap.c:1244,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 109
    argCount: 3
    argNames:
    - map
    - hash
    - type
    argTypes:
    - fmap_t*
    - unsigned char**
    - cli_hash_type_t
    constantsTouched: []
    func_position:
      end: 1248
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1248
    functionName: fmap_get_hash
    functionSourceFile: /src/clamav/libclamav/fmap.c
    functionUses: 1
    functionsReached:
    - fmap_need_off_once
    - cl_hash_destroy
    - cl_hash_init
    - cl_update_hash
    - cli_errmsg
    - cl_finish_hash
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t fmap_get_hash(fmap_t *map, unsigned char **hash, cli_hash_type_t
      type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/xz_iface.c:35,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/xz_iface.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - unused
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: __xz_wrap_alloc
    functionSourceFile: /src/clamav/libclamav/xz_iface.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_max_malloc
    linkageType: ''
    returnType: void
    signature: void *__xz_wrap_alloc(void *unused, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/xz_iface.c:45,1
    - Dst: free
      Src: /src/clamav/libclamav/xz_iface.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unused
    - freeme
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: __xz_wrap_free
    functionSourceFile: /src/clamav/libclamav/xz_iface.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - free
    linkageType: ''
    returnType: void
    signature: void __xz_wrap_free(void *unused, void *freeme)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XzUnpacker_Create
      Src: /src/clamav/libclamav/xz_iface.c:53,1
    - Dst: Crc64GenerateTable
      Src: /src/clamav/libclamav/xz_iface.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - XZ
    argTypes:
    - struct CLI_XZ*
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: cli_XzInit
    functionSourceFile: /src/clamav/libclamav/xz_iface.c
    functionUses: 0
    functionsReached:
    - Crc64GenerateTable
    - XzUnpacker_Create
    linkageType: ''
    returnType: int
    signature: int cli_XzInit(struct CLI_XZ *XZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XzUnpacker_Free
      Src: /src/clamav/libclamav/xz_iface.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - XZ
    argTypes:
    - struct CLI_XZ*
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: cli_XzShutdown
    functionSourceFile: /src/clamav/libclamav/xz_iface.c
    functionUses: 0
    functionsReached:
    - XzUnpacker_Free
    linkageType: ''
    returnType: void
    signature: void cli_XzShutdown(struct CLI_XZ *XZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XzUnpacker_Code
      Src: /src/clamav/libclamav/xz_iface.c:75,1
    - Dst: XzUnpacker_IsStreamWasFinished
      Src: /src/clamav/libclamav/xz_iface.c:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - XZ
    argTypes:
    - struct CLI_XZ*
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: cli_XzDecode
    functionSourceFile: /src/clamav/libclamav/xz_iface.c
    functionUses: 0
    functionsReached:
    - XzUnpacker_IsStreamWasFinished
    - XzUnpacker_Code
    linkageType: ''
    returnType: int
    signature: int cli_XzDecode(struct CLI_XZ *XZ)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned long
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: nearest_power
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long nearest_power(unsigned long num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: PROFILE_INIT
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void PROFILE_INIT(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: PROFILE_CALC_HASH
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_CALC_HASH(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: PROFILE_FIND_ELEMENT
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_FIND_ELEMENT(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - tries
    argTypes:
    - struct cli_hashtable*
    - size_t
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: PROFILE_FIND_NOTFOUND
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_FIND_NOTFOUND(struct cli_hashtable *s, size_t tries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - tries
    argTypes:
    - struct cli_hashtable*
    - size_t
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: PROFILE_FIND_FOUND
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_FIND_FOUND(struct cli_hashtable *s, size_t tries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: PROFILE_HASH_EXHAUSTED
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_HASH_EXHAUSTED(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: PROFILE_GROW_START
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_GROW_START(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - tries
    argTypes:
    - struct cli_hashtable*
    - size_t
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: PROFILE_GROW_FOUND
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_GROW_FOUND(struct cli_hashtable *s, size_t tries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: PROFILE_GROW_DONE
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_GROW_DONE(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - tries
    argTypes:
    - struct cli_hashtable*
    - size_t
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: PROFILE_DELETED_REUSE
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_DELETED_REUSE(struct cli_hashtable *s, size_t tries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - tries
    argTypes:
    - struct cli_hashtable*
    - size_t
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: PROFILE_INSERT
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_INSERT(struct cli_hashtable *s, size_t tries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - tries
    argTypes:
    - struct cli_hashtable*
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: PROFILE_DATA_UPDATE
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_DATA_UPDATE(struct cli_hashtable *s, size_t tries)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: PROFILE_HASH_DELETE
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_HASH_DELETE(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: PROFILE_HASH_CLEAR
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PROFILE_HASH_CLEAR(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:137,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:138,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:139,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:140,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:141,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:144,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:147,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:148,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:151,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:153,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 155
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 155
    functionName: PROFILE_REPORT
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void PROFILE_REPORT(const struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PROFILE_INIT
      Src: /src/clamav/libclamav/hashtab.c:180,1
    - Dst: nearest_power
      Src: /src/clamav/libclamav/hashtab.c:182,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/hashtab.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - capacity
    argTypes:
    - struct cli_hashtable*
    - size_t
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: cli_hashtab_init
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 2
    functionsReached:
    - cli_max_calloc
    - nearest_power
    - PROFILE_INIT
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashtab_init(struct cli_hashtable *s, size_t capacity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hashtab.c:196,1
    - Dst: PROFILE_INIT
      Src: /src/clamav/libclamav/hashtab.c:202,1
    - Dst: nearest_power
      Src: /src/clamav/libclamav/hashtab.c:204,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/hashtab.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - s
    - capacity
    - mempool
    argTypes:
    - struct cli_htu32*
    - size_t
    - mpool_t*
    constantsTouched: []
    func_position:
      end: 213
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 213
    functionName: cli_htu32_init
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - nearest_power
    - PROFILE_INIT
    - MPOOL_CALLOC
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_htu32_init(struct cli_htu32 *s, size_t capacity, mpool_t
      *mempool)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: hash32shift
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash32shift(uint32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hash32shift
      Src: /src/clamav/libclamav/hashtab.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - k
    - len
    - SIZE
    argTypes:
    - unsigned char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 238
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 238
    functionName: hash
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 17
    functionsReached:
    - hash32shift
    linkageType: ''
    returnType: size_t
    signature: size_t hash(const unsigned char *k, const size_t len, const size_t
      SIZE)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - SIZE
    argTypes:
    - uint32_t
    - size_t
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: hash_htu32
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t hash_htu32(uint32_t k, const size_t SIZE)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PROFILE_CALC_HASH
      Src: /src/clamav/libclamav/hashtab.c:257,1
    - Dst: PROFILE_FIND_ELEMENT
      Src: /src/clamav/libclamav/hashtab.c:258,1
    - Dst: hash
      Src: /src/clamav/libclamav/hashtab.c:259,1
    - Dst: PROFILE_FIND_NOTFOUND
      Src: /src/clamav/libclamav/hashtab.c:263,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hashtab.c:265,1
    - Dst: PROFILE_FIND_FOUND
      Src: /src/clamav/libclamav/hashtab.c:266,1
    - Dst: PROFILE_HASH_EXHAUSTED
      Src: /src/clamav/libclamav/hashtab.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - s
    - key
    - len
    argTypes:
    - struct cli_hashtable*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 275
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 275
    functionName: cli_hashtab_find
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 4
    functionsReached:
    - hash
    - PROFILE_FIND_FOUND
    - PROFILE_HASH_EXHAUSTED
    - PROFILE_CALC_HASH
    - PROFILE_FIND_NOTFOUND
    - strncmp
    - PROFILE_FIND_ELEMENT
    linkageType: ''
    returnType: struct cli_element
    signature: struct cli_element *cli_hashtab_find(const struct cli_hashtable *s,
      const char *key, const size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PROFILE_CALC_HASH
      Src: /src/clamav/libclamav/hashtab.c:285,1
    - Dst: PROFILE_FIND_ELEMENT
      Src: /src/clamav/libclamav/hashtab.c:286,1
    - Dst: hash_htu32
      Src: /src/clamav/libclamav/hashtab.c:287,1
    - Dst: PROFILE_FIND_NOTFOUND
      Src: /src/clamav/libclamav/hashtab.c:291,1
    - Dst: PROFILE_FIND_FOUND
      Src: /src/clamav/libclamav/hashtab.c:294,1
    - Dst: PROFILE_HASH_EXHAUSTED
      Src: /src/clamav/libclamav/hashtab.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - s
    - key
    argTypes:
    - struct cli_htu32*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 303
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 303
    functionName: cli_htu32_find
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 3
    functionsReached:
    - PROFILE_FIND_FOUND
    - PROFILE_HASH_EXHAUSTED
    - PROFILE_CALC_HASH
    - PROFILE_FIND_NOTFOUND
    - PROFILE_FIND_ELEMENT
    - hash_htu32
    linkageType: ''
    returnType: struct cli_htu32_element
    signature: struct cli_htu32_element *cli_htu32_find(const struct cli_htu32 *s,
      uint32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - s
    - current
    argTypes:
    - struct cli_htu32*
    - struct cli_htu32_element*
    constantsTouched: []
    func_position:
      end: 326
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 326
    functionName: cli_htu32_next
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct cli_htu32_element
    signature: struct cli_htu32_element *cli_htu32_next(const struct cli_htu32 *s,
      const struct cli_htu32_element *current)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:334,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:336,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/hashtab.c:339,1
    - Dst: PROFILE_GROW_START
      Src: /src/clamav/libclamav/hashtab.c:344,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:345,1
    - Dst: PROFILE_CALC_HASH
      Src: /src/clamav/libclamav/hashtab.c:351,1
    - Dst: hash
      Src: /src/clamav/libclamav/hashtab.c:352,1
    - Dst: PROFILE_GROW_FOUND
      Src: /src/clamav/libclamav/hashtab.c:361,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:365,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:366,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:371,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:376,1
    - Dst: PROFILE_GROW_DONE
      Src: /src/clamav/libclamav/hashtab.c:377,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 379
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 379
    functionName: cli_hashtab_grow
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - hash
    - PROFILE_GROW_START
    - PROFILE_CALC_HASH
    - PROFILE_GROW_FOUND
    - cli_dbgmsg
    - free
    - cli_max_calloc
    - PROFILE_GROW_DONE
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashtab_grow(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/hashtab.c:388,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:390,1
    - Dst: PROFILE_GROW_START
      Src: /src/clamav/libclamav/hashtab.c:394,1
    - Dst: PROFILE_CALC_HASH
      Src: /src/clamav/libclamav/hashtab.c:401,1
    - Dst: hash_htu32
      Src: /src/clamav/libclamav/hashtab.c:402,1
    - Dst: PROFILE_GROW_FOUND
      Src: /src/clamav/libclamav/hashtab.c:411,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:415,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/hashtab.c:420,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:425,1
    - Dst: PROFILE_GROW_DONE
      Src: /src/clamav/libclamav/hashtab.c:426,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - s
    - mempool
    argTypes:
    - struct cli_htu32*
    - mpool_t*
    constantsTouched: []
    func_position:
      end: 428
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 428
    functionName: cli_htu32_grow
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - PROFILE_GROW_START
    - PROFILE_CALC_HASH
    - PROFILE_GROW_FOUND
    - MPOOL_FREE
    - cli_dbgmsg
    - PROFILE_GROW_DONE
    - cli_errmsg
    - MPOOL_CALLOC
    - hash_htu32
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_htu32_grow(struct cli_htu32 *s, mpool_t *mempool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:439,1
    - Dst: cli_hashtab_grow
      Src: /src/clamav/libclamav/hashtab.c:440,1
    - Dst: PROFILE_CALC_HASH
      Src: /src/clamav/libclamav/hashtab.c:443,1
    - Dst: hash
      Src: /src/clamav/libclamav/hashtab.c:444,1
    - Dst: PROFILE_DELETED_REUSE
      Src: /src/clamav/libclamav/hashtab.c:454,1
    - Dst: PROFILE_INSERT
      Src: /src/clamav/libclamav/hashtab.c:456,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/hashtab.c:458,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:460,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/hashtab.c:463,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hashtab.c:473,1
    - Dst: PROFILE_DATA_UPDATE
      Src: /src/clamav/libclamav/hashtab.c:474,1
    - Dst: PROFILE_HASH_EXHAUSTED
      Src: /src/clamav/libclamav/hashtab.c:483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:484,1
    - Dst: cli_hashtab_grow
      Src: /src/clamav/libclamav/hashtab.c:485,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/hashtab.c:486,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 4
    argNames:
    - s
    - key
    - len
    - data
    argTypes:
    - struct cli_hashtable*
    - char*
    - size_t
    - cli_element_data
    constantsTouched: []
    func_position:
      end: 488
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 488
    functionName: cli_hashtab_insert
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 2
    functionsReached:
    - hash
    - PROFILE_DELETED_REUSE
    - cli_hashtab_grow
    - PROFILE_HASH_EXHAUSTED
    - cli_warnmsg
    - PROFILE_CALC_HASH
    - strncpy
    - cli_max_malloc
    - cli_dbgmsg
    - PROFILE_INSERT
    - PROFILE_DATA_UPDATE
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: struct cli_element
    signature: struct cli_element *cli_hashtab_insert(struct cli_hashtable *s, const
      char *key, const size_t len, const cli_element_data data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hashtab.c:499,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:505,1
    - Dst: cli_htu32_grow
      Src: /src/clamav/libclamav/hashtab.c:506,1
    - Dst: PROFILE_CALC_HASH
      Src: /src/clamav/libclamav/hashtab.c:509,1
    - Dst: hash_htu32
      Src: /src/clamav/libclamav/hashtab.c:510,1
    - Dst: PROFILE_DELETED_REUSE
      Src: /src/clamav/libclamav/hashtab.c:519,1
    - Dst: PROFILE_INSERT
      Src: /src/clamav/libclamav/hashtab.c:521,1
    - Dst: PROFILE_DATA_UPDATE
      Src: /src/clamav/libclamav/hashtab.c:530,1
    - Dst: PROFILE_HASH_EXHAUSTED
      Src: /src/clamav/libclamav/hashtab.c:539,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:540,1
    - Dst: cli_htu32_grow
      Src: /src/clamav/libclamav/hashtab.c:541,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/hashtab.c:542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - s
    - item
    - mempool
    argTypes:
    - struct cli_htu32*
    - struct cli_htu32_element*
    - mpool_t*
    constantsTouched: []
    func_position:
      end: 544
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 544
    functionName: cli_htu32_insert
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - PROFILE_DELETED_REUSE
    - PROFILE_HASH_EXHAUSTED
    - UNUSEDPARAM
    - PROFILE_CALC_HASH
    - cli_warnmsg
    - cli_dbgmsg
    - PROFILE_INSERT
    - PROFILE_DATA_UPDATE
    - cli_htu32_grow
    - hash_htu32
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_htu32_insert(struct cli_htu32 *s, const struct cli_htu32_element
      *item, mpool_t *mempool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/hashtab.c:548,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - key
    - len
    argTypes:
    - struct cli_hashtable*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 553
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 553
    functionName: cli_hashtab_delete
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 1
    functionsReached:
    - free
    - cli_hashtab_find
    linkageType: ''
    returnType: void
    signature: void cli_hashtab_delete(struct cli_hashtable *s, const char *key, const
      size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_htu32_find
      Src: /src/clamav/libclamav/hashtab.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - key
    argTypes:
    - struct cli_htu32*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: cli_htu32_delete
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_htu32_find
    linkageType: ''
    returnType: void
    signature: void cli_htu32_delete(struct cli_htu32 *s, uint32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PROFILE_HASH_CLEAR
      Src: /src/clamav/libclamav/hashtab.c:565,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:568,1
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: cli_hashtab_clear
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 1
    functionsReached:
    - PROFILE_HASH_CLEAR
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void cli_hashtab_clear(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PROFILE_HASH_CLEAR
      Src: /src/clamav/libclamav/hashtab.c:577,1
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_htu32*
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: cli_htu32_clear
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - PROFILE_HASH_CLEAR
    - memset
    linkageType: ''
    returnType: void
    signature: void cli_htu32_clear(struct cli_htu32 *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_clear
      Src: /src/clamav/libclamav/hashtab.c:585,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: cli_hashtab_free
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 2
    functionsReached:
    - free
    - cli_hashtab_clear
    linkageType: ''
    returnType: void
    signature: void cli_hashtab_free(struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hashtab.c:594,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/hashtab.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - mempool
    argTypes:
    - struct cli_htu32*
    - mpool_t*
    constantsTouched: []
    func_position:
      end: 600
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 600
    functionName: cli_htu32_free
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - MPOOL_FREE
    linkageType: ''
    returnType: void
    signature: void cli_htu32_free(struct cli_htu32 *s, mpool_t *mempool)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cli_htu32*
    constantsTouched: []
    func_position:
      end: 606
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 606
    functionName: cli_htu32_numitems
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cli_htu32_numitems(struct cli_htu32 *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclamav/hashtab.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - struct cli_hashtable*
    - FILE*
    constantsTouched: []
    func_position:
      end: 618
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 618
    functionName: cli_hashtab_store
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashtab_store(const struct cli_hashtable *s, FILE *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:623,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:624,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:625,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:629,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:631,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:633,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:635,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:636,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:637,1
    - Dst: printf
      Src: /src/clamav/libclamav/hashtab.c:638,1
    - Dst: PROFILE_REPORT
      Src: /src/clamav/libclamav/hashtab.c:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - s
    - name
    argTypes:
    - struct cli_hashtable*
    - char*
    constantsTouched: []
    func_position:
      end: 642
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 642
    functionName: cli_hashtab_generate_c
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - PROFILE_REPORT
    - printf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashtab_generate_c(const struct cli_hashtable *s, const
      char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/clamav/libclamav/hashtab.c:647,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/hashtab.c:650,1
    - Dst: cli_hashtab_insert
      Src: /src/clamav/libclamav/hashtab.c:651,1
    - Dst: strlen
      Src: /src/clamav/libclamav/hashtab.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - in
    - s
    argTypes:
    - FILE*
    - struct cli_hashtable*
    constantsTouched: []
    func_position:
      end: 654
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 654
    functionName: cli_hashtab_load
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - strlen
    - sscanf
    - cli_hashtab_insert
    - fgets
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashtab_load(FILE *in, struct cli_hashtable *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:659,1
    - Dst: nearest_power
      Src: /src/clamav/libclamav/hashtab.c:662,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/hashtab.c:667,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:670,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/hashtab.c:673,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:675,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - hs
    - initial_capacity
    - load_factor
    argTypes:
    - struct cli_hashset*
    - size_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 680
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 680
    functionName: cli_hashset_init
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 1
    functionsReached:
    - cli_max_malloc
    - nearest_power
    - cli_dbgmsg
    - free
    - cli_max_calloc
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashset_init(struct cli_hashset *hs, size_t initial_capacity,
      uint8_t load_factor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:685,1
    - Dst: nearest_power
      Src: /src/clamav/libclamav/hashtab.c:688,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/hashtab.c:694,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:696,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/hashtab.c:699,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/hashtab.c:701,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - hs
    - initial_capacity
    - load_factor
    - mempool
    argTypes:
    - struct cli_hashset*
    - size_t
    - uint8_t
    - mpool_t*
    constantsTouched: []
    func_position:
      end: 706
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 706
    functionName: cli_hashset_init_pool
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - MPOOL_MALLOC
    - MPOOL_FREE
    - nearest_power
    - cli_dbgmsg
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashset_init_pool(struct cli_hashset *hs, size_t initial_capacity,
      uint8_t load_factor, mpool_t *mempool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:710,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/hashtab.c:712,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/hashtab.c:713,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:715,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct cli_hashset*
    constantsTouched: []
    func_position:
      end: 720
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 720
    functionName: cli_hashset_destroy
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 3
    functionsReached:
    - cli_dbgmsg
    - MPOOL_FREE
    - free
    linkageType: ''
    returnType: void
    signature: void cli_hashset_destroy(struct cli_hashset *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_CONTAINS
      Src: /src/clamav/libclamav/hashtab.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - hs
    - key
    argTypes:
    - struct cli_hashset*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 745
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 745
    functionName: cli_hashset_search
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - BITMAP_CONTAINS
    linkageType: ''
    returnType: size_t
    signature: size_t cli_hashset_search(const struct cli_hashset *hs, const uint32_t
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_CONTAINS
      Src: /src/clamav/libclamav/hashtab.c:752,1
    - Dst: BITMAP_INSERT
      Src: /src/clamav/libclamav/hashtab.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - hs
    - key
    argTypes:
    - struct cli_hashset*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 758
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 758
    functionName: cli_hashset_addkey_internal
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - BITMAP_CONTAINS
    - BITMAP_INSERT
    linkageType: ''
    returnType: void
    signature: void cli_hashset_addkey_internal(struct cli_hashset *hs, const uint32_t
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hashtab.c:768,1
    - Dst: cli_hashset_init_pool
      Src: /src/clamav/libclamav/hashtab.c:772,1
    - Dst: cli_hashset_init
      Src: /src/clamav/libclamav/hashtab.c:774,1
    - Dst: BITMAP_CONTAINS
      Src: /src/clamav/libclamav/hashtab.c:781,1
    - Dst: cli_hashset_addkey_internal
      Src: /src/clamav/libclamav/hashtab.c:783,1
    - Dst: cli_hashset_destroy
      Src: /src/clamav/libclamav/hashtab.c:786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct cli_hashset*
    constantsTouched: []
    func_position:
      end: 790
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 790
    functionName: cli_hashset_grow
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_hashset_init_pool
    - cli_hashset_addkey_internal
    - cli_dbgmsg
    - BITMAP_CONTAINS
    - cli_hashset_init
    - cli_hashset_destroy
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashset_grow(struct cli_hashset *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashset_grow
      Src: /src/clamav/libclamav/hashtab.c:797,1
    - Dst: cli_hashset_addkey_internal
      Src: /src/clamav/libclamav/hashtab.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - hs
    - key
    argTypes:
    - struct cli_hashset*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 804
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 804
    functionName: cli_hashset_addkey
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 1
    functionsReached:
    - cli_hashset_addkey_internal
    - cli_hashset_grow
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashset_addkey(struct cli_hashset *hs, const uint32_t
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_CONTAINS
      Src: /src/clamav/libclamav/hashtab.c:809,1
    - Dst: BITMAP_REMOVE
      Src: /src/clamav/libclamav/hashtab.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hs
    - key
    argTypes:
    - struct cli_hashset*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 816
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 816
    functionName: cli_hashset_removekey
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - BITMAP_CONTAINS
    - BITMAP_REMOVE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hashset_removekey(struct cli_hashset *hs, const uint32_t
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_CONTAINS
      Src: /src/clamav/libclamav/hashtab.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hs
    - key
    argTypes:
    - struct cli_hashset*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 822
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 822
    functionName: cli_hashset_contains
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 1
    functionsReached:
    - BITMAP_CONTAINS
    linkageType: ''
    returnType: bool
    signature: bool cli_hashset_contains(const struct cli_hashset *hs, const uint32_t
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/hashtab.c:833,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:835,1
    - Dst: BITMAP_CONTAINS
      Src: /src/clamav/libclamav/hashtab.c:840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - hs
    - array
    argTypes:
    - struct cli_hashset*
    - uint32_t**
    constantsTouched: []
    func_position:
      end: 845
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 845
    functionName: cli_hashset_toarray
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_max_malloc
    - BITMAP_CONTAINS
    - cli_errmsg
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cli_hashset_toarray(const struct cli_hashset *hs, uint32_t
      **array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hs
    argTypes:
    - struct cli_hashset*
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: cli_hashset_init_noalloc
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cli_hashset_init_noalloc(struct cli_hashset *hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashset_contains
      Src: /src/clamav/libclamav/hashtab.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hs
    - key
    argTypes:
    - struct cli_hashset*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 859
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 859
    functionName: cli_hashset_contains_maybe_noalloc
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_hashset_contains
    linkageType: ''
    returnType: bool
    signature: bool cli_hashset_contains_maybe_noalloc(const struct cli_hashset *hs,
      const uint32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:870,1
    - Dst: cli_hashtab_init
      Src: /src/clamav/libclamav/hashtab.c:872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - m
    - keysize
    - valuesize
    - capacity
    argTypes:
    - struct cli_map*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 883
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 883
    functionName: cli_map_init
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_hashtab_init
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_map_init(struct cli_map *m, int32_t keysize, int32_t
      valuesize,\n                        int32_t capacity)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/hashtab.c:894,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/hashtab.c:904,1
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:910,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/hashtab.c:914,1
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:920,1
    - Dst: cli_hashtab_insert
      Src: /src/clamav/libclamav/hashtab.c:923,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - m
    - key
    - keysize
    argTypes:
    - struct cli_map*
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 929
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 929
    functionName: cli_map_addkey
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    - memset
    - cli_hashtab_insert
    - cli_hashtab_find
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_map_addkey(struct cli_map *m, const void *key, int32_t
      keysize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/hashtab.c:939,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:951,1
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:956,1
    - Dst: cli_hashtab_delete
      Src: /src/clamav/libclamav/hashtab.c:959,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - m
    - key
    - keysize
    argTypes:
    - struct cli_map*
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 962
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 962
    functionName: cli_map_removekey
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_hashtab_delete
    - memset
    - free
    - cli_hashtab_find
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_map_removekey(struct cli_map *m, const void *key, int32_t
      keysize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/hashtab.c:971,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:977,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/hashtab.c:980,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hashtab.c:982,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hashtab.c:986,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - m
    - value
    - valuesize
    argTypes:
    - struct cli_map*
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 990
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 990
    functionName: cli_map_setvalue
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_errmsg
    - cli_max_malloc
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_map_setvalue(struct cli_map *m, const void *value, int32_t
      valuesize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/hashtab.c:999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - m
    - key
    - keysize
    argTypes:
    - struct cli_map*
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1008
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1008
    functionName: cli_map_find
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - cli_hashtab_find
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_map_find(struct cli_map *m, const void *key, int32_t
      keysize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct cli_map*
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: cli_map_getvalue_size
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_map_getvalue_size(struct cli_map *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct cli_map*
    constantsTouched: []
    func_position:
      end: 1034
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1034
    functionName: cli_map_getvalue
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *cli_map_getvalue(struct cli_map *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_free
      Src: /src/clamav/libclamav/hashtab.c:1038,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:1044,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:1047,1
    - Dst: free
      Src: /src/clamav/libclamav/hashtab.c:1049,1
    - Dst: memset
      Src: /src/clamav/libclamav/hashtab.c:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct cli_map*
    constantsTouched: []
    func_position:
      end: 1053
      start: 1036
    functionDepth: 3
    functionLinenumber: 1036
    functionLinenumberEnd: 1053
    functionName: cli_map_delete
    functionSourceFile: /src/clamav/libclamav/hashtab.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_hashtab_free
    - free
    linkageType: ''
    returnType: void
    signature: void cli_map_delete(struct cli_map *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fid
    argTypes:
    - FileIdentifierDescriptor*
    constantsTouched: []
    func_position:
      end: 209
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 209
    functionName: getFileIdentifierDescriptorPaddingLength
    functionSourceFile: /src/clamav/libclamav/udf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getFileIdentifierDescriptorPaddingLength(const FileIdentifierDescriptor*
      const fid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/udf.h:213,1
    - Dst: getFileIdentifierDescriptorPaddingLength
      Src: /src/clamav/libclamav/udf.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fid
    argTypes:
    - FileIdentifierDescriptor*
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: getFileIdentifierDescriptorSize
    functionSourceFile: /src/clamav/libclamav/udf.h
    functionUses: 0
    functionsReached:
    - getFileIdentifierDescriptorPaddingLength
    - le16_to_host
    linkageType: ''
    returnType: size_t
    signature: size_t getFileIdentifierDescriptorSize(const FileIdentifierDescriptor*
      fid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.h:265,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fed
    argTypes:
    - FileEntryDescriptor*
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: getFileEntryDescriptorSize
    functionSourceFile: /src/clamav/libclamav/udf.h
    functionUses: 0
    functionsReached:
    - le32_to_host
    linkageType: ''
    returnType: size_t
    signature: size_t getFileEntryDescriptorSize(const FileEntryDescriptor* fed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/msdoc.c:63,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:67,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:72,1
    - Dst: calloc
      Src: /src/clamav/libclamav/msdoc.c:73,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/msdoc.c:81,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:84,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:101,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/msdoc.c:111,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:115,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/msdoc.c:130,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:132,1
    - Dst: iconv_open
      Src: /src/clamav/libclamav/msdoc.c:137,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/msdoc.c:140,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/msdoc.c:141,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/msdoc.c:149,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:151,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/msdoc.c:152,1
    - Dst: iconv
      Src: /src/clamav/libclamav/msdoc.c:160,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:167,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:185,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/msdoc.c:192,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:193,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 97
    argCount: 4
    argNames:
    - sctx
    - begin
    - sz
    - encoding
    argTypes:
    - summary_ctx_t*
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 197
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 197
    functionName: ole2_convert_utf
    functionSourceFile: /src/clamav/libclamav/msdoc.c
    functionUses: 0
    functionsReached:
    - calloc
    - UNUSEDPARAM
    - cli_warnmsg
    - cli_errmsg
    - cli_strerror
    - iconv
    - cli_dbgmsg
    - memcpy
    - cli_max_realloc
    - iconv_close
    - cli_max_calloc
    - iconv_open
    - free
    linkageType: ''
    returnType: char
    signature: char *ole2_convert_utf(summary_ctx_t *sctx, char *begin, size_t sz,
      const char *encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/msdoc.c:205,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:215,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:217,1
    - Dst: sum16_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:224,1
    - Dst: cli_jsonnull
      Src: /src/clamav/libclamav/msdoc.c:232,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:240,1
    - Dst: sum16_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:243,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:247,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:249,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:259,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:262,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:264,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:274,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:277,1
    - Dst: cli_jsondouble
      Src: /src/clamav/libclamav/msdoc.c:279,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:290,1
    - Dst: sum64_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:293,1
    - Dst: cli_jsondouble
      Src: /src/clamav/libclamav/msdoc.c:295,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:304,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/msdoc.c:308,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:317,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:321,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:330,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:334,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:343,1
    - Dst: sum16_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:346,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:351,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:361,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:364,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:366,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:375,1
    - Dst: sum64_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:378,1
    - Dst: cli_jsonint64
      Src: /src/clamav/libclamav/msdoc.c:380,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:389,1
    - Dst: sum64_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:392,1
    - Dst: cli_jsonint64
      Src: /src/clamav/libclamav/msdoc.c:394,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:400,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:411,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:414,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:423,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/msdoc.c:429,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/msdoc.c:433,1
    - Dst: ole2_convert_utf
      Src: /src/clamav/libclamav/msdoc.c:436,1
    - Dst: cl_base64_encode
      Src: /src/clamav/libclamav/msdoc.c:442,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:444,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:445,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/msdoc.c:449,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/msdoc.c:450,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:452,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:453,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:458,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:459,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:460,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:471,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:474,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:478,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/msdoc.c:488,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:492,1
    - Dst: ole2_convert_utf
      Src: /src/clamav/libclamav/msdoc.c:494,1
    - Dst: cl_base64_encode
      Src: /src/clamav/libclamav/msdoc.c:499,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:501,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/msdoc.c:505,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/msdoc.c:506,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:508,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:509,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:514,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:515,1
    - Dst: free
      Src: /src/clamav/libclamav/msdoc.c:516,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:527,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:529,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:531,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:532,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:543,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/msdoc.c:545,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:550,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 269
    argCount: 3
    argNames:
    - sctx
    - databuf
    - offset
    argTypes:
    - summary_ctx_t*
    - unsigned char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 556
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 556
    functionName: ole2_process_property
    functionSourceFile: /src/clamav/libclamav/msdoc.c
    functionUses: 0
    functionsReached:
    - cli_max_calloc
    - ole2_convert_utf
    - cl_base64_encode
    - cli_jsondouble
    - snprintf
    - cli_jsonstr
    - cli_jsonnull
    - strncpy
    - cli_jsonint
    - cli_json_timeout_cycle_check
    - cli_dbgmsg
    - sum32_endian_convert
    - cli_jsonbool
    - memcpy
    - sum16_endian_convert
    - sum64_endian_convert
    - cli_jsonint64
    - free
    linkageType: ''
    returnType: int
    signature: int ole2_process_property(summary_ctx_t *sctx, unsigned char *databuf,
      uint32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:644,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 2
    argNames:
    - sctx
    - propid
    argTypes:
    - summary_ctx_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 647
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 647
    functionName: ole2_translate_docsummary_propid
    functionSourceFile: /src/clamav/libclamav/msdoc.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void ole2_translate_docsummary_propid(summary_ctx_t *sctx, uint32_t
      propid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:711,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 2
    argNames:
    - sctx
    - propid
    argTypes:
    - summary_ctx_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 714
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 714
    functionName: ole2_translate_summary_propid
    functionSourceFile: /src/clamav/libclamav/msdoc.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void ole2_translate_summary_propid(summary_ctx_t *sctx, uint32_t propid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:725,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/msdoc.c:737,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:744,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:745,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:747,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:748,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:749,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:756,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/msdoc.c:764,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:778,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:780,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:783,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:784,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:785,1
    - Dst: ole2_translate_docsummary_propid
      Src: /src/clamav/libclamav/msdoc.c:791,1
    - Dst: ole2_translate_summary_propid
      Src: /src/clamav/libclamav/msdoc.c:794,1
    - Dst: ole2_process_property
      Src: /src/clamav/libclamav/msdoc.c:798,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 2
    argNames:
    - sctx
    - offset
    argTypes:
    - summary_ctx_t*
    - off_t
    constantsTouched: []
    func_position:
      end: 807
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 807
    functionName: ole2_summary_propset_json
    functionSourceFile: /src/clamav/libclamav/msdoc.c
    functionUses: 0
    functionsReached:
    - ole2_translate_summary_propid
    - ole2_process_property
    - fmap_need_off_once
    - ole2_translate_docsummary_propid
    - cli_dbgmsg
    - sum32_endian_convert
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ole2_summary_propset_json(summary_ctx_t *sctx, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:813,1
    - Dst: funmap
      Src: /src/clamav/libclamav/msdoc.c:816,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/msdoc.c:820,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:824,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:827,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:830,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:833,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:836,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:839,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:842,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:845,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:848,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:851,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:856,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:859,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:862,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:865,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/msdoc.c:868,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - sctx
    - retcode
    argTypes:
    - summary_ctx_t*
    - int
    constantsTouched: []
    func_position:
      end: 873
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 873
    functionName: cli_ole2_summary_json_cleanup
    functionSourceFile: /src/clamav/libclamav/msdoc.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - funmap
    - cli_jsonstr
    - cli_jsonarray
    linkageType: ''
    returnType: int
    signature: int cli_ole2_summary_json_cleanup(summary_ctx_t *sctx, int retcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:885,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:893,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:898,1
    - Dst: memset
      Src: /src/clamav/libclamav/msdoc.c:903,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/msdoc.c:907,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:908,1
    - Dst: fmap
      Src: /src/clamav/libclamav/msdoc.c:912,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:914,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:918,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/msdoc.c:922,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/msdoc.c:925,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/msdoc.c:929,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/msdoc.c:934,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:935,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:944,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/msdoc.c:946,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:949,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:952,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/msdoc.c:955,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:957,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:959,1
    - Dst: sum16_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:961,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:962,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:963,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:965,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:967,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:970,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msdoc.c:971,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:976,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/msdoc.c:978,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:981,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/msdoc.c:984,1
    - Dst: sum32_endian_convert
      Src: /src/clamav/libclamav/msdoc.c:986,1
    - Dst: ole2_summary_propset_json
      Src: /src/clamav/libclamav/msdoc.c:988,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:989,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/msdoc.c:994,1
    - Dst: cli_ole2_summary_json_cleanup
      Src: /src/clamav/libclamav/msdoc.c:997,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 91
    argCount: 3
    argNames:
    - ctx
    - fd
    - mode
    argTypes:
    - cli_ctx*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 998
      start: 875
    functionDepth: 6
    functionLinenumber: 875
    functionLinenumberEnd: 998
    functionName: cli_ole2_summary_json
    functionSourceFile: /src/clamav/libclamav/msdoc.c
    functionUses: 0
    functionsReached:
    - fmap
    - memset
    - cli_jsonobj
    - fmap_need_off_once
    - FSTAT
    - le16_to_host
    - cli_ole2_summary_json_cleanup
    - ole2_summary_propset_json
    - cli_dbgmsg
    - sum32_endian_convert
    - cli_jsonbool
    - memcpy
    - sum16_endian_convert
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int cli_ole2_summary_json(cli_ctx *ctx, int fd, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/unarj.c:177,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - decode_data
    - n
    argTypes:
    - arj_decode_t*
    - int
    constantsTouched: []
    func_position:
      end: 196
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 196
    functionName: fill_buf
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - fmap_need_off_once_len
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t fill_buf(arj_decode_t *decode_data, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill_buf
      Src: /src/clamav/libclamav/unarj.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - decode_data
    argTypes:
    - arj_decode_t*
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: init_getbits
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - fill_buf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t init_getbits(arj_decode_t *decode_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill_buf
      Src: /src/clamav/libclamav/unarj.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - decode_data
    - n
    argTypes:
    - arj_decode_t*
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: arj_getbits
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - fill_buf
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short arj_getbits(arj_decode_t *decode_data, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_getbits
      Src: /src/clamav/libclamav/unarj.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - decode_data
    argTypes:
    - arj_decode_t*
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: decode_start
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - init_getbits
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t decode_start(arj_decode_t *decode_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unarj.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ofd
    - data
    - length
    argTypes:
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: write_text
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - cli_writen
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t write_text(int ofd, unsigned char *data, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:243,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:261,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:279,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:294,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:322,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 98
    argCount: 6
    argNames:
    - decode_data
    - nchar
    - bitlen
    - tablebits
    - table
    - tablesize
    argTypes:
    - arj_decode_t*
    - int
    - unsigned char*
    - int
    - unsigned short*
    - int
    constantsTouched: []
    func_position:
      end: 339
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 339
    functionName: make_table
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t make_table(arj_decode_t *decode_data, int nchar, unsigned
      char *bitlen, int tablebits,\n                             unsigned short *table,
      int tablesize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:347,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:350,1
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:354,1
    - Dst: fill_buf
      Src: /src/clamav/libclamav/unarj.c:372,1
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:378,1
    - Dst: make_table
      Src: /src/clamav/libclamav/unarj.c:390,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - decode_data
    - nn
    - nbit
    - i_special
    argTypes:
    - arj_decode_t*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 395
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 395
    functionName: read_pt_len
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - fill_buf
    - arj_getbits
    - cli_dbgmsg
    - make_table
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t read_pt_len(arj_decode_t *decode_data, int nn, int nbit,
      int i_special)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:402,1
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:407,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:438,1
    - Dst: fill_buf
      Src: /src/clamav/libclamav/unarj.c:442,1
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:450,1
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:452,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:459,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:467,1
    - Dst: make_table
      Src: /src/clamav/libclamav/unarj.c:477,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 1
    argNames:
    - decode_data
    argTypes:
    - arj_decode_t*
    constantsTouched: []
    func_position:
      end: 482
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 482
    functionName: read_c_len
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - fill_buf
    - arj_getbits
    - cli_dbgmsg
    - make_table
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t read_c_len(arj_decode_t *decode_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:489,1
    - Dst: read_pt_len
      Src: /src/clamav/libclamav/unarj.c:490,1
    - Dst: read_c_len
      Src: /src/clamav/libclamav/unarj.c:491,1
    - Dst: read_pt_len
      Src: /src/clamav/libclamav/unarj.c:492,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:500,1
    - Dst: fill_buf
      Src: /src/clamav/libclamav/unarj.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - decode_data
    argTypes:
    - arj_decode_t*
    constantsTouched: []
    func_position:
      end: 514
      start: 484
    functionDepth: 5
    functionLinenumber: 484
    functionLinenumberEnd: 514
    functionName: decode_c
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - read_pt_len
    - arj_getbits
    - cli_dbgmsg
    - fill_buf
    - read_c_len
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t decode_c(arj_decode_t *decode_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:525,1
    - Dst: fill_buf
      Src: /src/clamav/libclamav/unarj.c:537,1
    - Dst: arj_getbits
      Src: /src/clamav/libclamav/unarj.c:540,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - decode_data
    argTypes:
    - arj_decode_t*
    constantsTouched: []
    func_position:
      end: 543
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 543
    functionName: decode_p
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - fill_buf
    - cli_dbgmsg
    - arj_getbits
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t decode_p(arj_decode_t *decode_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/unarj.c:553,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/unarj.c:554,1
    - Dst: decode_start
      Src: /src/clamav/libclamav/unarj.c:561,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:563,1
    - Dst: decode_c
      Src: /src/clamav/libclamav/unarj.c:570,1
    - Dst: write_text
      Src: /src/clamav/libclamav/unarj.c:575,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:576,1
    - Dst: decode_p
      Src: /src/clamav/libclamav/unarj.c:584,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:589,1
    - Dst: write_text
      Src: /src/clamav/libclamav/unarj.c:601,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:602,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:614,1
    - Dst: write_text
      Src: /src/clamav/libclamav/unarj.c:620,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:623,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 626
      start: 545
    functionDepth: 6
    functionLinenumber: 545
    functionLinenumberEnd: 626
    functionName: decode
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 5
    functionsReached:
    - write_text
    - decode_p
    - memset
    - cli_dbgmsg
    - decode_c
    - cli_max_calloc
    - decode_start
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t decode(arj_metadata_t *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARJ_GETBIT
      Src: /src/clamav/libclamav/unarj.c:664,1
    - Dst: ARJ_GETBITS
      Src: /src/clamav/libclamav/unarj.c:672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - decode_data
    argTypes:
    - arj_decode_t*
    constantsTouched: []
    func_position:
      end: 676
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 676
    functionName: decode_ptr
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - ARJ_GETBITS
    - ARJ_GETBIT
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t decode_ptr(arj_decode_t *decode_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ARJ_GETBIT
      Src: /src/clamav/libclamav/unarj.c:685,1
    - Dst: ARJ_GETBITS
      Src: /src/clamav/libclamav/unarj.c:693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - decode_data
    argTypes:
    - arj_decode_t*
    constantsTouched: []
    func_position:
      end: 697
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 697
    functionName: decode_len
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - ARJ_GETBITS
    - ARJ_GETBIT
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t decode_len(arj_decode_t *decode_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/unarj.c:708,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/unarj.c:709,1
    - Dst: init_getbits
      Src: /src/clamav/libclamav/unarj.c:716,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:718,1
    - Dst: decode_len
      Src: /src/clamav/libclamav/unarj.c:726,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:728,1
    - Dst: ARJ_GETBITS
      Src: /src/clamav/libclamav/unarj.c:733,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:735,1
    - Dst: write_text
      Src: /src/clamav/libclamav/unarj.c:743,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:744,1
    - Dst: decode_ptr
      Src: /src/clamav/libclamav/unarj.c:752,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:754,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:762,1
    - Dst: write_text
      Src: /src/clamav/libclamav/unarj.c:769,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:770,1
    - Dst: write_text
      Src: /src/clamav/libclamav/unarj.c:782,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:785,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 80
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 788
      start: 699
    functionDepth: 4
    functionLinenumber: 699
    functionLinenumberEnd: 788
    functionName: decode_f
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - ARJ_GETBITS
    - write_text
    - memset
    - decode_len
    - init_getbits
    - decode_ptr
    - cli_dbgmsg
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t decode_f(arj_metadata_t *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:797,1
    - Dst: MIN
      Src: /src/clamav/libclamav/unarj.c:801,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/unarj.c:802,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unarj.c:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - metadata
    - ofd
    - len
    argTypes:
    - arj_metadata_t*
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 815
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 815
    functionName: arj_unstore
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - MIN
    - cli_writen
    - cli_dbgmsg
    - fmap_need_off_once_len
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t arj_unstore(arj_metadata_t *metadata, int ofd, uint32_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/unarj.c:822,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/unarj.c:826,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 831
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 831
    functionName: is_arj_archive
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cli_dbgmsg
    - fmap_need_off_once
    linkageType: ''
    returnType: int
    signature: int is_arj_archive(arj_metadata_t *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/unarj.c:850,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/unarj.c:854,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:855,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:862,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:867,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/unarj.c:871,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:877,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:878,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:879,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:880,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:881,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:882,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:883,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:884,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:887,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:897,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/unarj.c:902,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/unarj.c:903,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:905,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/unarj.c:909,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:915,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/unarj.c:920,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/unarj.c:921,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:923,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/unarj.c:927,1
    - Dst: text_normalize_init
      Src: /src/clamav/libclamav/unarj.c:931,1
    - Dst: text_normalize_init
      Src: /src/clamav/libclamav/unarj.c:932,1
    - Dst: text_normalize_buffer
      Src: /src/clamav/libclamav/unarj.c:934,1
    - Dst: text_normalize_buffer
      Src: /src/clamav/libclamav/unarj.c:935,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:937,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:938,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/unarj.c:948,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:950,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:961,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:966,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 116
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 970
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 970
    functionName: arj_read_main_header
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - text_normalize_init
    - le16_to_host
    - fmap_readn
    - text_normalize_buffer
    - cli_readint16
    - fmap_need_offstr
    - cli_dbgmsg
    - CLI_STRNLEN
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: int
    signature: int arj_read_main_header(arj_metadata_t *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/unarj.c:988,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/unarj.c:990,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:993,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1000,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1005,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/unarj.c:1009,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/unarj.c:1014,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/unarj.c:1015,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1017,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1018,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1019,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1020,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1021,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1022,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1023,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1024,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1025,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1026,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1027,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1030,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1042,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/unarj.c:1047,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1049,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/unarj.c:1053,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1055,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/unarj.c:1059,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1065,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/unarj.c:1070,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1072,1
    - Dst: fmap_need_offstr
      Src: /src/clamav/libclamav/unarj.c:1076,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1078,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/unarj.c:1082,1
    - Dst: text_normalize_init
      Src: /src/clamav/libclamav/unarj.c:1086,1
    - Dst: text_normalize_init
      Src: /src/clamav/libclamav/unarj.c:1087,1
    - Dst: text_normalize_buffer
      Src: /src/clamav/libclamav/unarj.c:1089,1
    - Dst: text_normalize_buffer
      Src: /src/clamav/libclamav/unarj.c:1090,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1092,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1093,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/unarj.c:1094,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:1104,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/unarj.c:1109,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1111,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:1131,1
    - Dst: free
      Src: /src/clamav/libclamav/unarj.c:1136,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 147
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 1140
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 1140
    functionName: arj_read_file_header
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - text_normalize_init
    - CLI_STRNDUP
    - le16_to_host
    - fmap_readn
    - text_normalize_buffer
    - cli_readint16
    - fmap_need_offstr
    - cli_dbgmsg
    - CLI_STRNLEN
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t arj_read_file_header(arj_metadata_t *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/unarj.c:1144,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1145,1
    - Dst: is_arj_archive
      Src: /src/clamav/libclamav/unarj.c:1148,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1149,1
    - Dst: arj_read_main_header
      Src: /src/clamav/libclamav/unarj.c:1152,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - map
    - dirname
    - metadata
    argTypes:
    - fmap_t*
    - char*
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 1157
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1157
    functionName: cli_unarj_open
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - is_arj_archive
    - cli_dbgmsg
    - arj_read_main_header
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unarj_open(fmap_t *map, const char *dirname, arj_metadata_t
      *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1161,1
    - Dst: is_arj_archive
      Src: /src/clamav/libclamav/unarj.c:1166,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1167,1
    - Dst: arj_read_file_header
      Src: /src/clamav/libclamav/unarj.c:1170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dirname
    - metadata
    argTypes:
    - char*
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1159
    functionDepth: 3
    functionLinenumber: 1159
    functionLinenumberEnd: 1171
    functionName: cli_unarj_prepare_file
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - is_arj_archive
    - cli_dbgmsg
    - arj_read_file_header
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unarj_prepare_file(const char *dirname, arj_metadata_t
      *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1178,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1186,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/unarj.c:1190,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unarj.c:1191,1
    - Dst: open
      Src: /src/clamav/libclamav/unarj.c:1192,1
    - Dst: arj_unstore
      Src: /src/clamav/libclamav/unarj.c:1198,1
    - Dst: decode
      Src: /src/clamav/libclamav/unarj.c:1203,1
    - Dst: decode_f
      Src: /src/clamav/libclamav/unarj.c:1206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - dirname
    - metadata
    argTypes:
    - char*
    - arj_metadata_t*
    constantsTouched: []
    func_position:
      end: 1213
      start: 1173
    functionDepth: 5
    functionLinenumber: 1173
    functionLinenumberEnd: 1213
    functionName: cli_unarj_extract_file
    functionSourceFile: /src/clamav/libclamav/unarj.c
    functionUses: 0
    functionsReached:
    - snprintf
    - open
    - cli_dbgmsg
    - decode_f
    - decode
    - arj_unstore
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unarj_extract_file(const char *dirname, arj_metadata_t
      *metadata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:717,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:718,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:719,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:720,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:740,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:741,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:763,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:764,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 3
    argNames:
    - rk
    - key
    - keybits
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 794
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 794
    functionName: rijndaelSetupEncrypt
    functionSourceFile: /src/clamav/libclamav/rijndael.c
    functionUses: 0
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: int rijndaelSetupEncrypt(uint32_t *rk, const uint8_t *key, int keybits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rijndaelSetupEncrypt
      Src: /src/clamav/libclamav/rijndael.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - rk
    - key
    - keybits
    argTypes:
    - uint32_t*
    - uint8_t*
    - int
    constantsTouched: []
    func_position:
      end: 842
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 842
    functionName: rijndaelSetupDecrypt
    functionSourceFile: /src/clamav/libclamav/rijndael.c
    functionUses: 0
    functionsReached:
    - rijndaelSetupEncrypt
    linkageType: ''
    returnType: int
    signature: int rijndaelSetupDecrypt(uint32_t *rk, const uint8_t *key, int keybits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:855,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:856,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:857,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:858,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1002,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1009,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1016,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 84
    argCount: 4
    argNames:
    - rk
    - nrounds
    - plaintext
    - ciphertext
    argTypes:
    - uint32_t*
    - int
    - uint8_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 1024
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 1024
    functionName: rijndaelEncrypt
    functionSourceFile: /src/clamav/libclamav/rijndael.c
    functionUses: 0
    functionsReached:
    - PUTU32
    - GETU32
    linkageType: ''
    returnType: void
    signature: "void rijndaelEncrypt(const uint32_t *rk, int nrounds, const uint8_t
      plaintext[16],\n  uint8_t ciphertext[16])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:1038,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:1039,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:1040,1
    - Dst: GETU32
      Src: /src/clamav/libclamav/rijndael.c:1041,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1185,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1192,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1199,1
    - Dst: PUTU32
      Src: /src/clamav/libclamav/rijndael.c:1206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 84
    argCount: 4
    argNames:
    - rk
    - nrounds
    - ciphertext
    - plaintext
    argTypes:
    - uint32_t*
    - int
    - uint8_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 1207
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1207
    functionName: rijndaelDecrypt
    functionSourceFile: /src/clamav/libclamav/rijndael.c
    functionUses: 0
    functionsReached:
    - PUTU32
    - GETU32
    linkageType: ''
    returnType: void
    signature: "void rijndaelDecrypt(const uint32_t *rk, int nrounds, const uint8_t
      ciphertext[16],\n  uint8_t plaintext[16])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: cli_hex2int
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_hex2int(const char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:88,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:96,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:107,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - hex
    - ptr
    - len
    argTypes:
    - char*
    - uint16_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 122
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 122
    functionName: cli_realhex2ui
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 1
    functionsReached:
    - cli_hex2int
    linkageType: ''
    returnType: int
    signature: int cli_realhex2ui(const char *hex, uint16_t *ptr, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:129,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:132,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/str.c:137,1
    - Dst: cli_realhex2ui
      Src: /src/clamav/libclamav/str.c:141,1
    - Dst: free
      Src: /src/clamav/libclamav/str.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 146
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 146
    functionName: cli_hex2ui
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - strlen
    - free
    - cli_max_calloc
    - cli_errmsg
    - cli_realhex2ui
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t *cli_hex2ui(const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:153,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:156,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/str.c:161,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/str.c:165,1
    - Dst: free
      Src: /src/clamav/libclamav/str.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: cli_hex2str
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 2
    functionsReached:
    - cli_hex2str_to
    - strlen
    - free
    - cli_max_calloc
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char *cli_hex2str(const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:179,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - hex
    - ptr
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 194
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 194
    functionName: cli_hex2str_to
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 3
    functionsReached:
    - cli_hex2int
    linkageType: ''
    returnType: int
    signature: int cli_hex2str_to(const char *hex, char *ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:200,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:203,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 215
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 215
    functionName: cli_hex2num
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_hex2int
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int cli_hex2num(const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:222,1
    - Dst: cli_hex2num
      Src: /src/clamav/libclamav/str.c:225,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/str.c:227,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:229,1
    - Dst: cli_hex2num
      Src: /src/clamav/libclamav/str.c:235,1
    - Dst: free
      Src: /src/clamav/libclamav/str.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 238
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 238
    functionName: cli_xtoi
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_hex2num
    - cli_max_calloc
    - cli_errmsg
    - free
    linkageType: ''
    returnType: int
    signature: int cli_xtoi(const char *hex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/str.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - string
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: cli_str2hex
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 1
    functionsReached:
    - cli_max_calloc
    linkageType: ''
    returnType: char
    signature: char *cli_str2hex(const char *string, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:263,1
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:264,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/str.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 272
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 272
    functionName: cli_strbcasestr
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 2
    functionsReached:
    - strlen
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int cli_strbcasestr(const char *haystack, const char *needle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: cli_chomp
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 8
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int cli_chomp(char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:315,1
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:317,1
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:328,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/str.c:335,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:337,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/str.c:340,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - line
    - fieldno
    - delim
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 344
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 344
    functionName: cli_strtok
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 3
    functionsReached:
    - cli_max_malloc
    - strncpy
    - cli_errmsg
    - strchr
    linkageType: ''
    returnType: char
    signature: char *cli_strtok(const char *line, int fieldno, const char *delim)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:359,1
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:361,1
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:372,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/str.c:379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - input
    - fieldno
    - delim
    - output
    argTypes:
    - char*
    - int
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 383
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 383
    functionName: cli_strtokbuf
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 4
    functionsReached:
    - strncpy
    - strchr
    linkageType: ''
    returnType: char
    signature: "char *cli_strtokbuf(const char *input, int fieldno, const char *delim,\n
      \                   char *output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/clamav/libclamav/str.c:396,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/str.c:410,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - haystack
    - hs
    - needle
    - ns
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 417
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 417
    functionName: cli_memstr
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memchr
    linkageType: ''
    returnType: char
    signature: char *cli_memstr(const char *haystack, size_t hs, const char *needle,
      size_t ns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: cli_strrcpy
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char *cli_strrcpy(char *dest, const char *source)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/clamav/libclamav/str.c:440,1
    - Dst: toupper
      Src: /src/clamav/libclamav/str.c:441,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/str.c:443,1
    - Dst: strcspn
      Src: /src/clamav/libclamav/str.c:443,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/str.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 447
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 447
    functionName: __cli_strcasestr
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - tolower
    - strcspn
    - toupper
    linkageType: ''
    returnType: char
    signature: char *__cli_strcasestr(const char *haystack, const char *needle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/str.c:458,1
    - Dst: malloc
      Src: /src/clamav/libclamav/str.c:459,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/str.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 468
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 468
    functionName: __cli_strndup
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    - CLI_STRNLEN
    linkageType: ''
    returnType: char
    signature: char *__cli_strndup(const char *s, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: __cli_strnlen
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t __cli_strnlen(const char *s, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/str.c:504,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/str.c:512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - s
    - find
    - slen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 516
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 516
    functionName: __cli_strnstr
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *__cli_strnstr(const char *s, const char *find, size_t slen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - buffer
    - delim
    - token_count
    - tokens
    argTypes:
    - char*
    - char
    - size_t
    - char**
    constantsTouched: []
    func_position:
      end: 537
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 537
    functionName: cli_strtokenize
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 4
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: "size_t cli_strtokenize(char *buffer, const char delim, const size_t
      token_count,\n                       const char **tokens)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/clamav/libclamav/str.c:578,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/str.c:635,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/str.c:637,1
    - Dst: isupper
      Src: /src/clamav/libclamav/str.c:638,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 70
    argCount: 4
    argNames:
    - nptr
    - n
    - endptr
    - base
    argTypes:
    - char*
    - size_t
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 661
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 661
    functionName: cli_strntol
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 1
    functionsReached:
    - isupper
    - isalpha
    - isspace
    - isdigit
    linkageType: ''
    returnType: long
    signature: long cli_strntol(const char *nptr, size_t n, char **endptr, register
      int base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/clamav/libclamav/str.c:698,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/str.c:736,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/str.c:738,1
    - Dst: isupper
      Src: /src/clamav/libclamav/str.c:739,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 65
    argCount: 4
    argNames:
    - nptr
    - n
    - endptr
    - base
    argTypes:
    - char*
    - size_t
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 762
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 762
    functionName: cli_strntoul
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 1
    functionsReached:
    - isupper
    - isalpha
    - isspace
    - isdigit
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long cli_strntoul(const char *nptr, size_t n, char **endptr,\n
      \                          register int base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strntol
      Src: /src/clamav/libclamav/str.c:792,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 5
    argNames:
    - buf
    - buf_size
    - fail_at_nondigit
    - base
    - result
    argTypes:
    - char*
    - size_t
    - int
    - int
    - long*
    constantsTouched: []
    func_position:
      end: 808
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 808
    functionName: cli_strntol_wrap
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - cli_strntol
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_strntol_wrap(const char *buf, size_t buf_size,\n                            int
      fail_at_nondigit, int base, long *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strntoul
      Src: /src/clamav/libclamav/str.c:839,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 5
    argNames:
    - buf
    - buf_size
    - fail_at_nondigit
    - base
    - result
    argTypes:
    - char*
    - size_t
    - int
    - int
    - unsigned long*
    constantsTouched: []
    func_position:
      end: 855
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 855
    functionName: cli_strntoul_wrap
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached:
    - cli_strntoul
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_strntoul_wrap(const char *buf, size_t buf_size,\n                             int
      fail_at_nondigit, int base,\n                             unsigned long *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - buffer
    - delim
    - token_count
    - tokens
    - token_skip
    argTypes:
    - char*
    - char
    - size_t
    - char**
    - size_t
    constantsTouched: []
    func_position:
      end: 895
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 895
    functionName: cli_ldbtokenize
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t cli_ldbtokenize(char *buffer, const char delim, const size_t
      token_count,\n                       const char **tokens, size_t token_skip)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/libclamav/str.c:904,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 908
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 908
    functionName: cli_isnumber
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 2
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int cli_isnumber(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - u
    - dst
    argTypes:
    - uint16_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 933
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 933
    functionName: output_utf8
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t output_utf8(uint16_t u, unsigned char *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/str.c:943,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:945,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/str.c:951,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/str.c:952,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/str.c:952,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/str.c:953,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/str.c:954,1
    - Dst: isxdigit
      Src: /src/clamav/libclamav/str.c:954,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:955,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:955,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:957,1
    - Dst: output_utf8
      Src: /src/clamav/libclamav/str.c:967,1
    - Dst: cli_max_realloc_or_free
      Src: /src/clamav/libclamav/str.c:977,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 979
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 979
    functionName: cli_unescape
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 3
    functionsReached:
    - cli_hex2int
    - isxdigit
    - cli_max_malloc
    - output_utf8
    - cli_max_realloc_or_free
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char *cli_unescape(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:1014,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:1014,1
    - Dst: cli_hex2int
      Src: /src/clamav/libclamav/str.c:1016,1
    - Dst: textbuffer_ensure_capacity
      Src: /src/clamav/libclamav/str.c:1029,1
    - Dst: output_utf8
      Src: /src/clamav/libclamav/str.c:1031,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/str.c:1043,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - struct text_buffer*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1047
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1047
    functionName: cli_textbuffer_append_normalize
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 1
    functionsReached:
    - cli_hex2int
    - textbuffer_ensure_capacity
    - textbuffer_putc
    - output_utf8
    linkageType: ''
    returnType: int
    signature: "int cli_textbuffer_append_normalize(struct text_buffer *buf, const
      char *str,\n                                    size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1059
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1059
    functionName: cli_hexnibbles
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_hexnibbles(char *str, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/str.c:1068,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/str.c:1082,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/str.c:1083,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/str.c:1088,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/str.c:1090,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - filepath
    - filepath_len
    - filebase
    argTypes:
    - char*
    - size_t
    - char**
    constantsTouched: []
    func_position:
      end: 1099
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1099
    functionName: cli_basename
    functionSourceFile: /src/clamav/libclamav/str.c
    functionUses: 3
    functionsReached:
    - CLI_STRNLEN
    - CLI_STRNDUP
    - cli_dbgmsg
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_basename(const char *filepath, size_t filepath_len,\n
      \                       char **filebase)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - vaddr
    - sects
    - nsects
    - err
    argTypes:
    - uint32_t
    - struct cli_exe_section*
    - uint16_t
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: cli_rawaddr
    functionSourceFile: /src/clamav/libclamav/macho.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_rawaddr(uint32_t vaddr, struct cli_exe_section *sects,
      uint16_t nsects, unsigned int *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:220,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:224,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:243,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:247,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:250,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:255,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:259,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:272,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:277,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:277,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:281,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:283,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:286,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:289,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:292,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:298,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:301,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:304,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:307,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:310,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:310,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:314,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:315,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:315,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:321,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:323,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:328,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:329,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:330,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:341,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:344,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:345,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:346,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:350,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/macho.c:351,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:354,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:355,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:356,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:360,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/macho.c:361,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:365,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:366,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:369,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:370,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:375,1
    - Dst: cli_max_realloc_or_free
      Src: /src/clamav/libclamav/macho.c:378,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/macho.c:380,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:386,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:387,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:388,1
    - Dst: EC64
      Src: /src/clamav/libclamav/macho.c:392,1
    - Dst: EC64
      Src: /src/clamav/libclamav/macho.c:393,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:394,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:395,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/macho.c:397,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:400,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:401,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:402,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:406,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:407,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:408,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:409,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:410,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:411,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:414,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/macho.c:416,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:420,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:421,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:422,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:423,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:424,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:426,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:431,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:440,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:441,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:442,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:453,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:454,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:455,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:459,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:467,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:468,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:469,1
    - Dst: EC64
      Src: /src/clamav/libclamav/macho.c:473,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/macho.c:477,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:478,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:482,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:489,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/macho.c:491,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:493,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:494,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:498,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:507,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 269
    argCount: 2
    argNames:
    - ctx
    - fileinfo
    argTypes:
    - cli_ctx*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 511
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 511
    functionName: cli_scanmacho
    functionSourceFile: /src/clamav/libclamav/macho.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - strncpy
    - EC32
    - fmap_readn
    - cli_rawaddr
    - cli_dbgmsg
    - EC64
    - cli_max_realloc_or_free
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanmacho(cli_ctx *ctx, struct cli_exe_info *fileinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_scanmacho
      Src: /src/clamav/libclamav/macho.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - fileinfo
    argTypes:
    - cli_ctx*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: cli_machoheader
    functionSourceFile: /src/clamav/libclamav/macho.c
    functionUses: 0
    functionsReached:
    - cli_scanmacho
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_machoheader(cli_ctx *ctx, struct cli_exe_info *fileinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:527,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:528,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:538,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:542,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:547,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:550,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/macho.c:552,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:553,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:557,1
    - Dst: EC32
      Src: /src/clamav/libclamav/macho.c:558,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:559,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:560,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:561,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:567,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/macho.c:571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 578
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 578
    functionName: cli_scanmacho_unibin
    functionSourceFile: /src/clamav/libclamav/macho.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - EC32
    - fmap_readn
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanmacho_unibin(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/libclamav/macho.c:588,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/macho.c:590,1
    - Dst: cli_bytecode_context_setctx
      Src: /src/clamav/libclamav/macho.c:595,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:597,1
    - Dst: cli_bytecode_runhook
      Src: /src/clamav/libclamav/macho.c:598,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:599,1
    - Dst: cli_bytecode_context_getresult_file
      Src: /src/clamav/libclamav/macho.c:602,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:604,1
    - Dst: lseek
      Src: /src/clamav/libclamav/macho.c:606,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/macho.c:608,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/macho.c:609,1
    - Dst: close
      Src: /src/clamav/libclamav/macho.c:616,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/macho.c:620,1
    - Dst: free
      Src: /src/clamav/libclamav/macho.c:622,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/macho.c:626,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 630
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 630
    functionName: cli_unpackmacho
    functionSourceFile: /src/clamav/libclamav/macho.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_magic_scan_desc
    - close
    - cli_bytecode_context_destroy
    - cli_bytecode_context_setctx
    - cli_bytecode_runhook
    - cli_unlink
    - cli_dbgmsg
    - cli_bytecode_context_getresult_file
    - cli_bytecode_context_alloc
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unpackmacho(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:65,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:66,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:67,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:68,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:69,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:70,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:71,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:72,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:73,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - hfsHeaderRecord*
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: headerrecord_to_host
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - be16_to_host
    - be32_to_host
    linkageType: ''
    returnType: void
    signature: void headerrecord_to_host(hfsHeaderRecord *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:80,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pfx
    - hdr
    argTypes:
    - char*
    - hfsHeaderRecord*
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: headerrecord_print
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void headerrecord_print(const char *pfx, hfsHeaderRecord *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:91,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:92,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - hfsNodeDescriptor*
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: nodedescriptor_to_host
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - be16_to_host
    - be32_to_host
    linkageType: ''
    returnType: void
    signature: void nodedescriptor_to_host(hfsNodeDescriptor *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pfx
    - node
    argTypes:
    - char*
    - hfsNodeDescriptor*
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: nodedescriptor_print
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void nodedescriptor_print(const char *pfx, hfsNodeDescriptor *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/hfsplus.c:108,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:109,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:110,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:112,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fork
    argTypes:
    - hfsPlusForkData*
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: forkdata_to_host
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - be32_to_host
    - be64_to_host
    linkageType: ''
    returnType: void
    signature: void forkdata_to_host(hfsPlusForkData *fork)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pfx
    - fork
    argTypes:
    - char*
    - hfsPlusForkData*
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: forkdata_print
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void forkdata_print(const char *pfx, hfsPlusForkData *fork)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:143,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/hfsplus.c:146,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:148,1
    - Dst: malloc
      Src: /src/clamav/libclamav/hfsplus.c:152,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:154,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:158,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:160,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:161,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:165,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:167,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:171,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:172,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:173,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:174,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:175,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:178,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:179,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:181,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:182,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:183,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:187,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:191,1
    - Dst: forkdata_to_host
      Src: /src/clamav/libclamav/hfsplus.c:195,1
    - Dst: forkdata_to_host
      Src: /src/clamav/libclamav/hfsplus.c:196,1
    - Dst: forkdata_to_host
      Src: /src/clamav/libclamav/hfsplus.c:197,1
    - Dst: forkdata_to_host
      Src: /src/clamav/libclamav/hfsplus.c:198,1
    - Dst: forkdata_to_host
      Src: /src/clamav/libclamav/hfsplus.c:199,1
    - Dst: forkdata_print
      Src: /src/clamav/libclamav/hfsplus.c:202,1
    - Dst: forkdata_print
      Src: /src/clamav/libclamav/hfsplus.c:203,1
    - Dst: forkdata_print
      Src: /src/clamav/libclamav/hfsplus.c:204,1
    - Dst: forkdata_print
      Src: /src/clamav/libclamav/hfsplus.c:205,1
    - Dst: forkdata_print
      Src: /src/clamav/libclamav/hfsplus.c:206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    argCount: 2
    argNames:
    - ctx
    - header
    argTypes:
    - cli_ctx*
    - hfsPlusVolumeHeader**
    constantsTouched: []
    func_position:
      end: 210
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 210
    functionName: hfsplus_volumeheader
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - forkdata_to_host
    - fmap_need_off_once
    - be16_to_host
    - forkdata_print
    - be32_to_host
    - cli_dbgmsg
    - memcpy
    - malloc
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hfsplus_volumeheader(cli_ctx *ctx, hfsPlusVolumeHeader **header)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:245,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/hfsplus.c:248,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:250,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:255,1
    - Dst: nodedescriptor_to_host
      Src: /src/clamav/libclamav/hfsplus.c:256,1
    - Dst: nodedescriptor_print
      Src: /src/clamav/libclamav/hfsplus.c:257,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:259,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:263,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:268,1
    - Dst: headerrecord_to_host
      Src: /src/clamav/libclamav/hfsplus.c:269,1
    - Dst: headerrecord_print
      Src: /src/clamav/libclamav/hfsplus.c:270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:277,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:283,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:292,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 6
    argNames:
    - ctx
    - volHeader
    - nodeDesc
    - headerRec
    - headerType
    - name
    argTypes:
    - cli_ctx*
    - hfsPlusVolumeHeader*
    - hfsNodeDescriptor*
    - hfsHeaderRecord*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 299
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 299
    functionName: hfsplus_readheader
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - nodedescriptor_to_host
    - fmap_need_off_once
    - nodedescriptor_print
    - headerrecord_to_host
    - cli_dbgmsg
    - headerrecord_print
    - memcpy
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t hfsplus_readheader(cli_ctx *ctx, hfsPlusVolumeHeader *volHeader,
      hfsNodeDescriptor *nodeDesc,\n                                     hfsHeaderRecord
      *headerRec, int headerType, const char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hfsplus.c:330,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:334,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:342,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/hfsplus.c:347,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/hfsplus.c:353,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:355,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:358,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:365,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:369,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:376,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:378,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:386,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:391,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:399,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/hfsplus.c:411,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:413,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/hfsplus.c:418,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:420,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:430,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:435,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hfsplus.c:452,1
    - Dst: close
      Src: /src/clamav/libclamav/hfsplus.c:463,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/hfsplus.c:470,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:472,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 115
    argCount: 7
    argNames:
    - ctx
    - volHeader
    - extHeader
    - fork
    - dirname
    - filename
    - orig_filename
    argTypes:
    - cli_ctx*
    - hfsPlusVolumeHeader*
    - hfsHeaderRecord*
    - hfsPlusForkData*
    - char*
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 477
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 477
    functionName: hfsplus_scanfile
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - close
    - UNUSEDPARAM
    - cli_unlink
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_checklimits
    - cli_gentempfd
    - free
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t hfsplus_scanfile(cli_ctx *ctx, hfsPlusVolumeHeader *volHeader,
      hfsHeaderRecord *extHeader,\n                                   hfsPlusForkData
      *fork, const char *dirname, char **filename, char *orig_filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hfsplus.c:484,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:488,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:492,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - volHeader
    - catHeader
    argTypes:
    - cli_ctx*
    - hfsPlusVolumeHeader*
    - hfsHeaderRecord*
    constantsTouched: []
    func_position:
      end: 501
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 501
    functionName: hfsplus_validate_catalog
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hfsplus_validate_catalog(cli_ctx *ctx, hfsPlusVolumeHeader
      *volHeader, hfsHeaderRecord *catHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/clamav/libclamav/hfsplus.c:521,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/hfsplus.c:526,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:528,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:541,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:545,1
    - Dst: hfsplus_fetch_node
      Src: /src/clamav/libclamav/hfsplus.c:550,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:552,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:555,1
    - Dst: nodedescriptor_to_host
      Src: /src/clamav/libclamav/hfsplus.c:558,1
    - Dst: nodedescriptor_print
      Src: /src/clamav/libclamav/hfsplus.c:559,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:561,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:566,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:585,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:591,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:597,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:598,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:599,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:600,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:601,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:608,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:615,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/hfsplus.c:620,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:621,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:622,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:623,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:626,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:635,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:651,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 114
    argCount: 9
    argNames:
    - ctx
    - volHeader
    - attrHeader
    - expectedCnid
    - name
    - nameLen
    - found
    - record
    - recordSize
    argTypes:
    - cli_ctx*
    - hfsPlusVolumeHeader*
    - hfsHeaderRecord*
    - uint32_t
    - uint8_t[]
    - uint32_t
    - int*
    - uint8_t[]
    - size_t*
    constantsTouched: []
    func_position:
      end: 656
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 656
    functionName: hfsplus_check_attribute
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - hfsplus_fetch_node
    - nodedescriptor_to_host
    - be16_to_host
    - cli_max_malloc
    - nodedescriptor_print
    - cli_dbgmsg
    - MIN
    - memcmp
    - memcpy
    - be32_to_host
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hfsplus_check_attribute(cli_ctx *ctx, hfsPlusVolumeHeader
      *volHeader, hfsHeaderRecord *attrHeader, uint32_t expectedCnid, const uint8_t
      name[], uint32_t nameLen, int *found, uint8_t record[], size_t *recordSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hfsplus.c:674,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:678,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:690,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:692,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:706,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:711,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:716,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:721,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:727,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:728,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:734,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:747,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hfsplus.c:751,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:752,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 8
    argNames:
    - ctx
    - volHeader
    - catHeader
    - extHeader
    - catFork
    - node
    - buff
    - buffSize
    argTypes:
    - cli_ctx*
    - hfsPlusVolumeHeader*
    - hfsHeaderRecord*
    - hfsHeaderRecord*
    - hfsPlusForkData*
    - uint32_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 759
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 759
    functionName: hfsplus_fetch_node
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 1
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - fmap_readn
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t hfsplus_fetch_node(cli_ctx *ctx, hfsPlusVolumeHeader *volHeader,
      hfsHeaderRecord *catHeader,\n                                     hfsHeaderRecord
      *extHeader, hfsPlusForkData *catFork, uint32_t node, uint8_t *buff,\n                                     size_t
      buffSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:779,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:780,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:785,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:786,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:787,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:788,1
    - Dst: lseek
      Src: /src/clamav/libclamav/hfsplus.c:792,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:793,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:798,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:799,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:804,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:805,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:806,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:807,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:810,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:811,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:815,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:816,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/hfsplus.c:818,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:820,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:826,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:833,1
    - Dst: lseek
      Src: /src/clamav/libclamav/hfsplus.c:838,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:839,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:844,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:845,1
    - Dst: lseek
      Src: /src/clamav/libclamav/hfsplus.c:852,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:853,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:858,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:859,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:864,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 2
    argNames:
    - fd
    - size
    argTypes:
    - int
    - size_t*
    constantsTouched: []
    func_position:
      end: 868
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 868
    functionName: hfsplus_seek_to_cmpf_resource
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_readn
    - cli_dbgmsg
    - be16_to_host
    - memcmp
    - be32_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hfsplus_seek_to_cmpf_resource(int fd, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:890,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:891,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:896,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/hfsplus.c:897,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:899,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:904,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:905,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:911,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:912,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:918,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - fd
    - numBlocks
    - table
    argTypes:
    - int
    - uint32_t*
    - hfsPlusResourceBlockTable**
    constantsTouched: []
    func_position:
      end: 923
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 923
    functionName: hfsplus_read_block_table
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - cli_max_malloc
    - cli_dbgmsg
    - free
    - cli_readn
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hfsplus_read_block_table(int fd, uint32_t *numBlocks, hfsPlusResourceBlockTable
      **table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/clamav/libclamav/hfsplus.c:946,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/hfsplus.c:951,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:953,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:965,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:969,1
    - Dst: hfsplus_fetch_node
      Src: /src/clamav/libclamav/hfsplus.c:974,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:976,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:979,1
    - Dst: nodedescriptor_to_host
      Src: /src/clamav/libclamav/hfsplus.c:982,1
    - Dst: nodedescriptor_print
      Src: /src/clamav/libclamav/hfsplus.c:983,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:985,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:990,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1010,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1020,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/hfsplus.c:1033,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:1034,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1037,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:1041,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:1042,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1043,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1048,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1055,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:1059,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/hfsplus.c:1062,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/hfsplus.c:1063,1
    - Dst: forkdata_to_host
      Src: /src/clamav/libclamav/hfsplus.c:1070,1
    - Dst: forkdata_print
      Src: /src/clamav/libclamav/hfsplus.c:1071,1
    - Dst: forkdata_to_host
      Src: /src/clamav/libclamav/hfsplus.c:1072,1
    - Dst: forkdata_print
      Src: /src/clamav/libclamav/hfsplus.c:1073,1
    - Dst: hfsplus_check_attribute
      Src: /src/clamav/libclamav/hfsplus.c:1075,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1076,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1081,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/hfsplus.c:1084,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hfsplus.c:1089,1
    - Dst: cbswap32
      Src: /src/clamav/libclamav/hfsplus.c:1094,1
    - Dst: cbswap32
      Src: /src/clamav/libclamav/hfsplus.c:1095,1
    - Dst: cbswap64
      Src: /src/clamav/libclamav/hfsplus.c:1096,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1100,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/hfsplus.c:1106,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1108,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1117,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1124,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/hfsplus.c:1129,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1135,1
    - Dst: malloc
      Src: /src/clamav/libclamav/hfsplus.c:1140,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1142,1
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/hfsplus.c:1155,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1159,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1162,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1165,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1168,1
    - Dst: inflate
      Src: /src/clamav/libclamav/hfsplus.c:1176,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1178,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/hfsplus.c:1183,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1185,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/hfsplus.c:1188,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1192,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:1196,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1217,1
    - Dst: hfsplus_scanfile
      Src: /src/clamav/libclamav/hfsplus.c:1222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1223,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1228,1
    - Dst: safe_open
      Src: /src/clamav/libclamav/hfsplus.c:1233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1234,1
    - Dst: hfsplus_seek_to_cmpf_resource
      Src: /src/clamav/libclamav/hfsplus.c:1239,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1240,1
    - Dst: hfsplus_read_block_table
      Src: /src/clamav/libclamav/hfsplus.c:1245,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1246,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1261,1
    - Dst: lseek
      Src: /src/clamav/libclamav/hfsplus.c:1263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1264,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/hfsplus.c:1275,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1276,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1285,1
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/hfsplus.c:1294,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1295,1
    - Dst: inflate
      Src: /src/clamav/libclamav/hfsplus.c:1309,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1311,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/hfsplus.c:1316,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1317,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1328,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/hfsplus.c:1333,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1334,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/hfsplus.c:1347,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1348,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1354,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1357,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/hfsplus.c:1365,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1370,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1373,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1377,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1383,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hfsplus.c:1386,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/hfsplus.c:1393,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1399,1
    - Dst: close
      Src: /src/clamav/libclamav/hfsplus.c:1404,1
    - Dst: hfsplus_scanfile
      Src: /src/clamav/libclamav/hfsplus.c:1411,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1413,1
    - Dst: hfsplus_scanfile
      Src: /src/clamav/libclamav/hfsplus.c:1419,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1421,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1426,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1430,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/hfsplus.c:1438,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1448,1
    - Dst: close
      Src: /src/clamav/libclamav/hfsplus.c:1451,1
    - Dst: close
      Src: /src/clamav/libclamav/hfsplus.c:1454,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/hfsplus.c:1458,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1460,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/hfsplus.c:1464,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1469,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1472,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1475,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1478,1
    CyclomaticComplexity: 133
    EdgeCount: 133
    ICount: 440
    argCount: 6
    argNames:
    - ctx
    - volHeader
    - catHeader
    - extHeader
    - attrHeader
    - dirname
    argTypes:
    - cli_ctx*
    - hfsPlusVolumeHeader*
    - hfsHeaderRecord*
    - hfsHeaderRecord*
    - hfsHeaderRecord*
    - char*
    constantsTouched: []
    func_position:
      end: 1482
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 1482
    functionName: hfsplus_walk_catalog
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - hfsplus_check_attribute
    - cli_warnmsg
    - safe_open
    - inflate
    - cli_readn
    - hfsplus_seek_to_cmpf_resource
    - lseek
    - cli_errmsg
    - cli_dbgmsg
    - MIN
    - inflateEnd
    - cli_writen
    - close
    - hfsplus_fetch_node
    - cli_unlink
    - cbswap32
    - nodedescriptor_to_host
    - hfsplus_read_block_table
    - cli_max_malloc
    - cli_gentempfd
    - inflateInit2
    - malloc
    - memcpy
    - free
    - forkdata_to_host
    - cli_codepage_to_utf8
    - hfsplus_scanfile
    - forkdata_print
    - nodedescriptor_print
    - be16_to_host
    - cbswap64
    - be32_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t hfsplus_walk_catalog(cli_ctx *ctx, hfsPlusVolumeHeader
      *volHeader, hfsHeaderRecord *catHeader,\n                                       hfsHeaderRecord
      *extHeader, hfsHeaderRecord *attrHeader, const char *dirname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:1500,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1505,1
    - Dst: hfsplus_volumeheader
      Src: /src/clamav/libclamav/hfsplus.c:1507,1
    - Dst: hfsplus_readheader
      Src: /src/clamav/libclamav/hfsplus.c:1523,1
    - Dst: hfsplus_readheader
      Src: /src/clamav/libclamav/hfsplus.c:1528,1
    - Dst: hfsplus_readheader
      Src: /src/clamav/libclamav/hfsplus.c:1534,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/hfsplus.c:1542,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:1543,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/hfsplus.c:1547,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hfsplus.c:1548,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1552,1
    - Dst: hfsplus_validate_catalog
      Src: /src/clamav/libclamav/hfsplus.c:1558,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1560,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hfsplus.c:1562,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/hfsplus.c:1562,1
    - Dst: hfsplus_walk_catalog
      Src: /src/clamav/libclamav/hfsplus.c:1567,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/hfsplus.c:1576,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1578,1
    - Dst: free
      Src: /src/clamav/libclamav/hfsplus.c:1581,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1585
      start: 1485
    functionDepth: 5
    functionLinenumber: 1485
    functionLinenumberEnd: 1585
    functionName: cli_scanhfsplus
    functionSourceFile: /src/clamav/libclamav/hfsplus.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cl_strerror
    - cli_rmdirs
    - mkdir
    - hfsplus_validate_catalog
    - cli_dbgmsg
    - free
    - hfsplus_volumeheader
    - hfsplus_readheader
    - cli_errmsg
    - hfsplus_walk_catalog
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanhfsplus(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/jpeg.c:265,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:266,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:276,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:281,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/jpeg.c:284,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:296,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/jpeg.c:306,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - 'off'
    argTypes:
    - cli_ctx*
    - size_t*
    constantsTouched: []
    func_position:
      end: 310
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 310
    functionName: jpeg_check_photoshop_8bim
    functionSourceFile: /src/clamav/libclamav/jpeg.c
    functionUses: 0
    functionsReached:
    - fmap_need_off_once
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - memcmp
    - be32_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t jpeg_check_photoshop_8bim(cli_ctx *ctx, size_t *off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:328,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:331,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:337,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:341,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:343,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:354,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/jpeg.c:358,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:359,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:361,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:373,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:374,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:376,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:387,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:391,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:398,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/jpeg.c:400,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:401,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:403,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/jpeg.c:407,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:408,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:412,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:413,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:415,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:421,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:422,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:424,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:435,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:435,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:435,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:436,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:436,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:438,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:442,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:443,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:444,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:454,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:455,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:456,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:460,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:461,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:470,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:478,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:478,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:478,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:479,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:479,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:481,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:485,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:486,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:487,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:492,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:493,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:497,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:498,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:504,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:504,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:504,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:505,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:505,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:506,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:509,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:517,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:517,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:517,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:518,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:518,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:521,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:523,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:531,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:531,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:531,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:532,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:532,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:534,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:538,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:539,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:540,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:544,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:545,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:549,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:550,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:557,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:566,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:566,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:566,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:567,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:567,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:572,1
    - Dst: jpeg_check_photoshop_8bim
      Src: /src/clamav/libclamav/jpeg.c:575,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:584,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/jpeg.c:593,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:593,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:593,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jpeg.c:594,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jpeg.c:594,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:595,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:598,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:615,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:628,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:632,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:636,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:640,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:644,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:647,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:648,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:655,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:657,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:665,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:670,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:671,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:676,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:681,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jpeg.c:685,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jpeg.c:688,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/jpeg.c:689,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 310
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 705
      start: 312
    functionDepth: 5
    functionLinenumber: 312
    functionLinenumberEnd: 705
    functionName: cli_parsejpeg
    functionSourceFile: /src/clamav/libclamav/jpeg.c
    functionUses: 0
    functionsReached:
    - jpeg_check_photoshop_8bim
    - cli_warnmsg
    - strlen
    - cli_append_potentially_unwanted
    - fmap_readn
    - cli_dbgmsg
    - be16_to_host
    - memcmp
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_parsejpeg(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - a
    - key
    - keylength
    argTypes:
    - struct arc4_state*
    - uint8_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 51
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 51
    functionName: arc4_init
    functionSourceFile: /src/clamav/libclamav/arc4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arc4_init(struct arc4_state *a, const uint8_t *key, unsigned keylength)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - s
    - data
    - len
    argTypes:
    - struct arc4_state*
    - uint8_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: arc4_apply
    functionSourceFile: /src/clamav/libclamav/arc4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arc4_apply(struct arc4_state *s, uint8_t *data, unsigned len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: arc4_init
      Src: /src/clamav/libclamav/arc4.c:95,1
    - Dst: strlen
      Src: /src/clamav/libclamav/arc4.c:95,1
    - Dst: strlen
      Src: /src/clamav/libclamav/arc4.c:96,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/arc4.c:97,1
    - Dst: arc4_apply
      Src: /src/clamav/libclamav/arc4.c:98,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/arc4.c:99,1
    - Dst: printf
      Src: /src/clamav/libclamav/arc4.c:100,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/arc4.c:103,1
    - Dst: arc4_apply
      Src: /src/clamav/libclamav/arc4.c:105,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/arc4.c:106,1
    - Dst: printf
      Src: /src/clamav/libclamav/arc4.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 110
    functionName: main
    functionSourceFile: /src/clamav/libclamav/arc4.c
    functionUses: 3
    functionsReached:
    - strlen
    - arc4_apply
    - printf
    - arc4_init
    - gettimeofday
    - memcpy
    - memcmp
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - scur
    - mydlptr
    - buffer
    - buffersize
    argTypes:
    - char**
    - uint8_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: doubledl
    functionSourceFile: /src/clamav/libclamav/petite.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int doubledl(char **scur, uint8_t *mydlptr, char *buffer, uint32_t
      buffersize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:112,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:114,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:117,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:168,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:171,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:176,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:180,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:207,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:210,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:218,1
    - Dst: memmove
      Src: /src/clamav/libclamav/petite.c:219,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:221,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:229,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:231,1
    - Dst: cli_rebuildpe
      Src: /src/clamav/libclamav/petite.c:232,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:233,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:234,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:237,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:251,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:253,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:257,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:261,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:266,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:267,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:269,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:269,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:271,1
    - Dst: memmove
      Src: /src/clamav/libclamav/petite.c:276,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:286,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:288,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:292,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:293,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:297,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:298,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/petite.c:302,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:304,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:331,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:340,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:368,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:368,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:369,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:380,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:382,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:386,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:386,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:387,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:396,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:397,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:401,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:402,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:406,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:407,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:417,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:418,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:422,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:423,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:437,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:438,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:442,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:443,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:450,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:451,1
    - Dst: doubledl
      Src: /src/clamav/libclamav/petite.c:455,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:456,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:466,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:466,1
    - Dst: free
      Src: /src/clamav/libclamav/petite.c:467,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:489,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:490,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:491,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:497,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:498,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:499,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:504,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:508,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:509,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:511,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/petite.c:512,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:513,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:514,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/petite.c:515,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/petite.c:516,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 319
    argCount: 11
    argNames:
    - buf
    - minrva
    - bufsz
    - sections
    - sectcount
    - Imagebase
    - pep
    - desc
    - version
    - ResRva
    - ResSize
    argTypes:
    - char*
    - uint32_t
    - uint32_t
    - struct cli_exe_section*
    - unsigned int
    - uint32_t
    - uint32_t
    - int
    - int
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 524
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 524
    functionName: petite_inflate2x_1to9
    functionSourceFile: /src/clamav/libclamav/petite.c
    functionUses: 0
    functionsReached:
    - cli_rebuildpe
    - cli_readint32
    - CLI_ISCONTAINED
    - cli_dbgmsg
    - cli_max_realloc
    - doubledl
    - memmove
    - free
    linkageType: ''
    returnType: int
    signature: int petite_inflate2x_1to9(char *buf, uint32_t minrva, uint32_t bufsz,
      struct cli_exe_section *sections, unsigned int sectcount, uint32_t Imagebase,
      uint32_t pep, int desc, int version, uint32_t ResRva, uint32_t ResSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_unfsg
      Src: /src/clamav/libclamav/fsg.c:54,1
    - Dst: cli_rebuildpe
      Src: /src/clamav/libclamav/fsg.c:61,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fsg.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 8
    argNames:
    - source
    - dest
    - ssize
    - dsize
    - rva
    - base
    - ep
    - file
    argTypes:
    - char*
    - char*
    - int
    - int
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: unfsg_200
    functionSourceFile: /src/clamav/libclamav/fsg.c
    functionUses: 0
    functionsReached:
    - cli_rebuildpe
    - cli_unfsg
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int unfsg_200(const char *source, char *dest, int ssize, int dsize,
      uint32_t rva, uint32_t base, uint32_t ep, int file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_unfsg
      Src: /src/clamav/libclamav/fsg.c:76,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fsg.c:115,1
    - Dst: cli_rebuildpe
      Src: /src/clamav/libclamav/fsg.c:118,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fsg.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 9
    argNames:
    - source
    - dest
    - ssize
    - dsize
    - sections
    - sectcount
    - base
    - ep
    - file
    argTypes:
    - char*
    - char*
    - int
    - int
    - struct cli_exe_section*
    - int
    - uint32_t
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 123
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 123
    functionName: unfsg_133
    functionSourceFile: /src/clamav/libclamav/fsg.c
    functionUses: 0
    functionsReached:
    - cli_rebuildpe
    - cli_unfsg
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int unfsg_133(const char *source, char *dest, int ssize, int dsize,
      struct cli_exe_section *sections, int sectcount, uint32_t base, uint32_t ep,
      int file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/iso9660.c:53,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/iso9660.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - iso
    - block
    - temp
    argTypes:
    - iso9660_t*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: needblock
    functionSourceFile: /src/clamav/libclamav/iso9660.c
    functionUses: 0
    functionsReached:
    - fmap_need_off_once
    - fmap_need_off
    linkageType: ''
    returnType: void
    signature: void *needblock(const iso9660_t *iso, unsigned int block, int temp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/iso9660.c:63,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:67,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:73,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/iso9660.c:77,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/iso9660.c:78,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/iso9660.c:87,1
    - Dst: close
      Src: /src/clamav/libclamav/iso9660.c:90,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/iso9660.c:92,1
    - Dst: free
      Src: /src/clamav/libclamav/iso9660.c:97,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - iso
    - block
    - len
    argTypes:
    - iso9660_t*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 99
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 99
    functionName: iso_scan_file
    functionSourceFile: /src/clamav/libclamav/iso9660.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - close
    - cli_warnmsg
    - cli_unlink
    - cli_dbgmsg
    - cli_gentempfd
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t iso_scan_file(const iso9660_t *iso, unsigned int block,
      unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/iso9660.c:108,1
    - Dst: cli_utf16_to_utf8
      Src: /src/clamav/libclamav/iso9660.c:111,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/iso9660.c:113,1
    - Dst: free
      Src: /src/clamav/libclamav/iso9660.c:115,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/iso9660.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - iso
    - src
    - len
    argTypes:
    - iso9660_t*
    - void*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 121
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 121
    functionName: iso_string
    functionSourceFile: /src/clamav/libclamav/iso9660.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_utf16_to_utf8
    - strncpy
    - free
    linkageType: ''
    returnType: char
    signature: char *iso_string(iso9660_t *iso, const void *src, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:129,1
    - Dst: MIN
      Src: /src/clamav/libclamav/iso9660.c:133,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:138,1
    - Dst: cli_hashset_contains
      Src: /src/clamav/libclamav/iso9660.c:142,1
    - Dst: cli_hashset_addkey
      Src: /src/clamav/libclamav/iso9660.c:146,1
    - Dst: needblock
      Src: /src/clamav/libclamav/iso9660.c:150,1
    - Dst: MIN
      Src: /src/clamav/libclamav/iso9660.c:155,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:162,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:167,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:180,1
    - Dst: iso_string
      Src: /src/clamav/libclamav/iso9660.c:183,1
    - Dst: memchr
      Src: /src/clamav/libclamav/iso9660.c:184,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:189,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:191,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:193,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:193,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/iso9660.c:194,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:200,1
    - Dst: iso_parse_dir
      Src: /src/clamav/libclamav/iso9660.c:204,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/iso9660.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:207,1
    - Dst: iso_scan_file
      Src: /src/clamav/libclamav/iso9660.c:209,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/iso9660.c:220,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 3
    argNames:
    - iso
    - block
    - len
    argTypes:
    - iso9660_t*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 224
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 224
    functionName: iso_parse_dir
    functionSourceFile: /src/clamav/libclamav/iso9660.c
    functionUses: 1
    functionsReached:
    - cli_hashset_addkey
    - iso_scan_file
    - cli_readint32
    - cli_matchmeta
    - cli_hashset_contains
    - iso_parse_dir
    - memchr
    - cli_dbgmsg
    - cli_checklimits
    - needblock
    - fmap_unneed_ptr
    - MIN
    - iso_string
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t iso_parse_dir(iso9660_t *iso, unsigned int block, unsigned
      int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/iso9660.c:240,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/iso9660.c:245,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:257,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/iso9660.c:266,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/iso9660.c:269,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/iso9660.c:296,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:307,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:310,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:313,1
    - Dst: ISOSTRING
      Src: /src/clamav/libclamav/iso9660.c:313,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:314,1
    - Dst: ISOSTRING
      Src: /src/clamav/libclamav/iso9660.c:314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:316,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:316,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:317,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:317,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:317,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:319,1
    - Dst: ISOSTRING
      Src: /src/clamav/libclamav/iso9660.c:319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:320,1
    - Dst: ISOSTRING
      Src: /src/clamav/libclamav/iso9660.c:320,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:321,1
    - Dst: ISOSTRING
      Src: /src/clamav/libclamav/iso9660.c:321,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:322,1
    - Dst: ISOSTRING
      Src: /src/clamav/libclamav/iso9660.c:322,1
    - Dst: ISOTIME
      Src: /src/clamav/libclamav/iso9660.c:327,1
    - Dst: ISOTIME
      Src: /src/clamav/libclamav/iso9660.c:328,1
    - Dst: ISOTIME
      Src: /src/clamav/libclamav/iso9660.c:329,1
    - Dst: ISOTIME
      Src: /src/clamav/libclamav/iso9660.c:330,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:332,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:332,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:333,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:333,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:334,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:334,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:335,1
    - Dst: cbswap32
      Src: /src/clamav/libclamav/iso9660.c:335,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:335,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:336,1
    - Dst: cbswap32
      Src: /src/clamav/libclamav/iso9660.c:336,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:336,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:337,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:340,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/iso9660.c:344,1
    - Dst: cli_hashset_init
      Src: /src/clamav/libclamav/iso9660.c:350,1
    - Dst: iso_parse_dir
      Src: /src/clamav/libclamav/iso9660.c:356,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:356,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/iso9660.c:356,1
    - Dst: cli_hashset_destroy
      Src: /src/clamav/libclamav/iso9660.c:357,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 124
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 387
      start: 226
    functionDepth: 5
    functionLinenumber: 226
    functionLinenumberEnd: 387
    functionName: cli_scaniso
    functionSourceFile: /src/clamav/libclamav/iso9660.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    - cbswap32
    - cli_memstr
    - fmap_need_off_once
    - ISOTIME
    - cli_dbgmsg
    - fmap_unneed_off
    - ISOSTRING
    - cli_hashset_init
    - memcmp
    - iso_parse_dir
    - cli_hashset_destroy
    - fmap_need_off
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scaniso(cli_ctx *ctx, size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/table.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: tableCreate
    functionSourceFile: /src/clamav/libclamav/table.c
    functionUses: 2
    functionsReached:
    - calloc
    linkageType: ''
    returnType: struct table
    signature: 'struct table *

      tableCreate(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/table.c:51,1
    - Dst: free
      Src: /src/clamav/libclamav/table.c:59,1
    - Dst: free
      Src: /src/clamav/libclamav/table.c:60,1
    - Dst: free
      Src: /src/clamav/libclamav/table.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - table
    argTypes:
    - table_t*
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: tableDestroy
    functionSourceFile: /src/clamav/libclamav/table.c
    functionUses: 2
    functionsReached:
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void tableDestroy(table_t *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/table.c:78,1
    - Dst: malloc
      Src: /src/clamav/libclamav/table.c:81,1
    - Dst: assert
      Src: /src/clamav/libclamav/table.c:89,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/table.c:94,1
    - Dst: malloc
      Src: /src/clamav/libclamav/table.c:103,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/table.c:107,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/table.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - table
    - key
    - value
    argTypes:
    - table_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 116
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 116
    functionName: tableInsert
    functionSourceFile: /src/clamav/libclamav/table.c
    functionUses: 2
    functionsReached:
    - malloc
    - cli_dbgmsg
    - assert
    - cli_safer_strdup
    linkageType: ''
    returnType: int
    signature: int tableInsert(table_t *table, const char *key, int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/table.c:132,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/table.c:145,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/table.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - table_t*
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 154
    functionName: tableFind
    functionSourceFile: /src/clamav/libclamav/table.c
    functionUses: 7
    functionsReached:
    - strcasecmp
    - cli_dbgmsg
    - assert
    linkageType: ''
    returnType: int
    signature: int tableFind(const table_t *table, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/table.c:164,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/table.c:170,1
    - Dst: tableInsert
      Src: /src/clamav/libclamav/table.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - table
    - key
    - new_value
    argTypes:
    - table_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: tableUpdate
    functionSourceFile: /src/clamav/libclamav/table.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - tableInsert
    - assert
    linkageType: ''
    returnType: int
    signature: int tableUpdate(table_t *table, const char *key, int new_value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/table.c:186,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/table.c:192,1
    - Dst: free
      Src: /src/clamav/libclamav/table.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - table_t*
    - char*
    constantsTouched: []
    func_position:
      end: 198
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 198
    functionName: tableRemove
    functionSourceFile: /src/clamav/libclamav/table.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void tableRemove(table_t *table, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - table
    - arg
    argTypes:
    - table_t*
    - void*
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: tableIterate
    functionSourceFile: /src/clamav/libclamav/table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tableIterate(table_t *table, void (*callback)(char *key, int value,
      void *arg), void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/events.c:53,1
    - Dst: calloc
      Src: /src/clamav/libclamav/events.c:57,1
    - Dst: free
      Src: /src/clamav/libclamav/events.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - max_event
    argTypes:
    - unsigned
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: cli_events_new
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 1
    functionsReached:
    - free
    - calloc
    linkageType: ''
    returnType: cli_events_t
    signature: cli_events_t *cli_events_new(unsigned max_event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/events.c:72,1
    - Dst: free
      Src: /src/clamav/libclamav/events.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ev
    argTypes:
    - cli_events_t*
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: cli_events_free
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cli_events_free(cli_events_t *ev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/events.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - amount
    argTypes:
    - cli_events_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: cli_event_error_oom
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void cli_event_error_oom(cli_events_t *ctx, uint32_t amount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:93,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:98,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:102,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - id
    - name
    - type
    - multiple
    argTypes:
    - cli_events_t*
    - unsigned
    - char*
    - enum ev_type
    - enum multiple_handling
    constantsTouched: []
    func_position:
      end: 117
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 117
    functionName: cli_event_define
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 1
    functionsReached:
    - cli_event_error_str
    linkageType: ''
    returnType: int
    signature: "int cli_event_define(cli_events_t *ctx, unsigned id,\n                     const
      char *name, enum ev_type type, enum multiple_handling multiple)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_events_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: get_event
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - cli_event_error_str
    linkageType: ''
    returnType: struct cli_event
    signature: struct cli_event *get_event(cli_events_t *ctx, unsigned id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_realloc
      Src: /src/clamav/libclamav/events.c:135,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/events.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - ev
    - val
    argTypes:
    - cli_events_t*
    - struct cli_event*
    - union ev_val*
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: ev_chain
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - cli_event_error_oom
    - cli_safer_realloc
    linkageType: ''
    returnType: void
    signature: void ev_chain(cli_events_t *ctx, struct cli_event *ev, union ev_val
      *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_events_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: cli_event_get_name
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - get_event
    linkageType: ''
    returnType: char
    signature: char *cli_event_get_name(cli_events_t *ctx, unsigned id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:155,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:159,1
    - Dst: ev_chain
      Src: /src/clamav/libclamav/events.c:174,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - id
    - arg
    argTypes:
    - cli_events_t*
    - unsigned
    - uint64_t
    constantsTouched: []
    func_position:
      end: 181
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 181
    functionName: cli_event_int
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - ev_chain
    - get_event
    - cli_event_error_str
    linkageType: ''
    returnType: void
    signature: void cli_event_int(cli_events_t *ctx, unsigned id, uint64_t arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:186,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:190,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/events.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_events_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: cli_event_time_start
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 1
    functionsReached:
    - get_event
    - cli_event_error_str
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void cli_event_time_start(cli_events_t *ctx, unsigned id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:201,1
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:202,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:206,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/events.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - id
    - nestedid
    argTypes:
    - cli_events_t*
    - unsigned
    - unsigned
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: cli_event_time_nested_start
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - get_event
    - cli_event_error_str
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void cli_event_time_nested_start(cli_events_t *ctx, unsigned id, unsigned
      nestedid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:218,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:222,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/events.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_events_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: cli_event_time_stop
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 1
    functionsReached:
    - get_event
    - cli_event_error_str
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void cli_event_time_stop(cli_events_t *ctx, unsigned id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:232,1
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:233,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:237,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/events.c:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - id
    - nestedid
    argTypes:
    - cli_events_t*
    - unsigned
    - unsigned
    constantsTouched: []
    func_position:
      end: 243
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 243
    functionName: cli_event_time_nested_stop
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - get_event
    - cli_event_error_str
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void cli_event_time_nested_stop(cli_events_t *ctx, unsigned id, unsigned
      nestedid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ev_chain
      Src: /src/clamav/libclamav/events.c:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - ev
    - str
    argTypes:
    - cli_events_t*
    - struct cli_event*
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: event_string
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - ev_chain
    linkageType: ''
    returnType: void
    signature: void event_string(cli_events_t *ctx, struct cli_event *ev, const char
      *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/events.c:270,1
    - Dst: event_string
      Src: /src/clamav/libclamav/events.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - cli_events_t*
    - char*
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: cli_event_error_str
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 7
    functionsReached:
    - cli_warnmsg
    - event_string
    linkageType: ''
    returnType: void
    signature: void cli_event_error_str(cli_events_t *ctx, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:276,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:280,1
    - Dst: event_string
      Src: /src/clamav/libclamav/events.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - id
    - str
    argTypes:
    - cli_events_t*
    - unsigned
    - char*
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 5
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: cli_event_string
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - event_string
    - get_event
    - cli_event_error_str
    linkageType: ''
    returnType: void
    signature: void cli_event_string(cli_events_t *ctx, unsigned id, const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:288,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:292,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/events.c:300,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/events.c:303,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/events.c:311,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/events.c:314,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - id
    - data
    - len
    argTypes:
    - cli_events_t*
    - unsigned
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 322
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 322
    functionName: cli_event_data
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_event
    - cli_event_error_str
    - cli_event_error_oom
    linkageType: ''
    returnType: void
    signature: void cli_event_data(cli_events_t *ctx, unsigned id, const void *data,
      uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:326,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/events.c:330,1
    - Dst: CrcUpdate
      Src: /src/clamav/libclamav/events.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - id
    - data
    - len
    argTypes:
    - cli_events_t*
    - unsigned
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 5
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: cli_event_fastdata
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - get_event
    - cli_event_error_str
    - CrcUpdate
    linkageType: ''
    returnType: void
    signature: void cli_event_fastdata(cli_events_t *ctx, unsigned id, const void
      *data, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/events.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_events_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: cli_event_count
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 1
    functionsReached:
    - cli_event_int
    linkageType: ''
    returnType: void
    signature: void cli_event_count(cli_events_t *ctx, unsigned id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:346,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/events.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - id
    - val
    - count
    argTypes:
    - cli_events_t*
    - unsigned
    - union ev_val*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: cli_event_get
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 1
    functionsReached:
    - memcpy
    - get_event
    linkageType: ''
    returnType: void
    signature: void cli_event_get(cli_events_t *ctx, unsigned id, union ev_val *val,
      uint32_t *count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:357,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:361,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:362,1
    - Dst: free
      Src: /src/clamav/libclamav/events.c:363,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:367,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:370,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - type
    - val
    - count
    argTypes:
    - enum ev_type
    - union ev_val*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 380
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 380
    functionName: ev_debug
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: void
    signature: void ev_debug(enum ev_type type, union ev_val *val, uint32_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum ev_type
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: evtype
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *evtype(enum ev_type type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:403,1
    - Dst: evtype
      Src: /src/clamav/libclamav/events.c:406,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:409,1
    - Dst: ev_debug
      Src: /src/clamav/libclamav/events.c:411,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:413,1
    - Dst: ev_debug
      Src: /src/clamav/libclamav/events.c:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_events_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 416
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 416
    functionName: cli_event_debug
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - get_event
    - cli_dbgmsg
    - ev_debug
    - evtype
    linkageType: ''
    returnType: void
    signature: void cli_event_debug(cli_events_t *ctx, unsigned id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_debug
      Src: /src/clamav/libclamav/events.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_events_t*
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: cli_event_debug_all
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - cli_event_debug
    linkageType: ''
    returnType: void
    signature: void cli_event_debug_all(cli_events_t *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/events.c:434,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/events.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - type
    - v1
    - v2
    - count
    argTypes:
    - enum ev_type
    - union ev_val*
    - union ev_val*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: ev_diff
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ev_diff(enum ev_type type, union ev_val *v1, union ev_val *v2,
      uint32_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:450,1
    - Dst: get_event
      Src: /src/clamav/libclamav/events.c:451,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/events.c:457,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:461,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:471,1
    - Dst: ev_debug
      Src: /src/clamav/libclamav/events.c:472,1
    - Dst: ev_debug
      Src: /src/clamav/libclamav/events.c:473,1
    - Dst: ev_diff
      Src: /src/clamav/libclamav/events.c:478,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:480,1
    - Dst: ev_debug
      Src: /src/clamav/libclamav/events.c:481,1
    - Dst: ev_debug
      Src: /src/clamav/libclamav/events.c:482,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - ctx1
    - ctx2
    - id
    argTypes:
    - cli_events_t*
    - cli_events_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 488
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 488
    functionName: cli_event_diff
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - ev_diff
    - cli_warnmsg
    - ev_debug
    - cli_dbgmsg
    - get_event
    linkageType: ''
    returnType: int
    signature: int cli_event_diff(cli_events_t *ctx1, cli_events_t *ctx2, unsigned
      id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/events.c:494,1
    - Dst: filter
      Src: /src/clamav/libclamav/events.c:500,1
    - Dst: cli_event_diff
      Src: /src/clamav/libclamav/events.c:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ctx1
    - ctx2
    - filter
    argTypes:
    - cli_events_t*
    - cli_events_t*
    - compare_filter_t
    constantsTouched: []
    func_position:
      end: 505
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 505
    functionName: cli_event_diff_all
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached:
    - cli_event_diff
    - cli_dbgmsg
    - filter
    linkageType: ''
    returnType: int
    signature: int cli_event_diff_all(cli_events_t *ctx1, cli_events_t *ctx2, compare_filter_t
      filter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_events_t*
    constantsTouched: []
    func_position:
      end: 512
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 512
    functionName: cli_event_errors
    functionSourceFile: /src/clamav/libclamav/events.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_event_errors(cli_events_t *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/clamav/libclamav/others_common.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: cli_ctx_tls_key_alloc
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: void
    signature: void cli_ctx_tls_key_alloc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/clamav/libclamav/others_common.c:89,1
    - Dst: pthread_setspecific
      Src: /src/clamav/libclamav/others_common.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: cli_logg_setup
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - pthread_once
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void cli_logg_setup(const cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/clamav/libclamav/others_common.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: cli_logg_unsetup
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void cli_logg_unsetup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/clamav/libclamav/others_common.c:101,1
    - Dst: pthread_getspecific
      Src: /src/clamav/libclamav/others_common.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: cli_getctx
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    - pthread_once
    linkageType: ''
    returnType: void
    signature: void *cli_getctx(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: cli_logg_setup
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_logg_setup(const cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: cli_getctx
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *cli_getctx(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: cli_logg_unsetup
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_logg_unsetup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/others_common.c:128,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/others_common.c:129,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/others_common.c:130,1
    - Dst: clrs_eprint
      Src: /src/clamav/libclamav/others_common.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - severity
    - fullmsg
    - msg
    - context
    argTypes:
    - enum cl_msg
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: clrs_eprint_callback
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - clrs_eprint
    linkageType: ''
    returnType: void
    signature: void clrs_eprint_callback(enum cl_msg severity, const char *fullmsg,
      const char *msg, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - callback
    argTypes:
    - clcb_msg
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: cl_set_clcb_msg
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_set_clcb_msg(clcb_msg callback)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSGCODE
      Src: /src/clamav/libclamav/others_common.c:152,1
    - Dst: msg_callback
      Src: /src/clamav/libclamav/others_common.c:153,1
    - Dst: cli_getctx
      Src: /src/clamav/libclamav/others_common.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: cli_warnmsg
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 65
    functionsReached:
    - msg_callback
    - cli_getctx
    - MSGCODE
    linkageType: ''
    returnType: void
    signature: void cli_warnmsg(const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSGCODE
      Src: /src/clamav/libclamav/others_common.c:158,1
    - Dst: msg_callback
      Src: /src/clamav/libclamav/others_common.c:159,1
    - Dst: cli_getctx
      Src: /src/clamav/libclamav/others_common.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: cli_errmsg
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 139
    functionsReached:
    - msg_callback
    - cli_getctx
    - MSGCODE
    linkageType: ''
    returnType: void
    signature: void cli_errmsg(const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSGCODE
      Src: /src/clamav/libclamav/others_common.c:164,1
    - Dst: msg_callback
      Src: /src/clamav/libclamav/others_common.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: cli_infomsg
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 2
    functionsReached:
    - msg_callback
    - MSGCODE
    linkageType: ''
    returnType: void
    signature: void cli_infomsg(const cli_ctx *ctx, const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSGCODE
      Src: /src/clamav/libclamav/others_common.c:171,1
    - Dst: msg_callback
      Src: /src/clamav/libclamav/others_common.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: cli_infomsg_simple
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - msg_callback
    - MSGCODE
    linkageType: ''
    returnType: void
    signature: void cli_infomsg_simple(const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/others_common.c:177,1
    - Dst: cli_get_debug_flag
      Src: /src/clamav/libclamav/others_common.c:177,1
    - Dst: MSGCODE
      Src: /src/clamav/libclamav/others_common.c:178,1
    - Dst: clrs_eprint
      Src: /src/clamav/libclamav/others_common.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: cli_dbgmsg
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 295
    functionsReached:
    - clrs_eprint
    - UNLIKELY
    - cli_get_debug_flag
    - MSGCODE
    linkageType: ''
    returnType: void
    signature: void cli_dbgmsg(const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/others_common.c:185,1
    - Dst: cli_get_debug_flag
      Src: /src/clamav/libclamav/others_common.c:185,1
    - Dst: MSGCODE
      Src: /src/clamav/libclamav/others_common.c:186,1
    - Dst: clrs_eprint
      Src: /src/clamav/libclamav/others_common.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: cli_dbgmsg_no_inline
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - clrs_eprint
    - UNLIKELY
    - cli_get_debug_flag
    - MSGCODE
    linkageType: ''
    returnType: void
    signature: void cli_dbgmsg_no_inline(const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/libclamav/others_common.c:196,1
    - Dst: vsnprintf
      Src: /src/clamav/libclamav/others_common.c:197,1
    - Dst: va_end
      Src: /src/clamav/libclamav/others_common.c:198,1
    - Dst: clrs_eprint
      Src: /src/clamav/libclamav/others_common.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: cli_eprintf
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 1
    functionsReached:
    - va_start
    - clrs_eprint
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: size_t
    signature: size_t cli_eprintf(const char *str, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regcomp
      Src: /src/clamav/libclamav/others_common.c:211,1
    - Dst: cli_regexec
      Src: /src/clamav/libclamav/others_common.c:212,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/others_common.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - str
    - regex
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: cli_matchregex
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - cli_regcomp
    - cli_regfree
    - cli_regexec
    linkageType: ''
    returnType: int
    signature: int cli_matchregex(const char *str, const char *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others_common.c:224,1
    - Dst: malloc
      Src: /src/clamav/libclamav/others_common.c:229,1
    - Dst: perror
      Src: /src/clamav/libclamav/others_common.c:232,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 238
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: cli_max_malloc
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 32
    functionsReached:
    - cli_warnmsg
    - malloc
    - perror
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void *cli_max_malloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others_common.c:245,1
    - Dst: calloc
      Src: /src/clamav/libclamav/others_common.c:250,1
    - Dst: perror
      Src: /src/clamav/libclamav/others_common.c:253,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 259
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 259
    functionName: cli_max_calloc
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 26
    functionsReached:
    - cli_warnmsg
    - perror
    - calloc
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void *cli_max_calloc(size_t nmemb, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:266,1
    - Dst: realloc
      Src: /src/clamav/libclamav/others_common.c:270,1
    - Dst: perror
      Src: /src/clamav/libclamav/others_common.c:273,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 279
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 279
    functionName: cli_safer_realloc
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 2
    functionsReached:
    - perror
    - realloc
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void *cli_safer_realloc(void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:286,1
    - Dst: realloc
      Src: /src/clamav/libclamav/others_common.c:290,1
    - Dst: perror
      Src: /src/clamav/libclamav/others_common.c:293,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:294,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 305
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 305
    functionName: cli_safer_realloc_or_free
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - free
    - perror
    - realloc
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void *cli_safer_realloc_or_free(void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others_common.c:312,1
    - Dst: realloc
      Src: /src/clamav/libclamav/others_common.c:317,1
    - Dst: perror
      Src: /src/clamav/libclamav/others_common.c:320,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: cli_max_realloc
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 10
    functionsReached:
    - cli_warnmsg
    - perror
    - realloc
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void *cli_max_realloc(void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others_common.c:333,1
    - Dst: realloc
      Src: /src/clamav/libclamav/others_common.c:338,1
    - Dst: perror
      Src: /src/clamav/libclamav/others_common.c:341,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:342,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 353
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 353
    functionName: cli_max_realloc_or_free
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 4
    functionsReached:
    - perror
    - cli_warnmsg
    - realloc
    - free
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void *cli_max_realloc_or_free(void *ptr, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:360,1
    - Dst: strdup
      Src: /src/clamav/libclamav/others_common.c:364,1
    - Dst: perror
      Src: /src/clamav/libclamav/others_common.c:367,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:368,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 373
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 373
    functionName: cli_safer_strdup
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 28
    functionsReached:
    - strlen
    - perror
    - strdup
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char *cli_safer_strdup(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others_common.c:381,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/others_common.c:386,1
    - Dst: ctime_r
      Src: /src/clamav/libclamav/others_common.c:393,1
    - Dst: ctime_r
      Src: /src/clamav/libclamav/others_common.c:395,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/others_common.c:400,1
    - Dst: ctime
      Src: /src/clamav/libclamav/others_common.c:402,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/others_common.c:404,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/others_common.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - timep
    - buf
    - bufsize
    argTypes:
    - time_t*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 419
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 419
    functionName: cli_ctime
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - pthread_mutex_unlock
    - strncpy
    - ctime_r
    - ctime
    - pthread_mutex_lock
    linkageType: ''
    returnType: char
    signature: char *cli_ctime(const time_t *timep, char *buf, const size_t bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/clamav/libclamav/others_common.c:440,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:449,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others_common.c:449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - fd
    - buff
    - count
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 463
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 463
    functionName: cli_readn
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 3
    functionsReached:
    - read
    - cli_strerror
    - cli_errmsg
    linkageType: ''
    returnType: size_t
    signature: size_t cli_readn(int fd, void *buff, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:481,1
    - Dst: write
      Src: /src/clamav/libclamav/others_common.c:489,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:495,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others_common.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - fd
    - buff
    - count
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 509
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 509
    functionName: cli_writen
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 24
    functionsReached:
    - write
    - cli_errmsg
    - cli_strerror
    linkageType: ''
    returnType: size_t
    signature: size_t cli_writen(int fd, const void *buff, size_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CopyFileA
      Src: /src/clamav/libclamav/others_common.c:515,1
    - Dst: open
      Src: /src/clamav/libclamav/others_common.c:521,1
    - Dst: open
      Src: /src/clamav/libclamav/others_common.c:524,1
    - Dst: close
      Src: /src/clamav/libclamav/others_common.c:525,1
    - Dst: malloc
      Src: /src/clamav/libclamav/others_common.c:529,1
    - Dst: close
      Src: /src/clamav/libclamav/others_common.c:530,1
    - Dst: close
      Src: /src/clamav/libclamav/others_common.c:531,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/others_common.c:535,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/others_common.c:537,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/others_common.c:538,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:541,1
    - Dst: close
      Src: /src/clamav/libclamav/others_common.c:542,1
    - Dst: close
      Src: /src/clamav/libclamav/others_common.c:544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 546
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 546
    functionName: cli_filecopy
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 2
    functionsReached:
    - CopyFileA
    - close
    - open
    - free
    - malloc
    - cli_writen
    - cli_readn
    linkageType: ''
    returnType: int
    signature: int cli_filecopy(const char *src, const char *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/clamav/libclamav/others_common.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 572
    functionName: cli_gettmpdir
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 3
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *cli_gettmpdir(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: ftw_compare
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ftw_compare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - enum filetype
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 606
    functionName: ft_skipped
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ft_skipped(enum filetype ft)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LSTAT
      Src: /src/clamav/libclamav/others_common.c:624,1
    - Dst: S_ISLNK
      Src: /src/clamav/libclamav/others_common.c:626,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/others_common.c:643,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclamav/others_common.c:649,1
    - Dst: S_ISREG
      Src: /src/clamav/libclamav/others_common.c:654,1
    - Dst: S_ISLNK
      Src: /src/clamav/libclamav/others_common.c:660,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 5
    argNames:
    - fname
    - flags
    - need_stat
    - statbuf
    - ft
    argTypes:
    - char*
    - int
    - int
    - STATBUF*
    - enum filetype*
    constantsTouched: []
    func_position:
      end: 664
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 664
    functionName: get_filetype
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - S_ISDIR
    - CLAMSTAT
    - LSTAT
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: "int get_filetype(const char *fname, int flags, int need_stat,\n                        STATBUF
      *statbuf, enum filetype *ft)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_filetype
      Src: /src/clamav/libclamav/others_common.c:686,1
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:695,1
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:707,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 7
    argNames:
    - fname
    - flags
    - statbuf
    - stated
    - ft
    - callback
    - data
    argTypes:
    - char*
    - int
    - STATBUF*
    - int*
    - enum filetype*
    - cli_ftw_cb
    - struct cli_ftw_cbdata*
    constantsTouched: []
    func_position:
      end: 720
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 720
    functionName: handle_filetype
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - callback
    - get_filetype
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t handle_filetype(const char *fname, int flags,\n                                  STATBUF
      *statbuf, int *stated, enum filetype *ft,\n                                  cli_ftw_cb
      callback, struct cli_ftw_cbdata *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:726,1
    - Dst: cli_ftw_dir
      Src: /src/clamav/libclamav/others_common.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - entry
    - flags
    - maxdepth
    - callback
    - data
    - pathchk
    argTypes:
    - struct dirent_data*
    - int
    - int
    - cli_ftw_cb
    - struct cli_ftw_cbdata*
    - cli_ftw_pathchk
    constantsTouched: []
    func_position:
      end: 730
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 730
    functionName: handle_entry
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - cli_ftw_dir
    - callback
    linkageType: ''
    returnType: int
    signature: int handle_entry(struct dirent_data *entry, int flags, int maxdepth,
      cli_ftw_cb callback, struct cli_ftw_cbdata *data, cli_ftw_pathchk pathchk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:749,1
    - Dst: pathchk
      Src: /src/clamav/libclamav/others_common.c:754,1
    - Dst: handle_filetype
      Src: /src/clamav/libclamav/others_common.c:761,1
    - Dst: ft_skipped
      Src: /src/clamav/libclamav/others_common.c:767,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/others_common.c:780,1
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:785,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/others_common.c:803,1
    - Dst: handle_entry
      Src: /src/clamav/libclamav/others_common.c:810,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:817,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:821,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 6
    argNames:
    - path
    - flags
    - maxdepth
    - callback
    - data
    - pathchk
    argTypes:
    - char*
    - int
    - int
    - cli_ftw_cb
    - struct cli_ftw_cbdata*
    - cli_ftw_pathchk
    constantsTouched: []
    func_position:
      end: 824
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 824
    functionName: cli_ftw
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 2
    functionsReached:
    - handle_filetype
    - callback
    - pathchk
    - strlen
    - ft_skipped
    - handle_entry
    - free
    - cli_safer_strdup
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ftw(char *path, int flags, int maxdepth, cli_ftw_cb
      callback, struct cli_ftw_cbdata *data, cli_ftw_pathchk pathchk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:835,1
    - Dst: opendir
      Src: /src/clamav/libclamav/others_common.c:839,1
    - Dst: readdir
      Src: /src/clamav/libclamav/others_common.c:843,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/others_common.c:850,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/others_common.c:850,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/others_common.c:879,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:879,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:879,1
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:881,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/others_common.c:886,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/others_common.c:887,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/others_common.c:889,1
    - Dst: pathchk
      Src: /src/clamav/libclamav/others_common.c:891,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:892,1
    - Dst: handle_filetype
      Src: /src/clamav/libclamav/others_common.c:896,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:898,1
    - Dst: ft_skipped
      Src: /src/clamav/libclamav/others_common.c:902,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:903,1
    - Dst: malloc
      Src: /src/clamav/libclamav/others_common.c:909,1
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:911,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:912,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/others_common.c:920,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/others_common.c:926,1
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:928,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:929,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:931,1
    - Dst: closedir
      Src: /src/clamav/libclamav/others_common.c:947,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/others_common.c:951,1
    - Dst: handle_entry
      Src: /src/clamav/libclamav/others_common.c:954,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:956,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:958,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:961,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:967,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:968,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:970,1
    - Dst: callback
      Src: /src/clamav/libclamav/others_common.c:973,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 115
    argCount: 6
    argNames:
    - dirname
    - flags
    - maxdepth
    - callback
    - data
    - pathchk
    argTypes:
    - char*
    - int
    - int
    - cli_ftw_cb
    - struct cli_ftw_cbdata*
    - cli_ftw_pathchk
    constantsTouched: []
    func_position:
      end: 976
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 976
    functionName: cli_ftw_dir
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 1
    functionsReached:
    - callback
    - handle_filetype
    - closedir
    - strcmp
    - pathchk
    - strlen
    - cli_errmsg
    - cli_qsort
    - ft_skipped
    - opendir
    - readdir
    - cli_max_malloc
    - handle_entry
    - memcpy
    - malloc
    - cli_max_realloc
    - free
    - sprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ftw_dir(const char *dirname, int flags, int maxdepth,
      cli_ftw_cb callback, struct cli_ftw_cbdata *data, cli_ftw_pathchk pathchk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/others_common.c:985,1
    - Dst: strerror
      Src: /src/clamav/libclamav/others_common.c:987,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/others_common.c:988,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/others_common.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - errnum
    - buf
    - len
    argTypes:
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 994
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 994
    functionName: cli_strerror
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 12
    functionsReached:
    - strerror
    - pthread_mutex_unlock
    - strncpy
    - pthread_mutex_lock
    linkageType: ''
    returnType: char
    signature: char *cli_strerror(int errnum, char *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/others_common.c:1002,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/others_common.c:1005,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/others_common.c:1007,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/others_common.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - buffer
    - len
    - dig
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1017
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1017
    functionName: cli_md5buff
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cl_hash_data
    - cli_max_calloc
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *cli_md5buff(const unsigned char *buffer, unsigned int len, unsigned
      char *dig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/others_common.c:1023,1
    - Dst: srand
      Src: /src/clamav/libclamav/others_common.c:1024,1
    - Dst: clock
      Src: /src/clamav/libclamav/others_common.c:1024,1
    - Dst: rand
      Src: /src/clamav/libclamav/others_common.c:1024,1
    - Dst: rand
      Src: /src/clamav/libclamav/others_common.c:1028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - max
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1029
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1029
    functionName: cli_rndnum
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - srand
    - clock
    - rand
    - gettimeofday
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cli_rndnum(unsigned int max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/others_common.c:1046,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1048,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others_common.c:1055,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1055,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1060,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others_common.c:1062,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1062,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1067,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others_common.c:1069,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1069,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1075,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/others_common.c:1079,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1079,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1080,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1081,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others_common.c:1089,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1089,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1094,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others_common.c:1096,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1096,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1101,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/others_common.c:1103,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1103,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1109,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/others_common.c:1113,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1113,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1114,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1115,1
    - Dst: CLI_STRNSTR
      Src: /src/clamav/libclamav/others_common.c:1131,1
    - Dst: CLI_STRNSTR
      Src: /src/clamav/libclamav/others_common.c:1135,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/others_common.c:1144,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1152,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/others_common.c:1155,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1168,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1169,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 86
    argCount: 3
    argNames:
    - filepath
    - filepath_len
    - sanitized_filebase
    argTypes:
    - char*
    - size_t
    - char**
    constantsTouched: []
    func_position:
      end: 1177
      start: 1031
    functionDepth: 3
    functionLinenumber: 1031
    functionLinenumberEnd: 1177
    functionName: cli_sanitize_filepath
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncpy
    - cli_dbgmsg
    - CLI_STRNSTR
    - cli_max_calloc
    - free
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *cli_sanitize_filepath(const char *filepath, size_t filepath_len,
      char **sanitized_filebase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1190,1
    - Dst: cli_sanitize_filepath
      Src: /src/clamav/libclamav/others_common.c:1191,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1191,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1194,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1194,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1196,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1196,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/others_common.c:1199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1201,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1203,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/others_common.c:1209,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/others_common.c:1212,1
    - Dst: cli_rndnum
      Src: /src/clamav/libclamav/others_common.c:1215,1
    - Dst: cli_md5buff
      Src: /src/clamav/libclamav/others_common.c:1217,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/others_common.c:1220,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1224,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1226,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1228,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others_common.c:1233,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others_common.c:1235,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1239,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1244
      start: 1180
    functionDepth: 4
    functionLinenumber: 1180
    functionLinenumberEnd: 1244
    functionName: cli_genfname
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 1
    functionsReached:
    - cli_sanitize_filepath
    - snprintf
    - strlen
    - pthread_mutex_unlock
    - cli_dbgmsg
    - cli_md5buff
    - pthread_mutex_lock
    - memcpy
    - cli_max_calloc
    - free
    - cli_rndnum
    linkageType: ''
    returnType: char
    signature: char *cli_genfname(const char *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gettmpdir
      Src: /src/clamav/libclamav/others_common.c:1252,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1255,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1259,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1259,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1259,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/others_common.c:1260,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1262,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others_common.c:1266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - dir
    - fname
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1269
      start: 1246
    functionDepth: 3
    functionLinenumber: 1246
    functionLinenumberEnd: 1269
    functionName: cli_newfilepath
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - cli_dbgmsg
    - cli_max_calloc
    - cli_gettmpdir
    linkageType: ''
    returnType: char
    signature: char *cli_newfilepath(const char *dir, const char *fname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1274,1
    - Dst: cli_newfilepath
      Src: /src/clamav/libclamav/others_common.c:1278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1280,1
    - Dst: open
      Src: /src/clamav/libclamav/others_common.c:1284,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1290,1
    - Dst: strerror
      Src: /src/clamav/libclamav/others_common.c:1290,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - dir
    - fname
    - name
    - fd
    argTypes:
    - char*
    - char*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 1297
      start: 1271
    functionDepth: 4
    functionLinenumber: 1271
    functionLinenumberEnd: 1297
    functionName: cli_newfilepathfd
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - strerror
    - open
    - cli_dbgmsg
    - free
    - cli_newfilepath
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_newfilepathfd(const char *dir, char *fname, char **name,
      int *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gettmpdir
      Src: /src/clamav/libclamav/others_common.c:1306,1
    - Dst: cli_genfname
      Src: /src/clamav/libclamav/others_common.c:1308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1310,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1314,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1314,1
    - Dst: strlen
      Src: /src/clamav/libclamav/others_common.c:1314,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/others_common.c:1315,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1317,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1318,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others_common.c:1322,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - dir
    - prefix
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1326
      start: 1299
    functionDepth: 5
    functionLinenumber: 1299
    functionLinenumberEnd: 1326
    functionName: cli_gentemp_with_prefix
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 4
    functionsReached:
    - snprintf
    - strlen
    - cli_genfname
    - cli_dbgmsg
    - free
    - cli_max_calloc
    - cli_gettmpdir
    linkageType: ''
    returnType: char
    signature: char *cli_gentemp_with_prefix(const char *dir, const char *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/others_common.c:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1331
      start: 1328
    functionDepth: 6
    functionLinenumber: 1328
    functionLinenumberEnd: 1331
    functionName: cli_gentemp
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 12
    functionsReached:
    - cli_gentemp_with_prefix
    linkageType: ''
    returnType: char
    signature: char *cli_gentemp(const char *dir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentempfd_with_prefix
      Src: /src/clamav/libclamav/others_common.c:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dir
    - name
    - fd
    argTypes:
    - char*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 1336
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1336
    functionName: cli_gentempfd
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 10
    functionsReached:
    - cli_gentempfd_with_prefix
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_gentempfd(const char *dir, char **name, int *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/others_common.c:1340,1
    - Dst: open
      Src: /src/clamav/libclamav/others_common.c:1344,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1351,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1352,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/others_common.c:1353,1
    - Dst: open
      Src: /src/clamav/libclamav/others_common.c:1356,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1358,1
    - Dst: strerror
      Src: /src/clamav/libclamav/others_common.c:1358,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1359,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1364,1
    - Dst: strerror
      Src: /src/clamav/libclamav/others_common.c:1364,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1365,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - dir
    - prefix
    - name
    - fd
    argTypes:
    - char*
    - char*
    - char**
    - int*
    constantsTouched: []
    func_position:
      end: 1372
      start: 1338
    functionDepth: 7
    functionLinenumber: 1338
    functionLinenumberEnd: 1372
    functionName: cli_gentempfd_with_prefix
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 3
    functionsReached:
    - cli_gentemp_with_prefix
    - strerror
    - cli_errmsg
    - open
    - cli_gentemp
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_gentempfd_with_prefix(const char *dir, const char *prefix,
      char **name, int *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/others_common.c:1376,1
    - Dst: cli_regcomp_real
      Src: /src/clamav/libclamav/others_common.c:1380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - preg
    - pattern
    - cflags
    argTypes:
    - regex_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1381
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1381
    functionName: cli_regcomp
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 6
    functionsReached:
    - strncmp
    - cli_regcomp_real
    linkageType: ''
    returnType: int
    signature: int cli_regcomp(regex_t *preg, const char *pattern, int cflags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1395,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/clamav/libclamav/others_common.c:1399,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1401,1
    - Dst: calloc
      Src: /src/clamav/libclamav/others_common.c:1406,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1408,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/clamav/libclamav/others_common.c:1413,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1415,1
    - Dst: wcsncmp
      Src: /src/clamav/libclamav/others_common.c:1420,1
    - Dst: wcslen
      Src: /src/clamav/libclamav/others_common.c:1420,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/others_common.c:1421,1
    - Dst: wcslen
      Src: /src/clamav/libclamav/others_common.c:1423,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1428,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/others_common.c:1433,1
    - Dst: wcslen
      Src: /src/clamav/libclamav/others_common.c:1434,1
    - Dst: wcslen
      Src: /src/clamav/libclamav/others_common.c:1435,1
    - Dst: wcslen
      Src: /src/clamav/libclamav/others_common.c:1435,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1440,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1446,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1452,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - hFile
    - filepath
    argTypes:
    - HANDLE
    - char**
    constantsTouched: []
    func_position:
      end: 1455
      start: 1384
    functionDepth: 4
    functionLinenumber: 1384
    functionLinenumberEnd: 1455
    functionName: cli_get_filepath_from_handle
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - calloc
    - cli_codepage_to_utf8
    - GetFinalPathNameByHandleW
    - cli_dbgmsg
    - free
    - wcsncmp
    - cli_errmsg
    - wcslen
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_get_filepath_from_handle(HANDLE hFile, char **filepath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/others_common.c:1469,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1472,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/others_common.c:1476,1
    - Dst: readlink
      Src: /src/clamav/libclamav/others_common.c:1479,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1480,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/others_common.c:1488,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/others_common.c:1488,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1490,1
    - Dst: memset
      Src: /src/clamav/libclamav/others_common.c:1498,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1501,1
    - Dst: fcntl
      Src: /src/clamav/libclamav/others_common.c:1505,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1506,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/others_common.c:1511,1
    - Dst: CLI_STRNLEN
      Src: /src/clamav/libclamav/others_common.c:1511,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1513,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1523,1
    - Dst: cli_get_filepath_from_handle
      Src: /src/clamav/libclamav/others_common.c:1527,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/others_common.c:1529,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1536,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1542,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - desc
    - filepath
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1548
      start: 1458
    functionDepth: 5
    functionLinenumber: 1458
    functionLinenumberEnd: 1548
    functionName: cli_get_filepath_from_filedesc
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 0
    functionsReached:
    - readlink
    - fcntl
    - memset
    - snprintf
    - CLI_STRNDUP
    - cli_get_filepath_from_handle
    - cli_dbgmsg
    - CLI_STRNLEN
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_get_filepath_from_filedesc(int desc, char **filepath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1563,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others_common.c:1566,1
    - Dst: uncpath
      Src: /src/clamav/libclamav/others_common.c:1572,1
    - Dst: CreateFileW
      Src: /src/clamav/libclamav/others_common.c:1578,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/others_common.c:1586,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/others_common.c:1586,1
    - Dst: cli_get_filepath_from_handle
      Src: /src/clamav/libclamav/others_common.c:1591,1
    - Dst: open
      Src: /src/clamav/libclamav/others_common.c:1601,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/others_common.c:1604,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/others_common.c:1610,1
    - Dst: cli_get_filepath_from_filedesc
      Src: /src/clamav/libclamav/others_common.c:1614,1
    - Dst: realpath
      Src: /src/clamav/libclamav/others_common.c:1618,1
    - Dst: CloseHandle
      Src: /src/clamav/libclamav/others_common.c:1634,1
    - Dst: free
      Src: /src/clamav/libclamav/others_common.c:1637,1
    - Dst: close
      Src: /src/clamav/libclamav/others_common.c:1641,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - file_name
    - real_filename
    argTypes:
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1646
      start: 1550
    functionDepth: 6
    functionLinenumber: 1550
    functionLinenumberEnd: 1646
    functionName: cli_realpath
    functionSourceFile: /src/clamav/libclamav/others_common.c
    functionUses: 5
    functionsReached:
    - CreateFileW
    - close
    - GetLastError
    - cli_warnmsg
    - open
    - cli_strerror
    - cli_get_filepath_from_filedesc
    - cli_get_filepath_from_handle
    - cli_dbgmsg
    - CloseHandle
    - uncpath
    - realpath
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_realpath(const char *file_name, char **real_filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:76,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:78,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:80,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:86,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:86,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:90,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:91,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:98,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:104,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:106,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:111,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:116,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:119,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:132,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:135,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:147,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:150,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:155,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:160,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:163,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:167,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:169,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:169,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:171,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:172,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:174,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:176,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:181,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:181,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:186,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:186,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:189,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:189,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:192,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:192,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:194,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:195,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:197,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:199,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:202,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:205,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:207,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:213,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:214,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:216,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:219,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:223,1
    - Dst: unupack399
      Src: /src/clamav/libclamav/upack.c:224,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:246,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:248,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:251,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:260,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:264,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:267,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:268,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:270,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:274,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:277,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:277,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:279,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:281,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:282,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:282,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:282,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:289,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:293,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:297,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:297,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:300,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:300,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:301,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:303,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:313,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:315,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:319,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:321,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:323,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:323,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:328,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:330,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:332,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:332,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:332,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:336,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:338,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:341,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:342,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:343,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:343,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:344,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:347,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:349,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:353,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:360,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:362,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:364,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:367,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:370,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:372,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:379,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:383,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:386,1
    - Dst: unupack399
      Src: /src/clamav/libclamav/upack.c:387,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:390,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:392,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:397,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:398,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:403,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:405,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:406,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:412,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:413,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:416,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upack.c:418,1
    - Dst: EC32
      Src: /src/clamav/libclamav/upack.c:418,1
    - Dst: CE32
      Src: /src/clamav/libclamav/upack.c:418,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:418,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:433,1
    - Dst: cli_rebuildpe
      Src: /src/clamav/libclamav/upack.c:437,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:438,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 298
    argCount: 9
    argNames:
    - upack
    - dest
    - dsize
    - buff
    - vma
    - ep
    - base
    - va
    - file
    argTypes:
    - int
    - char*
    - uint32_t
    - char*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 442
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 442
    functionName: unupack
    functionSourceFile: /src/clamav/libclamav/upack.c
    functionUses: 0
    functionsReached:
    - cli_rebuildpe
    - cli_readint32
    - unupack399
    - CLI_ISCONTAINED
    - EC32
    - cli_dbgmsg
    - cli_writeint32
    - CE32
    linkageType: ''
    returnType: int
    signature: int unupack(int upack, char *dest, uint32_t dsize, char *buff, uint32_t
      vma, uint32_t ep, uint32_t base, uint32_t va, int file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:451,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:452,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:454,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:456,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upack.c:457,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/upack.c:463,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/upack.c:472,1
    - Dst: lzma_upack_esi_54
      Src: /src/clamav/libclamav/upack.c:486,1
    - Dst: lzma_upack_esi_50
      Src: /src/clamav/libclamav/upack.c:496,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:517,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upack.c:519,1
    - Dst: EC32
      Src: /src/clamav/libclamav/upack.c:520,1
    - Dst: CE32
      Src: /src/clamav/libclamav/upack.c:520,1
    - Dst: lzma_upack_esi_50
      Src: /src/clamav/libclamav/upack.c:548,1
    - Dst: CLI_SRS
      Src: /src/clamav/libclamav/upack.c:552,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/upack.c:568,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/upack.c:571,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/upack.c:574,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/upack.c:592,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:600,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:600,1
    - Dst: lzma_upack_esi_54
      Src: /src/clamav/libclamav/upack.c:613,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:619,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:619,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:651,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/upack.c:657,1
    - Dst: lzma_upack_esi_50
      Src: /src/clamav/libclamav/upack.c:671,1
    - Dst: lzma_upack_esi_50
      Src: /src/clamav/libclamav/upack.c:681,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upack.c:690,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 203
    argCount: 9
    argNames:
    - bs
    - bl
    - init_eax
    - init_ebx
    - init_ecx
    - init_edi
    - end_edi
    - shlsize
    - paddr
    argTypes:
    - char*
    - uint32_t
    - uint32_t
    - char*
    - uint32_t
    - char*
    - char*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 696
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 696
    functionName: unupack399
    functionSourceFile: /src/clamav/libclamav/upack.c
    functionUses: 1
    functionsReached:
    - lzma_upack_esi_00
    - cli_readint32
    - lzma_upack_esi_54
    - lzma_upack_esi_50
    - CLI_ISCONTAINED
    - EC32
    - cli_dbgmsg
    - CLI_SRS
    - CE32
    linkageType: ''
    returnType: int
    signature: int unupack399(char *bs, uint32_t bl, uint32_t init_eax, char *init_ebx,
      uint32_t init_ecx, char *init_edi, char *end_edi, uint32_t shlsize, char *paddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:292,1
    - Dst: va_start
      Src: /src/clamav/libclamav/pe.c:293,1
    - Dst: va_arg
      Src: /src/clamav/libclamav/pe.c:294,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:294,1
    - Dst: va_end
      Src: /src/clamav/libclamav/pe.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: cli_multifree
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_arg
    - free
    - va_end
    linkageType: ''
    returnType: void
    signature: void cli_multifree(void *f, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - opaque
    - type
    - name
    - lang
    - rva
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: versioninfo_cb
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int versioninfo_cb(void *opaque, uint32_t type, uint32_t name, uint32_t
      lang, uint32_t rva)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 6
    argNames:
    - rva
    - shp
    - nos
    - err
    - fsize
    - hdr_size
    argTypes:
    - uint32_t
    - struct cli_exe_section*
    - uint16_t
    - unsigned int*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 346
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 346
    functionName: cli_rawaddr
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_rawaddr(uint32_t rva, const struct cli_exe_section *shp,
      uint16_t nos, unsigned int *err, size_t fsize, uint32_t hdr_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:376,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:381,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:381,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:384,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:388,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/pe.c:392,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:394,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:395,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:398,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:398,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:401,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:404,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:407,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/pe.c:410,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:412,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:413,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:416,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:416,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:419,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:419,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/pe.c:422,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:424,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:425,1
    - Dst: cb
      Src: /src/clamav/libclamav/pe.c:427,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 5
    argNames:
    - by_type
    - by_name
    - map
    - peinfo
    - opaque
    argTypes:
    - uint32_t
    - uint32_t
    - fmap_t*
    - struct cli_exe_info*
    - void*
    constantsTouched: []
    func_position:
      end: 439
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 439
    functionName: findres
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 2
    functionsReached:
    - cli_readint32
    - fmap_need_ptr_once
    - fmap_need_off_once
    - cli_readint16
    - cli_rawaddr
    - cli_dbgmsg
    - cb
    linkageType: ''
    returnType: void
    signature: void findres(uint32_t by_type, uint32_t by_name, fmap_t *map, struct
      cli_exe_info *peinfo, int (*cb)(void *, uint32_t, uint32_t, uint32_t, uint32_t),
      void *opaque)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:452,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:454,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:455,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/pe.c:462,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:463,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:478,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:481,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:506,1
    - Dst: cli_parseres_special
      Src: /src/clamav/libclamav/pe.c:508,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:510,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:511,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:512,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:515,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:515,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:517,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:525,1
    - Dst: cli_detect_swizz_str
      Src: /src/clamav/libclamav/pe.c:526,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/pe.c:530,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 9
    argNames:
    - base
    - rva
    - map
    - peinfo
    - fsize
    - level
    - type
    - maxres
    - stats
    argTypes:
    - uint32_t
    - uint32_t
    - fmap_t*
    - struct cli_exe_info*
    - size_t
    - unsigned int
    - uint32_t
    - unsigned int*
    - struct swizz_stats*
    constantsTouched: []
    func_position:
      end: 531
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 531
    functionName: cli_parseres_special
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 1
    functionsReached:
    - cli_readint32
    - cli_parseres_special
    - fmap_need_off_once
    - cli_detect_swizz_str
    - cli_readint16
    - cli_rawaddr
    - cli_dbgmsg
    - fmap_unneed_ptr
    - fmap_need_off
    linkageType: ''
    returnType: void
    signature: void cli_parseres_special(uint32_t base, uint32_t rva, fmap_t *map,
      struct cli_exe_info *peinfo, size_t fsize, unsigned int level, uint32_t type,
      unsigned int *maxres, struct swizz_stats *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:538,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:543,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:544,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/pe.c:549,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/pe.c:551,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/pe.c:553,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 5
    argNames:
    - map
    - s
    - digest
    - foundhash
    - foundwild
    argTypes:
    - fmap_t*
    - struct cli_exe_section*
    - unsigned char**
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 556
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 556
    functionName: cli_hashsect
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - fmap_need_off_once
    - cl_sha1
    - cli_dbgmsg
    - cl_sha256
    - cl_hash_data
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cli_hashsect(fmap_t *map, struct cli_exe_section *s, unsigned
      char **digest, int *foundhash, int *foundwild)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/pe.c:572,1
    - Dst: cli_hm_have_wild
      Src: /src/clamav/libclamav/pe.c:573,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pe.c:575,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:577,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:579,1
    - Dst: cli_hashsect
      Src: /src/clamav/libclamav/pe.c:588,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:594,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:600,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pe.c:605,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:607,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/pe.c:612,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:614,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:618,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:621,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/pe.c:627,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/pe.c:628,1
    - Dst: cli_hm_scan_wild
      Src: /src/clamav/libclamav/pe.c:633,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/pe.c:634,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:643,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 2
    argNames:
    - ctx
    - exe_section
    argTypes:
    - cli_ctx*
    - struct cli_exe_section*
    constantsTouched: []
    func_position:
      end: 645
      start: 559
    functionDepth: 6
    functionLinenumber: 559
    functionLinenumberEnd: 645
    functionName: scan_pe_mdb
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - cli_append_virus
    - cli_hashsect
    - cli_hm_have_wild
    - cli_hm_scan_wild
    - cli_dbgmsg
    - malloc
    - cli_hm_have_size
    - cl_hash_data
    - cli_hm_scan
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scan_pe_mdb(cli_ctx *ctx, struct cli_exe_section *exe_section)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/pe.c:653,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/pe.c:654,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:657,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:660,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:663,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:666,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:669,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:672,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:675,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:678,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:681,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:684,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:687,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:690,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:693,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:696,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:699,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:702,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:705,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:708,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:711,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:714,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:717,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:720,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:723,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:726,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:729,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:732,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:735,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:738,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:741,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:744,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:747,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:750,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:753,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:756,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:759,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:762,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:765,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:768,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:771,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:774,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:777,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:780,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:783,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:786,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:789,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:792,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:795,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:798,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:801,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:804,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:807,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:810,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:813,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:816,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:819,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:822,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:825,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:828,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:831,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:834,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:837,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:840,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:843,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:846,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:849,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:852,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:855,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:858,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:861,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:864,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:867,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:870,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:873,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:876,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:879,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:882,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:885,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:888,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:891,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:894,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:897,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:900,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:903,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:906,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:909,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:912,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:915,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:918,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:921,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:924,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:927,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:930,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:933,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:936,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:939,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:942,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:945,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:948,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:951,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:954,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:957,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:960,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:963,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:966,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:969,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:972,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:975,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:978,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:981,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:984,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:987,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:990,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:993,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:996,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:999,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1002,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1005,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/pe.c:1010,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1013,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1016,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1019,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1022,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1025,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1028,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1031,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1034,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1037,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1040,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1043,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1046,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1049,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1052,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1055,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1058,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1061,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1064,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1067,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1070,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1073,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1076,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1079,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1082,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1085,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1088,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1091,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1094,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1097,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1100,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1103,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1106,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1109,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1112,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1115,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1118,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1121,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1124,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1127,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1130,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1133,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1136,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1139,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1142,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1145,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1148,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1151,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1154,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1157,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1160,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1163,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1166,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1169,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1172,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1175,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1178,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1181,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1184,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1187,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1190,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1193,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1196,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1199,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1202,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1205,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1208,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1211,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1214,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1217,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1220,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1223,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1226,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1229,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1232,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1235,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1238,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1241,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1244,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1247,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1250,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1253,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1256,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1259,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1262,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1265,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1268,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1271,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1274,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1277,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1280,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1283,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1286,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1289,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1292,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1295,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1298,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1301,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1304,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1307,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1310,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1313,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1316,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1319,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1322,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1325,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1328,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1331,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1334,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1337,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1340,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1343,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1346,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1349,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1352,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1355,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1358,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1361,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1364,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1367,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1370,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1373,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1376,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1379,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1382,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1385,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1388,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1391,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1394,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1397,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1400,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1403,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1406,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1409,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1412,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1415,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1418,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1421,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1424,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1427,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1430,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1433,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1436,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1439,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1442,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1445,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1448,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1451,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1454,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1457,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1460,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1463,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1466,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1469,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1472,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1475,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1478,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1481,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1484,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1487,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1490,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1493,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1496,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1499,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1502,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1505,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1508,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1511,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1514,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1517,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1520,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1523,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1526,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1529,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1532,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1535,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1538,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1541,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1544,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1547,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1550,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1553,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1556,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1559,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1562,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1565,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1568,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1571,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1574,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1577,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1580,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1583,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1586,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1589,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1592,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1595,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1598,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1601,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1604,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1607,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1610,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1613,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1616,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1619,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1622,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1625,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1628,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1631,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1634,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1637,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1640,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1643,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1646,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1649,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1652,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1655,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1658,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1661,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1664,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1667,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1670,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1673,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1676,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1679,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1682,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1685,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1688,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1691,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1694,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1697,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1700,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1703,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1706,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1709,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1712,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1715,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1718,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1721,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1724,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1727,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1730,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1733,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1736,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1739,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1742,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1745,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1748,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1751,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1754,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1757,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1760,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1763,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1766,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1769,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1772,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1775,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1778,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1781,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1784,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1787,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1790,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1793,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1796,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1799,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1802,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1805,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1808,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1811,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1814,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1817,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1820,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1823,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1826,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1829,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1832,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1835,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1838,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1841,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1844,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1847,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1850,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1853,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1856,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1859,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1862,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1865,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1868,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1871,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1874,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1877,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1880,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1883,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1886,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1889,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1892,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1895,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1898,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1901,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1904,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1907,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1910,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1913,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1916,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1919,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1922,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1925,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1928,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1931,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1934,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1937,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1940,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1943,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1946,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1949,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1952,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1955,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1958,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1961,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1964,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1967,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1970,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1973,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1976,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1979,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1982,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1985,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1988,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1991,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1994,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:1997,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2000,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2003,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2006,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2009,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2012,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2015,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2018,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2021,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2024,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2027,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2030,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2033,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2036,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2039,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2042,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2045,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2048,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2051,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2054,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2057,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2060,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2063,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2066,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2069,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2072,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2075,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2078,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2081,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2084,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2087,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2090,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2093,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2096,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2099,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2102,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2105,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2108,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2111,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2114,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2117,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2120,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2123,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2126,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2129,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2132,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2135,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2138,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2141,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2144,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2147,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2150,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2153,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2156,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2159,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2162,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2165,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2168,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2171,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2174,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2177,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2180,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2183,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2186,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2189,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2192,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2195,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2198,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2201,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2204,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/pe.c:2212,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/pe.c:2214,1
    CyclomaticComplexity: 523
    EdgeCount: 523
    ICount: 1562
    argCount: 2
    argNames:
    - dll
    - ord
    argTypes:
    - char*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2215
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 2215
    functionName: pe_ordinal
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - cli_safer_strdup
    - sprintf
    - strncasecmp
    linkageType: ''
    returnType: char
    signature: char *pe_ordinal(const char *dll, uint16_t ord)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 11
    argCount: 3
    argNames:
    - name
    - length
    - dll
    argTypes:
    - char*
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 2239
      start: 2217
    functionDepth: 0
    functionLinenumber: 2217
    functionLinenumberEnd: 2239
    functionName: validate_impname
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int validate_impname(const char *name, uint32_t length, int dll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:2253,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:2255,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2257,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pe.c:2262,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2264,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:2326,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:2332,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:2336,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:2340,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:2340,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/pe.c:2341,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:2341,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2343,1
    - Dst: pe_ordinal
      Src: /src/clamav/libclamav/pe.c:2350,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2352,1
    - Dst: UPDATE_IMPHASH
      Src: /src/clamav/libclamav/pe.c:2357,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2358,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:2365,1
    - Dst: EC64
      Src: /src/clamav/libclamav/pe.c:2373,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:2377,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:2381,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:2381,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/pe.c:2382,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:2382,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2384,1
    - Dst: pe_ordinal
      Src: /src/clamav/libclamav/pe.c:2391,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2393,1
    - Dst: UPDATE_IMPHASH
      Src: /src/clamav/libclamav/pe.c:2398,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2399,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 7
    argNames:
    - ctx
    - hashctx
    - impsz
    - image
    - dllname
    - peinfo
    - first
    argTypes:
    - cli_ctx*
    - void**
    - uint32_t*
    - struct pe_image_import_descriptor*
    - char*
    - struct cli_exe_info*
    - int*
    constantsTouched: []
    func_position:
      end: 2406
      start: 2241
    functionDepth: 4
    functionLinenumber: 2241
    functionLinenumberEnd: 2406
    functionName: hash_impfns
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - pe_ordinal
    - CLI_STRNDUP
    - EC32
    - fmap_need_off_once
    - fmap_readn
    - cli_rawaddr
    - cli_dbgmsg
    - EC64
    - MIN
    - UPDATE_IMPHASH
    - free
    - cli_jsonarray
    linkageType: ''
    returnType: int
    signature: int hash_impfns(cli_ctx *ctx, void **hashctx, uint32_t *impsz, struct
      pe_image_import_descriptor *image, const char *dllname, struct cli_exe_info
      *peinfo, int *first)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2428,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:2434,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2436,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/pe.c:2442,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2444,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/pe.c:2455,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/pe.c:2462,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/pe.c:2469,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:2483,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:2497,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:2499,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:2501,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:2503,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:2505,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:2509,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2511,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:2520,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:2520,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2522,1
    - Dst: validate_impname
      Src: /src/clamav/libclamav/pe.c:2527,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:2527,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2528,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/libclamav/pe.c:2533,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:2533,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2535,1
    - Dst: hash_impfns
      Src: /src/clamav/libclamav/pe.c:2541,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2542,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/pe.c:2551,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/pe.c:2559,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/pe.c:2564,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 117
    argCount: 5
    argNames:
    - ctx
    - digest
    - impsz
    - genhash
    - peinfo
    argTypes:
    - cli_ctx*
    - unsigned char**
    - uint32_t*
    - int*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 2569
      start: 2408
    functionDepth: 5
    functionLinenumber: 2408
    functionLinenumberEnd: 2569
    functionName: hash_imptbl
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - CLI_STRNDUP
    - EC32
    - fmap_need_off_once
    - hash_impfns
    - cl_hash_destroy
    - cli_rawaddr
    - cli_dbgmsg
    - MIN
    - fmap_unneed_off
    - memcpy
    - cl_hash_init
    - cl_finish_hash
    - validate_impname
    - fmap_need_off
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hash_imptbl(cli_ctx *ctx, unsigned char **digest, uint32_t
      *impsz, int *genhash, struct cli_exe_info *peinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hm_have_any
      Src: /src/clamav/libclamav/pe.c:2583,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pe.c:2585,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:2587,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2589,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pe.c:2600,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:2602,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2604,1
    - Dst: hash_imptbl
      Src: /src/clamav/libclamav/pe.c:2610,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2613,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2624,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:2627,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2630,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/pe.c:2635,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/pe.c:2636,1
    - Dst: cli_hm_scan_wild
      Src: /src/clamav/libclamav/pe.c:2641,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/pe.c:2642,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:2650,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    argCount: 2
    argNames:
    - ctx
    - peinfo
    argTypes:
    - cli_ctx*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 2652
      start: 2571
    functionDepth: 6
    functionLinenumber: 2571
    functionLinenumberEnd: 2652
    functionName: scan_pe_imp
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - cli_hm_have_any
    - hash_imptbl
    - calloc
    - cli_jsonstr
    - cli_append_virus
    - cli_dbgmsg
    - free
    - malloc
    - cli_hm_scan
    - cli_errmsg
    - cli_hm_scan_wild
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scan_pe_imp(cli_ctx *ctx, struct cli_exe_info *peinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/pe.c:2661,1
    - Dst: json_object_new_object
      Src: /src/clamav/libclamav/pe.c:2662,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2670
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2670
    functionName: get_pe_property
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - json_object_new_object
    - json_object_object_add
    - json_object_object_get_ex
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *get_pe_property(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_pe_property
      Src: /src/clamav/libclamav/pe.c:2678,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/pe.c:2682,1
    - Dst: json_object_new_array
      Src: /src/clamav/libclamav/pe.c:2683,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2687,1
    - Dst: json_object_new_string
      Src: /src/clamav/libclamav/pe.c:2690,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/pe.c:2694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 2695
      start: 2672
    functionDepth: 1
    functionLinenumber: 2672
    functionLinenumberEnd: 2695
    functionName: pe_add_heuristic_property
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - get_pe_property
    - json_object_object_add
    - json_object_new_array
    - json_object_object_get_ex
    - json_object_array_add
    linkageType: ''
    returnType: void
    signature: void pe_add_heuristic_property(cli_ctx *ctx, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_pe_property
      Src: /src/clamav/libclamav/pe.c:2702,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/pe.c:2706,1
    - Dst: json_object_new_array
      Src: /src/clamav/libclamav/pe.c:2707,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2715
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2715
    functionName: get_section_json
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - get_pe_property
    - json_object_object_add
    - json_object_new_array
    - json_object_object_get_ex
    linkageType: ''
    returnType: struct json_object
    signature: struct json_object *get_section_json(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_section_json
      Src: /src/clamav/libclamav/pe.c:2722,1
    - Dst: json_object_new_object
      Src: /src/clamav/libclamav/pe.c:2726,1
    - Dst: json_object_new_int
      Src: /src/clamav/libclamav/pe.c:2730,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2734,1
    - Dst: json_object_new_int
      Src: /src/clamav/libclamav/pe.c:2736,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2740,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:2742,1
    - Dst: json_object_new_string
      Src: /src/clamav/libclamav/pe.c:2744,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2748,1
    - Dst: json_object_new_boolean
      Src: /src/clamav/libclamav/pe.c:2750,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2752,1
    - Dst: json_object_new_boolean
      Src: /src/clamav/libclamav/pe.c:2754,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2756,1
    - Dst: json_object_new_boolean
      Src: /src/clamav/libclamav/pe.c:2758,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/pe.c:2760,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/pe.c:2762,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - cli_ctx*
    - struct cli_exe_section*
    constantsTouched: []
    func_position:
      end: 2763
      start: 2717
    functionDepth: 2
    functionLinenumber: 2717
    functionLinenumberEnd: 2763
    functionName: add_section_info
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - snprintf
    - json_object_object_add
    - get_section_json
    - json_object_array_add
    - json_object_new_object
    - json_object_new_boolean
    - json_object_new_int
    linkageType: ''
    returnType: void
    signature: void add_section_info(cli_ctx *ctx, struct cli_exe_section *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:2791,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/pe.c:2795,1
    - Dst: get_pe_property
      Src: /src/clamav/libclamav/pe.c:2800,1
    - Dst: cli_exe_info_init
      Src: /src/clamav/libclamav/pe.c:2819,1
    - Dst: cli_peheader
      Src: /src/clamav/libclamav/pe.c:2821,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pe.c:2831,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2833,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2834,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2839,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2840,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2845,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2846,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:2855,1
    - Dst: scan_pe_mdb
      Src: /src/clamav/libclamav/pe.c:2873,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:2876,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/pe.c:2876,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:2878,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2879,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2888,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:2892,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2895,1
    - Dst: cli_scanishield
      Src: /src/clamav/libclamav/pe.c:2915,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2917,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:2925,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:2927,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:2928,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:2929,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:2931,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:2932,1
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/libclamav/pe.c:2939,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:2941,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2942,1
    - Dst: cli_bytecode_context_setpe
      Src: /src/clamav/libclamav/pe.c:2946,1
    - Dst: cli_bytecode_context_setctx
      Src: /src/clamav/libclamav/pe.c:2947,1
    - Dst: cli_bytecode_runhook
      Src: /src/clamav/libclamav/pe.c:2948,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pe.c:2951,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2955,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/pe.c:2956,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/pe.c:2961,1
    - Dst: scan_pe_imp
      Src: /src/clamav/libclamav/pe.c:2966,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pe.c:2971,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2975,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2978,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:2989,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:2989,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:2989,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:2989,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:2989,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:2989,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pe.c:2990,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:2992,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3000,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3015,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3041,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3047,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3074,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3086,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pe.c:3118,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3120,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3124,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3145,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3146,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pe.c:3147,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3149,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3158,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3159,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pe.c:3160,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3162,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:3172,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:3172,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:3172,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3181,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:3188,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3188,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3189,1
    - Dst: cli_max_realloc_or_free
      Src: /src/clamav/libclamav/pe.c:3196,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3223,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3225,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3228,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pe.c:3229,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3231,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3232,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3238,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pe.c:3245,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3250,1
    - Dst: cli_parseres_special
      Src: /src/clamav/libclamav/pe.c:3253,1
    - Dst: cli_detect_swizz
      Src: /src/clamav/libclamav/pe.c:3254,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pe.c:3255,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3257,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3258,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3278,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pe.c:3281,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3295,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3300,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3301,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3301,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3303,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3307,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3309,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3311,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3311,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3321,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3330,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3336,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3340,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3342,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3342,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3343,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3343,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3346,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:3351,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3352,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:3356,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3358,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3359,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3360,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3364,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3368,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3368,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3369,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3370,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3374,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:3380,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:3382,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:3383,1
    - Dst: unmew11
      Src: /src/clamav/libclamav/pe.c:3383,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3383,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3390,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3419,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3419,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3423,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3423,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3428,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3431,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3431,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3432,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3432,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3438,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3442,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3447,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3449,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3458,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3458,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3458,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/pe.c:3460,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/pe.c:3460,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3461,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:3465,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3466,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:3470,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3471,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3472,1
    - Dst: memmove
      Src: /src/clamav/libclamav/pe.c:3477,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:3479,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3480,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3481,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:3486,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:3488,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:3489,1
    - Dst: unupack
      Src: /src/clamav/libclamav/pe.c:3489,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3489,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3504,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3504,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3507,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3508,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3512,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3512,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3513,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3514,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3518,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3519,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3520,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3525,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3526,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3530,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3530,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3531,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3532,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3537,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3538,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3542,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3542,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3543,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3543,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3544,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3544,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3545,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3548,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3553,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:3557,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3558,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3562,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3562,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3563,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:3565,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3566,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:3571,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:3573,1
    - Dst: CLI_UNPRESULTSFSG2
      Src: /src/clamav/libclamav/pe.c:3574,1
    - Dst: unfsg_200
      Src: /src/clamav/libclamav/pe.c:3574,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3574,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3578,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3578,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3589,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3589,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3592,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3593,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:3597,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3597,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3597,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3598,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3604,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3606,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3607,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3608,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3613,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3613,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3614,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3614,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3617,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3622,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3633,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3637,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3640,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3645,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe.c:3649,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:3650,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3651,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3657,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3657,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3659,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3660,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3661,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3662,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:3666,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3667,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3668,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3672,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3673,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:3676,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:3678,1
    - Dst: CLI_UNPRESULTSFSG1
      Src: /src/clamav/libclamav/pe.c:3679,1
    - Dst: unfsg_133
      Src: /src/clamav/libclamav/pe.c:3679,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3679,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3683,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3698,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3703,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3708,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3712,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3712,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3715,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3716,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3722,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3724,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3725,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3726,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3737,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3741,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3746,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe.c:3749,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:3750,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3751,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3757,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3759,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3760,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3761,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3762,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:3766,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3767,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3768,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3773,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3774,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:3777,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:3779,1
    - Dst: CLI_UNPRESULTSFSG1
      Src: /src/clamav/libclamav/pe.c:3780,1
    - Dst: unfsg_133
      Src: /src/clamav/libclamav/pe.c:3780,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3780,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3796,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:3796,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3799,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3800,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:3804,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3805,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3806,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:3810,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3811,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3816,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3816,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3817,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3819,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3819,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3820,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3822,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3822,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3823,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3837,1
    - Dst: upxfn
      Src: /src/clamav/libclamav/pe.c:3841,1
    - Dst: upxfn
      Src: /src/clamav/libclamav/pe.c:3845,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3852,1
    - Dst: upx_inflate2b
      Src: /src/clamav/libclamav/pe.c:3856,1
    - Dst: upx_inflate2b
      Src: /src/clamav/libclamav/pe.c:3856,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3858,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3861,1
    - Dst: upx_inflate2d
      Src: /src/clamav/libclamav/pe.c:3866,1
    - Dst: upx_inflate2d
      Src: /src/clamav/libclamav/pe.c:3866,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3868,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3871,1
    - Dst: upx_inflate2e
      Src: /src/clamav/libclamav/pe.c:3876,1
    - Dst: upx_inflate2e
      Src: /src/clamav/libclamav/pe.c:3876,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3877,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3880,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3884,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3888,1
    - Dst: upx_inflatelzma
      Src: /src/clamav/libclamav/pe.c:3894,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3895,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pe.c:3895,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3900,1
    - Dst: upx_inflatelzma
      Src: /src/clamav/libclamav/pe.c:3906,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3910,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3911,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3916,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:3918,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:3921,1
    - Dst: write
      Src: /src/clamav/libclamav/pe.c:3923,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3924,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3925,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3926,1
    - Dst: close
      Src: /src/clamav/libclamav/pe.c:3927,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3931,1
    - Dst: lseek
      Src: /src/clamav/libclamav/pe.c:3932,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3933,1
    - Dst: close
      Src: /src/clamav/libclamav/pe.c:3934,1
    - Dst: CLI_TMPUNLK
      Src: /src/clamav/libclamav/pe.c:3936,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3937,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3942,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3944,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/pe.c:3946,1
    - Dst: close
      Src: /src/clamav/libclamav/pe.c:3948,1
    - Dst: CLI_TMPUNLK
      Src: /src/clamav/libclamav/pe.c:3950,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3951,1
    - Dst: close
      Src: /src/clamav/libclamav/pe.c:3956,1
    - Dst: CLI_TMPUNLK
      Src: /src/clamav/libclamav/pe.c:3957,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:3958,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3965,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3971,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3971,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3972,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:3972,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3979,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:3981,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3982,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:3986,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:3988,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:3989,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:3990,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:4001,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4006,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4011,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4012,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4019,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:4021,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:4022,1
    - Dst: petite_inflate2x_1to9
      Src: /src/clamav/libclamav/pe.c:4022,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4022,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4032,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:4036,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe.c:4038,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:4039,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4040,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4044,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4045,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4046,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4047,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4052,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:4054,1
    - Dst: CLI_UNPRESULTS_
      Src: /src/clamav/libclamav/pe.c:4055,1
    - Dst: SPINCASE
      Src: /src/clamav/libclamav/pe.c:4055,1
    - Dst: unspin
      Src: /src/clamav/libclamav/pe.c:4055,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4060,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4066,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4067,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:4069,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4070,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4073,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4073,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4074,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4074,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4078,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4079,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4083,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4083,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4084,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4084,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4088,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/pe.c:4090,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4091,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4094,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4094,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4095,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4099,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe.c:4105,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:4106,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4107,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4111,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4112,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4113,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4114,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4119,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/libclamav/pe.c:4122,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4124,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:4125,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:4126,1
    - Dst: yc_decrypt
      Src: /src/clamav/libclamav/pe.c:4126,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/libclamav/pe.c:4134,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4135,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4145,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4146,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:4166,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:4168,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4169,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4173,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4174,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4175,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4176,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:4184,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4187,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4192,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4193,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:4197,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4198,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4199,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4204,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4205,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4206,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4207,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4212,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:4214,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:4215,1
    - Dst: wwunpack
      Src: /src/clamav/libclamav/pe.c:4215,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4224,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4231,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4233,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4235,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:4248,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:4250,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4251,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pe.c:4258,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4261,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4266,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4267,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4272,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:4274,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:4275,1
    - Dst: unaspack
      Src: /src/clamav/libclamav/pe.c:4275,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4275,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4289,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:4290,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:4293,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:4299,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4302,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4303,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:4305,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4308,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:4309,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4313,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4318,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4319,1
    - Dst: CLI_UNPSIZELIMITS
      Src: /src/clamav/libclamav/pe.c:4321,1
    - Dst: MAX
      Src: /src/clamav/libclamav/pe.c:4321,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pe.c:4326,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:4327,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/pe.c:4332,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4333,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:4339,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4340,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:4344,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:4345,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/pe.c:4349,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:4350,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4351,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4354,1
    - Dst: CLI_UNPTEMP
      Src: /src/clamav/libclamav/pe.c:4356,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:4357,1
    - Dst: unspack
      Src: /src/clamav/libclamav/pe.c:4357,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4357,1
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/libclamav/pe.c:4367,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:4369,1
    - Dst: cli_bytecode_context_setpe
      Src: /src/clamav/libclamav/pe.c:4373,1
    - Dst: cli_bytecode_context_setctx
      Src: /src/clamav/libclamav/pe.c:4374,1
    - Dst: cli_bytecode_runhook
      Src: /src/clamav/libclamav/pe.c:4376,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4379,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/pe.c:4380,1
    - Dst: cli_bytecode_context_getresult_file
      Src: /src/clamav/libclamav/pe.c:4383,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/pe.c:4384,1
    - Dst: CLI_UNPRESULTS
      Src: /src/clamav/libclamav/pe.c:4386,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/pe.c:4391,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:4394,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/pe.c:4396,1
    CyclomaticComplexity: 525
    EdgeCount: 525
    ICount: 1100
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 4400
      start: 2765
    functionDepth: 7
    functionLinenumber: 2765
    functionLinenumberEnd: 4400
    functionName: cli_scanpe
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - cli_exe_info_destroy
    - cli_magic_scan_desc
    - cli_readint32
    - MAX
    - wwunpack
    - cli_warnmsg
    - cli_bytecode_runhook
    - CLI_UNPRESULTS
    - cli_peheader
    - EC32
    - write
    - petite_inflate2x_1to9
    - scan_pe_imp
    - cli_json_timeout_cycle_check
    - cli_detect_swizz
    - cli_readint16
    - CLI_ISCONTAINED_0_TO
    - upx_inflate2e
    - unfsg_133
    - memcmp
    - cli_max_calloc
    - memmove
    - scan_pe_mdb
    - lseek
    - cli_bytecode_context_destroy
    - cli_parseres_special
    - EC16
    - cli_scanishield
    - upx_inflate2d
    - CLI_ISCONTAINED
    - fmap_need_off_once
    - evidence_num_alerts
    - cli_rawaddr
    - cli_dbgmsg
    - cli_bytecode_context_setpe
    - cli_jsonbool
    - upxfn
    - unaspack
    - CLI_UNPRESULTS_
    - cl_strerror
    - close
    - calloc
    - cli_jsonstr
    - get_pe_property
    - CLI_UNPSIZELIMITS
    - cli_append_potentially_unwanted
    - CLI_UNPTEMP
    - fmap_readn
    - SPINCASE
    - cli_max_malloc
    - unmew11
    - cli_max_realloc_or_free
    - CLI_UNPRESULTSFSG1
    - fmap_unneed_off
    - cli_bytecode_context_alloc
    - CLI_TMPUNLK
    - free
    - fmap_need_off
    - yc_decrypt
    - unupack
    - upx_inflatelzma
    - cli_bytecode_context_setctx
    - CLI_UNPRESULTSFSG2
    - cli_memstr
    - cli_exe_info_init
    - unfsg_200
    - cli_bytecode_context_getresult_file
    - unspin
    - memcpy
    - upx_inflate2b
    - cli_errmsg
    - unspack
    linkageType: ''
    returnType: int
    signature: int cli_scanpe(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_peheader
      Src: /src/clamav/libclamav/pe.c:4404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - peinfo
    argTypes:
    - cli_ctx*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 4405
      start: 4402
    functionDepth: 1
    functionLinenumber: 4402
    functionLinenumberEnd: 4405
    functionName: cli_pe_targetinfo
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached:
    - cli_peheader
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pe_targetinfo(cli_ctx *ctx, struct cli_exe_info *peinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:4497,1
    - Dst: get_pe_property
      Src: /src/clamav/libclamav/pe.c:4502,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4506,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4507,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4511,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4511,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4512,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4516,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4518,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4523,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4526,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4529,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4533,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4535,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4541,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4542,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4546,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4549,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4552,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4556,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4559,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4562,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4569,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4577,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4689,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4692,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4695,1
    - Dst: pe_add_heuristic_property
      Src: /src/clamav/libclamav/pe.c:4699,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4707,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4714,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4715,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4718,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4719,1
    - Dst: cli_ctime
      Src: /src/clamav/libclamav/pe.c:4719,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4720,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4724,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4726,1
    - Dst: cli_ctime
      Src: /src/clamav/libclamav/pe.c:4726,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4727,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4734,1
    - Dst: pe_add_heuristic_property
      Src: /src/clamav/libclamav/pe.c:4737,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4745,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4746,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4760,1
    - Dst: pe_add_heuristic_property
      Src: /src/clamav/libclamav/pe.c:4763,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4770,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4771,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4782,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4783,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4784,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4787,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4788,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4789,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4790,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4790,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4791,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4791,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4792,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4792,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4793,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4794,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4794,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4795,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4795,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4796,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4796,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4797,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4797,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4798,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4798,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4799,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4799,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4800,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4801,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4805,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4806,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4807,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4807,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4808,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4808,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4809,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4809,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4810,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4810,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4811,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4811,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4812,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4812,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4814,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4815,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4817,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4817,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4818,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4820,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4820,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4821,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4823,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4823,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4824,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4826,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4826,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4827,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4829,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4830,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4835,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4836,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4837,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4840,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4841,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4842,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4843,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4843,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4844,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4844,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4845,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4845,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4846,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4847,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4847,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4848,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4849,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4849,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4850,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4851,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4851,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4852,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4852,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4853,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4854,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4858,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4859,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4860,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4860,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4861,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4861,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4862,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4862,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4863,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4863,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4864,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4864,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:4865,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4865,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4867,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4868,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4870,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4870,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4871,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4873,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4873,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4874,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4876,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4876,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4877,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4879,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4879,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4880,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pe.c:4882,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4883,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4887,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4887,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4888,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:4888,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4890,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:4890,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4939,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4940,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pe.c:4944,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4947,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4955,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4971,1
    - Dst: memset
      Src: /src/clamav/libclamav/pe.c:4978,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pe.c:4981,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4986,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:4991,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:4993,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5001,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5004,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5012,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/pe.c:5020,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5021,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/pe.c:5023,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5024,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/pe.c:5031,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:5033,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5036,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:5040,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5043,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:5047,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5049,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5062,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5062,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5063,1
    - Dst: PEALIGN
      Src: /src/clamav/libclamav/pe.c:5078,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5078,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/pe.c:5079,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5079,1
    - Dst: PEALIGN
      Src: /src/clamav/libclamav/pe.c:5080,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5080,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/pe.c:5081,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5081,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5082,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5083,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5084,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5085,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5086,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5092,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:5101,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pe.c:5104,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/pe.c:5119,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5120,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/pe.c:5124,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5125,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/pe.c:5131,1
    - Dst: add_section_info
      Src: /src/clamav/libclamav/pe.c:5135,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/pe.c:5137,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/pe.c:5146,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5150,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5151,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5152,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5153,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5155,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5158,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5162,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5170,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5173,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5175,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5179,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5189,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5196,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5207,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5225,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:5234,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5235,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pe.c:5241,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/pe.c:5243,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5250,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5267,1
    - Dst: memset
      Src: /src/clamav/libclamav/pe.c:5270,1
    - Dst: findres
      Src: /src/clamav/libclamav/pe.c:5271,1
    - Dst: cli_hashset_init
      Src: /src/clamav/libclamav/pe.c:5275,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:5276,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5282,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:5283,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:5287,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:5292,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:5293,1
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/pe.c:5294,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:5297,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:5303,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:5311,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:5312,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:5330,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pe.c:5338,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/pe.c:5366,1
    - Dst: cli_hashset_addkey
      Src: /src/clamav/libclamav/pe.c:5406,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:5407,1
    - Dst: cli_utf16toascii
      Src: /src/clamav/libclamav/pe.c:5415,1
    - Dst: cli_utf16toascii
      Src: /src/clamav/libclamav/pe.c:5417,1
    - Dst: cli_str2hex
      Src: /src/clamav/libclamav/pe.c:5419,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5421,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:5422,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:5424,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:5426,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:5452,1
    CyclomaticComplexity: 258
    EdgeCount: 258
    ICount: 738
    argCount: 4
    argNames:
    - map
    - peinfo
    - opts
    - ctx
    argTypes:
    - fmap_t*
    - struct cli_exe_info*
    - uint32_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 5456
      start: 4464
    functionDepth: 4
    functionLinenumber: 4464
    functionLinenumberEnd: 5456
    functionName: cli_peheader
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 2
    functionsReached:
    - cli_readint32
    - snprintf
    - PEALIGN
    - EC32
    - pe_add_heuristic_property
    - cli_utf16toascii
    - cli_json_timeout_cycle_check
    - CLI_ISCONTAINED_0_TO
    - add_section_info
    - memcmp
    - cli_max_calloc
    - cli_hashset_addkey
    - EC16
    - strncpy
    - fmap_need_off_once
    - cli_jsonint
    - cli_str2hex
    - cli_rawaddr
    - cli_dbgmsg
    - MIN
    - findres
    - PESALIGN
    - cli_ctime
    - memset
    - cli_jsonstr
    - get_pe_property
    - fmap_readn
    - free
    - cli_hashset_init
    - memcpy
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_peheader(fmap_t *map, struct cli_exe_info *peinfo, uint32_t
      opts, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 5465
      start: 5461
    functionDepth: 0
    functionLinenumber: 5461
    functionLinenumberEnd: 5465
    functionName: sort_sects
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sort_sects(const void *first, const void *second)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_exe_info_init
      Src: /src/clamav/libclamav/pe.c:5510,1
    - Dst: cli_peheader
      Src: /src/clamav/libclamav/pe.c:5512,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:5513,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/pe.c:5527,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/pe.c:5528,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pe.c:5537,1
    - Dst: add_chunk_to_hash_list
      Src: /src/clamav/libclamav/pe.c:5557,1
    - Dst: add_chunk_to_hash_list
      Src: /src/clamav/libclamav/pe.c:5567,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5580,1
    - Dst: add_chunk_to_hash_list
      Src: /src/clamav/libclamav/pe.c:5590,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5592,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/pe.c:5598,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:5602,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5603,1
    - Dst: EC16
      Src: /src/clamav/libclamav/pe.c:5607,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5608,1
    - Dst: EC32
      Src: /src/clamav/libclamav/pe.c:5614,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5623,1
    - Dst: asn1_check_mscat
      Src: /src/clamav/libclamav/pe.c:5629,1
    - Dst: add_chunk_to_hash_list
      Src: /src/clamav/libclamav/pe.c:5648,1
    - Dst: cli_hm_have_size
      Src: /src/clamav/libclamav/pe.c:5666,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/pe.c:5670,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pe.c:5682,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/pe.c:5686,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/pe.c:5693,1
    - Dst: cli_hm_scan
      Src: /src/clamav/libclamav/pe.c:5696,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5697,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/pe.c:5707,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:5711,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:5716,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 138
    argCount: 2
    argNames:
    - ctx
    - peinfo
    argTypes:
    - cli_ctx*
    - struct cli_exe_info*
    constantsTouched: []
    func_position:
      end: 5719
      start: 5482
    functionDepth: 7
    functionLinenumber: 5482
    functionLinenumberEnd: 5719
    functionName: cli_check_auth_header
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 1
    functionsReached:
    - cli_exe_info_destroy
    - add_chunk_to_hash_list
    - calloc
    - EC16
    - cli_peheader
    - EC32
    - fmap_need_off_once
    - fmap_readn
    - cli_exe_info_init
    - cli_hm_scan
    - cl_hash_destroy
    - cli_dbgmsg
    - cli_hm_have_size
    - cl_hash_init
    - cl_update_hash
    - free
    - asn1_check_mscat
    - cl_finish_hash
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_check_auth_header(cli_ctx *ctx, struct cli_exe_info
      *peinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5754,1
    - Dst: cli_exe_info_init
      Src: /src/clamav/libclamav/pe.c:5764,1
    - Dst: cli_peheader
      Src: /src/clamav/libclamav/pe.c:5766,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:5767,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/pe.c:5771,1
    - Dst: memset
      Src: /src/clamav/libclamav/pe.c:5774,1
    - Dst: memset
      Src: /src/clamav/libclamav/pe.c:5775,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pe.c:5780,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pe.c:5785,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pe.c:5790,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pe.c:5795,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:5796,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pe.c:5802,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/pe.c:5805,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:5806,1
    - Dst: hash_imptbl
      Src: /src/clamav/libclamav/pe.c:5840,1
    - Dst: cli_str2hex
      Src: /src/clamav/libclamav/pe.c:5843,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5844,1
    - Dst: free
      Src: /src/clamav/libclamav/pe.c:5846,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pe.c:5850,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 80
    argCount: 4
    argNames:
    - ctx
    - class
    - type
    - hashes
    argTypes:
    - cli_ctx*
    - unsigned int
    - int
    - stats_section_t*
    constantsTouched: []
    func_position:
      end: 5852
      start: 5740
    functionDepth: 6
    functionLinenumber: 5740
    functionLinenumberEnd: 5852
    functionName: cli_genhash_pe
    functionSourceFile: /src/clamav/libclamav/pe.c
    functionUses: 1
    functionsReached:
    - cli_exe_info_destroy
    - memset
    - hash_imptbl
    - calloc
    - cli_peheader
    - cli_qsort
    - cli_exe_info_init
    - cli_str2hex
    - cli_dbgmsg
    - free
    - cli_max_calloc
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_genhash_pe(cli_ctx *ctx, unsigned int class, int type,
      stats_section_t *hashes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ROL
      Src: /src/clamav/libclamav/spin.c:121,1
    - Dst: CLI_ROR
      Src: /src/clamav/libclamav/spin.c:123,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:128,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 4
    argNames:
    - aelle
    - cielle
    - curremu
    - retval
    argTypes:
    - uint8_t
    - uint8_t
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 138
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 138
    functionName: exec86
    functionSourceFile: /src/clamav/libclamav/spin.c
    functionUses: 0
    functionsReached:
    - CLI_ROR
    - CLI_ROL
    - cli_dbgmsg
    linkageType: ''
    returnType: char
    signature: char exec86(uint8_t aelle, uint8_t cielle, char *curremu, int *retval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ROR
      Src: /src/clamav/libclamav/spin.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 161
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 161
    functionName: summit
    functionSourceFile: /src/clamav/libclamav/spin.c
    functionUses: 0
    functionsReached:
    - CLI_ROR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t summit(char *src, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:172,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/spin.c:174,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:175,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/spin.c:179,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:185,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:192,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:193,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:197,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:198,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:203,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:205,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:207,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:212,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:215,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:223,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:224,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:225,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:230,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:231,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:232,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:238,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:251,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:253,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:254,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:257,1
    - Dst: summit
      Src: /src/clamav/libclamav/spin.c:257,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/spin.c:259,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:260,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:264,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:268,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:270,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:279,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:297,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:300,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:301,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:306,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:309,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:310,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:325,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:326,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:330,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:333,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:334,1
    - Dst: exec86
      Src: /src/clamav/libclamav/spin.c:339,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:341,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:347,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:348,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:357,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:358,1
    - Dst: exec86
      Src: /src/clamav/libclamav/spin.c:364,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:366,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:375,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:377,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:396,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/spin.c:397,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:398,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/spin.c:405,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:406,1
    - Dst: memset
      Src: /src/clamav/libclamav/spin.c:411,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:412,1
    - Dst: cli_unfsg
      Src: /src/clamav/libclamav/spin.c:413,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:415,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:420,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:425,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:431,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:434,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/spin.c:438,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/spin.c:443,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:448,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/spin.c:450,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/spin.c:451,1
    - Dst: memset
      Src: /src/clamav/libclamav/spin.c:452,1
    - Dst: cli_unfsg
      Src: /src/clamav/libclamav/spin.c:453,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:455,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:456,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:461,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:466,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:470,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/spin.c:476,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/spin.c:478,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/spin.c:488,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:491,1
    - Dst: cli_rebuildpe
      Src: /src/clamav/libclamav/spin.c:495,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:496,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:499,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:500,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:501,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:504,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/spin.c:507,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:510,1
    - Dst: free
      Src: /src/clamav/libclamav/spin.c:513,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 278
    argCount: 7
    argNames:
    - src
    - ssize
    - sections
    - sectcnt
    - nep
    - desc
    - ctx
    argTypes:
    - char*
    - int
    - struct cli_exe_section*
    - int
    - uint32_t
    - int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 515
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 515
    functionName: unspin
    functionSourceFile: /src/clamav/libclamav/spin.c
    functionUses: 1
    functionsReached:
    - summit
    - exec86
    - cli_rebuildpe
    - cli_readint32
    - memset
    - cli_unfsg
    - CLI_ISCONTAINED
    - cli_max_malloc
    - cli_dbgmsg
    - memcpy
    - free
    linkageType: ''
    returnType: int
    signature: int unspin(char *src, int ssize, struct cli_exe_section *sections,
      int sectcnt, uint32_t nep, int desc, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SWAPINIT
      Src: /src/clamav/libclamav/qsort.c:114,1
    - Dst: CMP
      Src: /src/clamav/libclamav/qsort.c:118,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:120,1
    - Dst: MED3
      Src: /src/clamav/libclamav/qsort.c:129,1
    - Dst: MED3
      Src: /src/clamav/libclamav/qsort.c:130,1
    - Dst: MED3
      Src: /src/clamav/libclamav/qsort.c:131,1
    - Dst: MED3
      Src: /src/clamav/libclamav/qsort.c:133,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:135,1
    - Dst: CMP
      Src: /src/clamav/libclamav/qsort.c:140,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:143,1
    - Dst: CMP
      Src: /src/clamav/libclamav/qsort.c:148,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:151,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:158,1
    - Dst: CMP
      Src: /src/clamav/libclamav/qsort.c:165,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:167,1
    - Dst: MIN
      Src: /src/clamav/libclamav/qsort.c:172,1
    - Dst: vecswap
      Src: /src/clamav/libclamav/qsort.c:173,1
    - Dst: MIN
      Src: /src/clamav/libclamav/qsort.c:174,1
    - Dst: vecswap
      Src: /src/clamav/libclamav/qsort.c:175,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/qsort.c:177,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 3
    argNames:
    - a
    - n
    - es
    argTypes:
    - void*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 185
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 185
    functionName: cli_qsort
    functionSourceFile: /src/clamav/libclamav/qsort.c
    functionUses: 5
    functionsReached:
    - CMP
    - cli_qsort
    - swap
    - SWAPINIT
    - MIN
    - vecswap
    - MED3
    linkageType: ''
    returnType: void
    signature: void cli_qsort(void *a, size_t n, size_t es, int (*cmp)(const void
      *, const void *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SWAPINIT
      Src: /src/clamav/libclamav/qsort.c:193,1
    - Dst: CMP_R
      Src: /src/clamav/libclamav/qsort.c:197,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:199,1
    - Dst: MED3_R
      Src: /src/clamav/libclamav/qsort.c:208,1
    - Dst: MED3_R
      Src: /src/clamav/libclamav/qsort.c:209,1
    - Dst: MED3_R
      Src: /src/clamav/libclamav/qsort.c:210,1
    - Dst: MED3_R
      Src: /src/clamav/libclamav/qsort.c:212,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:214,1
    - Dst: CMP_R
      Src: /src/clamav/libclamav/qsort.c:219,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:222,1
    - Dst: CMP_R
      Src: /src/clamav/libclamav/qsort.c:227,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:230,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:237,1
    - Dst: CMP_R
      Src: /src/clamav/libclamav/qsort.c:244,1
    - Dst: swap
      Src: /src/clamav/libclamav/qsort.c:246,1
    - Dst: MIN
      Src: /src/clamav/libclamav/qsort.c:251,1
    - Dst: vecswap
      Src: /src/clamav/libclamav/qsort.c:252,1
    - Dst: MIN
      Src: /src/clamav/libclamav/qsort.c:253,1
    - Dst: vecswap
      Src: /src/clamav/libclamav/qsort.c:254,1
    - Dst: cli_qsort_r
      Src: /src/clamav/libclamav/qsort.c:256,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 4
    argNames:
    - a
    - n
    - es
    - arg
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 264
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 264
    functionName: cli_qsort_r
    functionSourceFile: /src/clamav/libclamav/qsort.c
    functionUses: 1
    functionsReached:
    - CMP_R
    - swap
    - SWAPINIT
    - cli_qsort_r
    - MIN
    - vecswap
    - MED3_R
    linkageType: ''
    returnType: void
    signature: void cli_qsort_r(void *a, size_t n, size_t es, int (*cmp)(const void
      *, const void *, const void *), void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/phish_allow_list.c:48,1
    - Dst: regex_list_match
      Src: /src/clamav/libclamav/phish_allow_list.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - engine
    - real_url
    - display_url
    - hostOnly
    argTypes:
    - struct cl_engine*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: allow_list_match
    functionSourceFile: /src/clamav/libclamav/phish_allow_list.c
    functionUses: 1
    functionsReached:
    - regex_list_match
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t allow_list_match(const struct cl_engine* engine, char* real_url,
      const char* display_url, int hostOnly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/phish_allow_list.c:55,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phish_allow_list.c:57,1
    - Dst: init_regex_list
      Src: /src/clamav/libclamav/phish_allow_list.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: init_allow_list
    functionSourceFile: /src/clamav/libclamav/phish_allow_list.c
    functionUses: 1
    functionsReached:
    - MPOOL_MALLOC
    - cli_errmsg
    - init_regex_list
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t init_allow_list(struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_regex_ok
      Src: /src/clamav/libclamav/phish_allow_list.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: is_allow_list_ok
    functionSourceFile: /src/clamav/libclamav/phish_allow_list.c
    functionUses: 0
    functionsReached:
    - is_regex_ok
    linkageType: ''
    returnType: int
    signature: int is_allow_list_ok(const struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regex_list_done
      Src: /src/clamav/libclamav/phish_allow_list.c:76,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/phish_allow_list.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: allow_list_done
    functionSourceFile: /src/clamav/libclamav/phish_allow_list.c
    functionUses: 1
    functionsReached:
    - MPOOL_FREE
    - regex_list_done
    linkageType: ''
    returnType: void
    signature: void allow_list_done(struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_environment
      Src: /src/clamav/libclamav/builtin_bytecodes.h:105,1
    - Dst: disable_jit_if
      Src: /src/clamav/libclamav/builtin_bytecodes.h:110,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:111,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:112,1
    - Dst: engine_functionality_level
      Src: /src/clamav/libclamav/builtin_bytecodes.h:113,1
    - Dst: disable_jit_if
      Src: /src/clamav/libclamav/builtin_bytecodes.h:117,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:118,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:119,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:120,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:121,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:122,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:123,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:124,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:125,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:126,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:127,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/builtin_bytecodes.h:128,1
    - Dst: disable_jit_if
      Src: /src/clamav/libclamav/builtin_bytecodes.h:137,1
    - Dst: disable_jit_if
      Src: /src/clamav/libclamav/builtin_bytecodes.h:141,1
    - Dst: disable_jit_if
      Src: /src/clamav/libclamav/builtin_bytecodes.h:145,1
    - Dst: disable_jit_if
      Src: /src/clamav/libclamav/builtin_bytecodes.h:149,1
    - Dst: disable_jit_if
      Src: /src/clamav/libclamav/builtin_bytecodes.h:157,1
    - Dst: debug
      Src: /src/clamav/libclamav/builtin_bytecodes.h:165,1
    - Dst: debug
      Src: /src/clamav/libclamav/builtin_bytecodes.h:168,1
    - Dst: debug
      Src: /src/clamav/libclamav/builtin_bytecodes.h:171,1
    - Dst: engine_functionality_level
      Src: /src/clamav/libclamav/builtin_bytecodes.h:183,1
    - Dst: engine_dconf_level
      Src: /src/clamav/libclamav/builtin_bytecodes.h:186,1
    - Dst: __is_bigendian
      Src: /src/clamav/libclamav/builtin_bytecodes.h:189,1
    - Dst: debug_print_uint
      Src: /src/clamav/libclamav/builtin_bytecodes.h:200,1
    - Dst: debug_print_uint
      Src: /src/clamav/libclamav/builtin_bytecodes.h:204,1
    - Dst: debug_print_uint
      Src: /src/clamav/libclamav/builtin_bytecodes.h:208,1
    - Dst: test1
      Src: /src/clamav/libclamav/builtin_bytecodes.h:211,1
    - Dst: debug_print_uint
      Src: /src/clamav/libclamav/builtin_bytecodes.h:213,1
    - Dst: test2
      Src: /src/clamav/libclamav/builtin_bytecodes.h:216,1
    - Dst: debug_print_uint
      Src: /src/clamav/libclamav/builtin_bytecodes.h:218,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 224
    functionName: entrypoint
    functionSourceFile: /src/clamav/libclamav/builtin_bytecodes.h
    functionUses: 0
    functionsReached:
    - disable_jit_if
    - engine_dconf_level
    - debug_print_uint
    - debug
    - __is_bigendian
    - get_environment
    - test1
    - memcmp
    - engine_functionality_level
    - test2
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/msexpand.c:109,1
    - Dst: EC32
      Src: /src/clamav/libclamav/msexpand.c:112,1
    - Dst: EC32
      Src: /src/clamav/libclamav/msexpand.c:112,1
    - Dst: EC16
      Src: /src/clamav/libclamav/msexpand.c:112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msexpand.c:113,1
    - Dst: EC32
      Src: /src/clamav/libclamav/msexpand.c:117,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/msexpand.c:118,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/msexpand.c:120,1
    - Dst: memset
      Src: /src/clamav/libclamav/msexpand.c:123,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ctx
    - ofd
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 185
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 185
    functionName: cli_msexpand
    functionSourceFile: /src/clamav/libclamav/msexpand.c
    functionUses: 0
    functionsReached:
    - memset
    - EC16
    - fmap_need_off_once
    - EC32
    - cli_dbgmsg
    - cli_checklimits
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_msexpand(cli_ctx *ctx, int ofd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/cvd.c:58,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cvd.c:59,1
    - Dst: gzclose
      Src: /src/clamav/libclamav/cvd.c:61,1
    - Dst: fclose
      Src: /src/clamav/libclamav/cvd.c:64,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:68,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/cvd.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - comp
    - dbio
    - fdd
    argTypes:
    - int
    - struct cli_dbio*
    - int
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: cli_tgzload_cleanup
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cl_hash_destroy
    - gzclose
    - cli_dbgmsg
    - fclose
    - free
    linkageType: ''
    returnType: void
    signature: void cli_tgzload_cleanup(int comp, struct cli_dbio *dbio, int fdd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cvd.c:92,1
    - Dst: cvd_get_file_handle
      Src: /src/clamav/libclamav/cvd.c:96,1
    - Dst: _open_osfhandle
      Src: /src/clamav/libclamav/cvd.c:102,1
    - Dst: cvd_get_file_descriptor
      Src: /src/clamav/libclamav/cvd.c:108,1
    - Dst: lseek
      Src: /src/clamav/libclamav/cvd.c:114,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/cvd.c:118,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/cvd.c:121,1
    - Dst: lseek
      Src: /src/clamav/libclamav/cvd.c:124,1
    - Dst: dup
      Src: /src/clamav/libclamav/cvd.c:128,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:129,1
    - Dst: gzdopen
      Src: /src/clamav/libclamav/cvd.c:134,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:135,1
    - Dst: close
      Src: /src/clamav/libclamav/cvd.c:137,1
    - Dst: fdopen
      Src: /src/clamav/libclamav/cvd.c:142,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:143,1
    - Dst: close
      Src: /src/clamav/libclamav/cvd.c:145,1
    - Dst: malloc
      Src: /src/clamav/libclamav/cvd.c:152,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:154,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:155,1
    - Dst: gzread
      Src: /src/clamav/libclamav/cvd.c:165,1
    - Dst: fread
      Src: /src/clamav/libclamav/cvd.c:167,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:173,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:174,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/cvd.c:181,1
    - Dst: strchr
      Src: /src/clamav/libclamav/cvd.c:184,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:185,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:186,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:197,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:198,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:201,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:202,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/cvd.c:206,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/cvd.c:209,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:210,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:211,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/cvd.c:219,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:221,1
    - Dst: gzseek
      Src: /src/clamav/libclamav/cvd.c:229,1
    - Dst: ftell
      Src: /src/clamav/libclamav/cvd.c:231,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/cvd.c:233,1
    - Dst: CLI_DBEXT
      Src: /src/clamav/libclamav/cvd.c:233,1
    - Dst: cli_load
      Src: /src/clamav/libclamav/cvd.c:234,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:236,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:237,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:241,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/cvd.c:245,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:248,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:249,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:254,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:255,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/cvd.c:258,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/cvd.c:259,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:261,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/cvd.c:264,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:265,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:266,1
    - Dst: gzseek
      Src: /src/clamav/libclamav/cvd.c:274,1
    - Dst: gzseek
      Src: /src/clamav/libclamav/cvd.c:275,1
    - Dst: gzseek
      Src: /src/clamav/libclamav/cvd.c:277,1
    - Dst: ftell
      Src: /src/clamav/libclamav/cvd.c:279,1
    - Dst: fseek
      Src: /src/clamav/libclamav/cvd.c:280,1
    - Dst: fseek
      Src: /src/clamav/libclamav/cvd.c:282,1
    - Dst: cli_tgzload_cleanup
      Src: /src/clamav/libclamav/cvd.c:286,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 165
    argCount: 7
    argNames:
    - cvd
    - engine
    - signo
    - options
    - dbio
    - dbinfo
    - sign_verifier
    argTypes:
    - cvd_t*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    - struct cli_dbinfo*
    - void*
    constantsTouched: []
    func_position:
      end: 288
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 288
    functionName: cli_tgzload
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 0
    functionsReached:
    - gzread
    - cli_strbcasestr
    - dup
    - fdopen
    - memcmp
    - cl_hash_init
    - cli_readn
    - cli_tgzload_cleanup
    - fseek
    - lseek
    - ftell
    - strcmp
    - strncpy
    - gzdopen
    - gzseek
    - cli_dbgmsg
    - cvd_get_file_handle
    - cli_load
    - cvd_get_file_descriptor
    - sscanf
    - close
    - fread
    - malloc
    - _open_osfhandle
    - strchr
    - CLI_DBEXT
    - cl_finish_hash
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: int
    signature: int cli_tgzload(cvd_t *cvd, struct cl_engine *engine, unsigned int
      *signo, unsigned int options, struct cli_dbio *dbio, struct cli_dbinfo *dbinfo,
      void *sign_verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/cvd.c:295,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:296,1
    - Dst: malloc
      Src: /src/clamav/libclamav/cvd.c:300,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:301,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:305,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:306,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:307,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:311,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:312,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:313,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:314,1
    - Dst: atoi
      Src: /src/clamav/libclamav/cvd.c:317,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:318,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:320,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:321,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:322,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:323,1
    - Dst: atoi
      Src: /src/clamav/libclamav/cvd.c:326,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:327,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:329,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:330,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:331,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:332,1
    - Dst: atoi
      Src: /src/clamav/libclamav/cvd.c:335,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:336,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:338,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:339,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:340,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:341,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:345,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:346,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:347,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:348,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:349,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:353,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:354,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:355,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:356,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:357,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:358,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/cvd.c:362,1
    - Dst: atoi
      Src: /src/clamav/libclamav/cvd.c:363,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:364,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cvd.c:366,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 67
    argCount: 1
    argNames:
    - head
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 371
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 371
    functionName: cl_cvdparse
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 1
    functionsReached:
    - cli_strtok
    - cli_errmsg
    - cli_dbgmsg
    - malloc
    - atoi
    - free
    - strncmp
    linkageType: ''
    returnType: struct cl_cvd
    signature: struct cl_cvd *cl_cvdparse(const char *head)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/cvd.c:380,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:381,1
    - Dst: fread
      Src: /src/clamav/libclamav/cvd.c:385,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:386,1
    - Dst: fclose
      Src: /src/clamav/libclamav/cvd.c:387,1
    - Dst: fclose
      Src: /src/clamav/libclamav/cvd.c:391,1
    - Dst: strpbrk
      Src: /src/clamav/libclamav/cvd.c:394,1
    - Dst: cl_cvdparse
      Src: /src/clamav/libclamav/cvd.c:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 401
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 401
    functionName: cl_cvdhead
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 7
    functionsReached:
    - cl_cvdparse
    - fread
    - strpbrk
    - fclose
    - cli_errmsg
    - fopen
    linkageType: ''
    returnType: struct cl_cvd
    signature: struct cl_cvd *cl_cvdhead(const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:405,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:406,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:407,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:408,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cvd
    argTypes:
    - struct cl_cvd*
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: cl_cvdfree
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 8
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cl_cvdfree(struct cl_cvd *cvd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_cvdverify_ex
      Src: /src/clamav/libclamav/cvd.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: cl_cvdverify
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 2
    functionsReached:
    - cl_cvdverify_ex
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_cvdverify(const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_new
      Src: /src/clamav/libclamav/cvd.c:425,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:426,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/cvd.c:432,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/cvd.c:434,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/cvd.c:436,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:439,1
    - Dst: cl_engine_set_str
      Src: /src/clamav/libclamav/cvd.c:445,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:447,1
    - Dst: codesign_verifier_new
      Src: /src/clamav/libclamav/cvd.c:451,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:452,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:452,1
    - Dst: cli_cvdload
      Src: /src/clamav/libclamav/cvd.c:458,1
    - Dst: cl_engine_free
      Src: /src/clamav/libclamav/cvd.c:462,1
    - Dst: codesign_verifier_free
      Src: /src/clamav/libclamav/cvd.c:465,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:468,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - file
    - certs_directory
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 472
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 472
    functionName: cl_cvdverify_ex
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 2
    functionsReached:
    - cl_engine_set_str
    - cli_cvdload
    - codesign_verifier_free
    - cl_engine_free
    - ffierror_free
    - cli_strbcasestr
    - cl_engine_new
    - codesign_verifier_new
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_cvdverify_ex(const char *file, const char *certs_directory)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cvd.c:490,1
    - Dst: cvd_open
      Src: /src/clamav/libclamav/cvd.c:493,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:495,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:495,1
    - Dst: cvd_verify
      Src: /src/clamav/libclamav/cvd.c:501,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:507,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:507,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/cvd.c:518,1
    - Dst: strlen
      Src: /src/clamav/libclamav/cvd.c:524,1
    - Dst: cvd_open
      Src: /src/clamav/libclamav/cvd.c:526,1
    - Dst: cvd_get_version
      Src: /src/clamav/libclamav/cvd.c:528,1
    - Dst: cvd_get_version
      Src: /src/clamav/libclamav/cvd.c:528,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:529,1
    - Dst: cvd_get_version
      Src: /src/clamav/libclamav/cvd.c:532,1
    - Dst: cvd_get_version
      Src: /src/clamav/libclamav/cvd.c:532,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:534,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:541,1
    - Dst: strstr
      Src: /src/clamav/libclamav/cvd.c:547,1
    - Dst: time
      Src: /src/clamav/libclamav/cvd.c:548,1
    - Dst: cvd_get_time_creation
      Src: /src/clamav/libclamav/cvd.c:549,1
    - Dst: cvd_get_time_creation
      Src: /src/clamav/libclamav/cvd.c:550,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:551,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:552,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:553,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:554,1
    - Dst: cvd_get_time_creation
      Src: /src/clamav/libclamav/cvd.c:556,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:557,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:558,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:559,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:560,1
    - Dst: cvd_get_version
      Src: /src/clamav/libclamav/cvd.c:562,1
    - Dst: cvd_get_time_creation
      Src: /src/clamav/libclamav/cvd.c:563,1
    - Dst: cvd_get_min_flevel
      Src: /src/clamav/libclamav/cvd.c:566,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/cvd.c:566,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:567,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:568,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:569,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/cvd.c:570,1
    - Dst: cli_tgzload
      Src: /src/clamav/libclamav/cvd.c:575,1
    - Dst: cli_tgzload
      Src: /src/clamav/libclamav/cvd.c:577,1
    - Dst: cvd_get_version
      Src: /src/clamav/libclamav/cvd.c:587,1
    - Dst: cvd_get_num_sigs
      Src: /src/clamav/libclamav/cvd.c:588,1
    - Dst: cvd_get_min_flevel
      Src: /src/clamav/libclamav/cvd.c:589,1
    - Dst: cvd_get_time_creation
      Src: /src/clamav/libclamav/cvd.c:590,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:592,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:598,1
    - Dst: cli_tgzload
      Src: /src/clamav/libclamav/cvd.c:610,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/cvd.c:617,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/cvd.c:618,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libclamav/cvd.c:620,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/cvd.c:621,1
    - Dst: ffi_cstring_free
      Src: /src/clamav/libclamav/cvd.c:625,1
    - Dst: free
      Src: /src/clamav/libclamav/cvd.c:627,1
    - Dst: cvd_free
      Src: /src/clamav/libclamav/cvd.c:629,1
    - Dst: cvd_free
      Src: /src/clamav/libclamav/cvd.c:632,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:635,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:638,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 131
    argCount: 7
    argNames:
    - engine
    - signo
    - options
    - dbtype
    - filename
    - sign_verifier
    - chkonly
    argTypes:
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - cvd_type
    - char*
    - void*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 642
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 642
    functionName: cli_cvdload
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - cvd_open
    - cli_tgzload
    - strstr
    - ffierror_free
    - MPOOL_FREE
    - cli_dbgmsg
    - time
    - ffi_cstring_free
    - ffierror_fmt
    - cvd_get_min_flevel
    - cl_retflevel
    - cvd_get_num_sigs
    - cl_cvdfree
    - cli_safer_strdup
    - free
    - cvd_get_time_creation
    - strlen
    - cvd_get_version
    - cvd_verify
    - cvd_free
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_cvdload(struct cl_engine *engine, unsigned int *signo,
      unsigned int options, cvd_type dbtype, const char *filename, void *sign_verifier,
      unsigned int chkonly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cvd_open
      Src: /src/clamav/libclamav/cvd.c:653,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:655,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:655,1
    - Dst: cvd_verify
      Src: /src/clamav/libclamav/cvd.c:660,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:661,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:661,1
    - Dst: cvd_unpack
      Src: /src/clamav/libclamav/cvd.c:667,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:668,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:668,1
    - Dst: ffi_cstring_free
      Src: /src/clamav/libclamav/cvd.c:676,1
    - Dst: cvd_free
      Src: /src/clamav/libclamav/cvd.c:679,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:682,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:685,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:688,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - file
    - dir
    - dont_verify
    - verifier
    argTypes:
    - char*
    - char*
    - bool
    - void*
    constantsTouched: []
    func_position:
      end: 692
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 692
    functionName: cli_cvdunpack_and_verify
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 1
    functionsReached:
    - cvd_unpack
    - ffierror_free
    - cvd_verify
    - cvd_free
    - cvd_open
    - ffi_cstring_free
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_cvdunpack_and_verify(const char *file, const char *dir,
      bool dont_verify, void *verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cvd_open
      Src: /src/clamav/libclamav/cvd.c:704,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:706,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:706,1
    - Dst: cvd_unpack
      Src: /src/clamav/libclamav/cvd.c:712,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:713,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:713,1
    - Dst: codesign_verifier_new
      Src: /src/clamav/libclamav/cvd.c:724,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:725,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:725,1
    - Dst: cli_cvdunpack_and_verify
      Src: /src/clamav/libclamav/cvd.c:731,1
    - Dst: ffi_cstring_free
      Src: /src/clamav/libclamav/cvd.c:740,1
    - Dst: cvd_free
      Src: /src/clamav/libclamav/cvd.c:743,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:746,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:749,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:752,1
    - Dst: codesign_verifier_free
      Src: /src/clamav/libclamav/cvd.c:755,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 4
    argNames:
    - file
    - dir
    - dont_verify
    - certs_directory
    argTypes:
    - char*
    - char*
    - bool
    - char*
    constantsTouched: []
    func_position:
      end: 759
      start: 694
    functionDepth: 3
    functionLinenumber: 694
    functionLinenumberEnd: 759
    functionName: cl_cvdunpack_ex
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 1
    functionsReached:
    - codesign_verifier_free
    - cvd_unpack
    - ffierror_free
    - cli_cvdunpack_and_verify
    - ffi_cstring_free
    - cvd_free
    - cvd_open
    - codesign_verifier_new
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_cvdunpack_ex(const char *file, const char *dir, bool
      dont_verify, const char *certs_directory)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cvd_open
      Src: /src/clamav/libclamav/cvd.c:770,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:772,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:772,1
    - Dst: cvd_verify
      Src: /src/clamav/libclamav/cvd.c:777,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:778,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:778,1
    - Dst: cvd_unpack
      Src: /src/clamav/libclamav/cvd.c:784,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:785,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:785,1
    - Dst: ffi_cstring_free
      Src: /src/clamav/libclamav/cvd.c:793,1
    - Dst: cvd_free
      Src: /src/clamav/libclamav/cvd.c:796,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:799,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:802,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:805,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - file
    - dir
    - dont_verify
    argTypes:
    - char*
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 809
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 809
    functionName: cl_cvdunpack
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 0
    functionsReached:
    - cvd_unpack
    - ffierror_free
    - cvd_verify
    - cvd_free
    - cvd_open
    - ffi_cstring_free
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_cvdunpack(const char *file, const char *dir, bool dont_verify)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cvd_open
      Src: /src/clamav/libclamav/cvd.c:818,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:820,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/cvd.c:820,1
    - Dst: time
      Src: /src/clamav/libclamav/cvd.c:824,1
    - Dst: cvd_get_time_creation
      Src: /src/clamav/libclamav/cvd.c:826,1
    - Dst: cvd_get_time_creation
      Src: /src/clamav/libclamav/cvd.c:829,1
    - Dst: cvd_free
      Src: /src/clamav/libclamav/cvd.c:836,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/cvd.c:839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - path
    - age_seconds
    argTypes:
    - char*
    - time_t*
    constantsTouched: []
    func_position:
      end: 843
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 843
    functionName: cvdgetfileage
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 0
    functionsReached:
    - cvd_get_time_creation
    - ffierror_free
    - cvd_free
    - time
    - cvd_open
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cvdgetfileage(const char *path, time_t *age_seconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/cvd.c:855,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:856,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclamav/cvd.c:861,1
    - Dst: cvdgetfileage
      Src: /src/clamav/libclamav/cvd.c:862,1
    - Dst: opendir
      Src: /src/clamav/libclamav/cvd.c:866,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:867,1
    - Dst: strlen
      Src: /src/clamav/libclamav/cvd.c:872,1
    - Dst: strlen
      Src: /src/clamav/libclamav/cvd.c:874,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/cvd.c:875,1
    - Dst: strlen
      Src: /src/clamav/libclamav/cvd.c:875,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cvd.c:876,1
    - Dst: readdir
      Src: /src/clamav/libclamav/cvd.c:881,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/cvd.c:888,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/cvd.c:888,1
    - Dst: CLI_DBEXT_SIGNATURE
      Src: /src/clamav/libclamav/cvd.c:891,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/cvd.c:895,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/cvd.c:897,1
    - Dst: cvdgetfileage
      Src: /src/clamav/libclamav/cvd.c:899,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cvd.c:900,1
    - Dst: MIN
      Src: /src/clamav/libclamav/cvd.c:908,1
    - Dst: closedir
      Src: /src/clamav/libclamav/cvd.c:914,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - path
    - age_seconds
    argTypes:
    - char*
    - time_t*
    constantsTouched: []
    func_position:
      end: 917
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 917
    functionName: cl_cvdgetage
    functionSourceFile: /src/clamav/libclamav/cvd.c
    functionUses: 1
    functionsReached:
    - closedir
    - snprintf
    - strcmp
    - strlen
    - S_ISDIR
    - CLAMSTAT
    - opendir
    - readdir
    - CLI_DBEXT_SIGNATURE
    - cli_dbgmsg
    - MIN
    - cvdgetfileage
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_cvdgetage(const char *path, time_t *age_seconds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/message.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: messageCreate
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 7
    functionsReached:
    - calloc
    linkageType: ''
    returnType: message
    signature: 'message *

      messageCreate(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageReset
      Src: /src/clamav/libclamav/message.c:157,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: messageDestroy
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 8
    functionsReached:
    - messageReset
    - free
    linkageType: ''
    returnType: void
    signature: void messageDestroy(message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/message.c:171,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:174,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:178,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:179,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/message.c:183,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:186,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:191,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:194,1
    - Dst: memset
      Src: /src/clamav/libclamav/message.c:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 199
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 199
    functionName: messageReset
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 4
    functionsReached:
    - cli_errmsg
    - memset
    - free
    - textDestroy
    linkageType: ''
    returnType: void
    signature: void messageReset(message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:217,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:226,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/message.c:229,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/message.c:234,1
    - Dst: tableCreate
      Src: /src/clamav/libclamav/message.c:237,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/message.c:240,1
    - Dst: tableInsert
      Src: /src/clamav/libclamav/message.c:246,1
    - Dst: tableDestroy
      Src: /src/clamav/libclamav/message.c:247,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/message.c:250,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/message.c:256,1
    - Dst: tableFind
      Src: /src/clamav/libclamav/message.c:259,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:266,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/message.c:272,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:296,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:301,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - mess
    - type
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 309
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 309
    functionName: messageSetMimeType
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached:
    - strncasecmp
    - tableFind
    - tableDestroy
    - pthread_mutex_unlock
    - tableCreate
    - strcasecmp
    - isalpha
    - tableInsert
    - cli_dbgmsg
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int messageSetMimeType(message *mess, const char *type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: messageGetMimeType
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 4
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: mime_type
    signature: mime_type messageGetMimeType(const message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:325,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:334,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:339,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - m
    - subtype
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 342
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 342
    functionName: messageSetMimeSubtype
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached:
    - free
    - cli_dbgmsg
    - cli_safer_strdup
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void messageSetMimeSubtype(message *m, const char *subtype)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: messageGetMimeSubtype
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      messageGetMimeSubtype(const message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:353,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:358,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:370,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:373,1
    - Dst: strstrip
      Src: /src/clamav/libclamav/message.c:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - m
    - disptype
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 378
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 378
    functionName: messageSetDispositionType
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - strstrip
    - cli_errmsg
    - isspace
    - cli_safer_strdup
    - free
    linkageType: ''
    returnType: void
    signature: void messageSetDispositionType(message *m, const char *disptype)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: messageGetDispositionType
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      messageGetDispositionType(const message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:399,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:406,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:413,1
    - Dst: usefulArg
      Src: /src/clamav/libclamav/message.c:415,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/message.c:421,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/message.c:428,1
    - Dst: rfc2231
      Src: /src/clamav/libclamav/message.c:436,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:439,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:443,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/message.c:444,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:449,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:450,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:453,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:457,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:458,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:470,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:470,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/message.c:471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:472,1
    - Dst: messageSetMimeType
      Src: /src/clamav/libclamav/message.c:473,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - m
    - arg
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 475
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 475
    functionName: messageAddArgument
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 5
    functionsReached:
    - strlen
    - strcasecmp
    - messageSetMimeType
    - strchr
    - messageGetMimeType
    - rfc2231
    - cli_dbgmsg
    - isspace
    - strncasecmp
    - usefulArg
    - cli_max_realloc
    - cli_errmsg
    - strncmp
    - free
    linkageType: ''
    returnType: void
    signature: void messageAddArgument(message *m, const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:487,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:490,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:499,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:506,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:520,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:526,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:541,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:556,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:561,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:563,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:565,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:566,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:573,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:576,1
    - Dst: usefulArg
      Src: /src/clamav/libclamav/message.c:581,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:582,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:586,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:589,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:590,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:594,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:610,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:610,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/message.c:611,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:611,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:611,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/message.c:613,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/message.c:614,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:616,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:618,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:623,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:631,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/message.c:635,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/message.c:638,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/message.c:643,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:644,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 2
    argNames:
    - m
    - s
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 647
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 647
    functionName: messageAddArguments
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - messageAddArgument
    - strlen
    - cli_errmsg
    - strchr
    - cli_max_malloc
    - cli_dbgmsg
    - isspace
    - free
    - cli_max_realloc
    - usefulArg
    - memcpy
    - cli_safer_strdup
    - cli_strlcat
    linkageType: ''
    returnType: void
    signature: void messageAddArguments(message *m, const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - m
    - arg
    argTypes:
    - message*
    - size_t
    constantsTouched: []
    func_position:
      end: 662
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 662
    functionName: messageGetArgument
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      messageGetArgument(const message *m, size_t arg)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:675,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:679,1
    - Dst: messageGetArgument
      Src: /src/clamav/libclamav/message.c:684,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:688,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:691,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:693,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:696,1
    - Dst: messageGetArgument
      Src: /src/clamav/libclamav/message.c:696,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:700,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:700,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:717,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:718,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:723,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - m
    - variable
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 727
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 727
    functionName: messageFindArgument
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - strlen
    - strchr
    - cli_dbgmsg
    - isspace
    - strncasecmp
    - messageGetArgument
    - cli_safer_strdup
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      messageFindArgument(const message *m, const char *variable)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/message.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 738
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 738
    functionName: messageGetFilename
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - messageFindArgument
    linkageType: ''
    returnType: char
    signature: 'char *

      messageGetFilename(const message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:748,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:752,1
    - Dst: messageGetArgument
      Src: /src/clamav/libclamav/message.c:757,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:761,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:764,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:766,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:769,1
    - Dst: messageGetArgument
      Src: /src/clamav/libclamav/message.c:769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - m
    - variable
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 776
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 776
    functionName: messageHasArgument
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_dbgmsg
    - isspace
    - strncasecmp
    - messageGetArgument
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int messageHasArgument(const message *m, const char *variable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageHasArgument
      Src: /src/clamav/libclamav/message.c:780,1
    - Dst: messageHasArgument
      Src: /src/clamav/libclamav/message.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 781
      start: 778
    functionDepth: 4
    functionLinenumber: 778
    functionLinenumberEnd: 781
    functionName: messageHasFilename
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - messageHasArgument
    linkageType: ''
    returnType: int
    signature: int messageHasFilename(const message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:790,1
    - Dst: isblank
      Src: /src/clamav/libclamav/message.c:796,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:799,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/message.c:801,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:802,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/message.c:812,1
    - Dst: tolower
      Src: /src/clamav/libclamav/message.c:820,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/message.c:832,1
    - Dst: simil
      Src: /src/clamav/libclamav/message.c:839,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:850,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/message.c:855,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:862,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:879,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/message.c:881,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:883,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/message.c:888,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/message.c:889,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:893,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 2
    argNames:
    - m
    - enctype
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 895
      start: 783
    functionDepth: 3
    functionLinenumber: 783
    functionLinenumberEnd: 895
    functionName: messageSetEncoding
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 5
    functionsReached:
    - tolower
    - simil
    - cli_strtok
    - strcmp
    - strcasecmp
    - messageSetEncoding
    - cli_dbgmsg
    - free
    - cli_max_realloc
    - isblank
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void messageSetEncoding(message *m, const char *enctype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 908
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 908
    functionName: messageGetEncoding
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: encoding_type
    signature: encoding_type messageGetEncoding(const message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:913,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:918,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:920,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:925,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/message.c:931,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/message.c:932,1
    - Dst: messageIsEncoding
      Src: /src/clamav/libclamav/message.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - m
    - line
    argTypes:
    - message*
    - line_t*
    constantsTouched: []
    func_position:
      end: 939
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 939
    functionName: messageAddLine
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - lineLink
    - messageIsEncoding
    - malloc
    - lineGetData
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int messageAddLine(message *m, line_t *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:951,1
    - Dst: isspace
      Src: /src/clamav/libclamav/message.c:968,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:980,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:983,1
    - Dst: messageGetMimeType
      Src: /src/clamav/libclamav/message.c:991,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:995,1
    - Dst: messageDedup
      Src: /src/clamav/libclamav/message.c:997,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:998,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:1000,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/message.c:1005,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/message.c:1005,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:1013,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/message.c:1021,1
    - Dst: lineCreate
      Src: /src/clamav/libclamav/message.c:1023,1
    - Dst: messageDedup
      Src: /src/clamav/libclamav/message.c:1026,1
    - Dst: lineCreate
      Src: /src/clamav/libclamav/message.c:1027,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:1030,1
    - Dst: messageIsEncoding
      Src: /src/clamav/libclamav/message.c:1035,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - m
    - data
    argTypes:
    - message*
    - char*
    constantsTouched: []
    func_position:
      end: 1041
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 1041
    functionName: messageAddStr
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - lineLink
    - strcmp
    - messageIsEncoding
    - messageGetMimeType
    - lineCreate
    - isspace
    - malloc
    - lineGetData
    - cli_errmsg
    - messageDedup
    linkageType: ''
    returnType: int
    signature: int messageAddStr(message *m, const char *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lineUnlink
      Src: /src/clamav/libclamav/message.c:1069,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:1074,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1078,1
    - Dst: textMove
      Src: /src/clamav/libclamav/message.c:1096,1
    - Dst: textMove
      Src: /src/clamav/libclamav/message.c:1103,1
    - Dst: messageIsEncoding
      Src: /src/clamav/libclamav/message.c:1114,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - m
    - t
    - old_message
    argTypes:
    - message*
    - text*
    - message*
    constantsTouched: []
    func_position:
      end: 1118
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1118
    functionName: messageMoveText
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - lineUnlink
    - textMove
    - messageIsEncoding
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: int
    signature: int messageMoveText(message *m, text *t, message *old_message)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:1135,1
    - Dst: strstr
      Src: /src/clamav/libclamav/message.c:1136,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:1139,1
    - Dst: cli_compare_ftm_file
      Src: /src/clamav/libclamav/message.c:1140,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1140,1
    - Dst: strstr
      Src: /src/clamav/libclamav/message.c:1146,1
    - Dst: simil
      Src: /src/clamav/libclamav/message.c:1147,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/message.c:1154,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1156
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1156
    functionName: messageIsEncoding
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - simil
    - strstr
    - strlen
    - cli_compare_ftm_file
    - strncasecmp
    - strncmp
    linkageType: ''
    returnType: void
    signature: void messageIsEncoding(message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1169
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1169
    functionName: messageGetBody
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: text
    signature: 'text *

      messageGetBody(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1189,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1203,1
    - Dst: messageGetFilename
      Src: /src/clamav/libclamav/message.c:1206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1209,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/message.c:1210,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/message.c:1211,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/message.c:1211,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/message.c:1216,1
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/message.c:1218,1
    - Dst: messageFindArgument
      Src: /src/clamav/libclamav/message.c:1220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1223,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/message.c:1224,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/message.c:1231,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:1238,1
    - Dst: exportText
      Src: /src/clamav/libclamav/message.c:1241,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1241,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1256,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1262,1
    - Dst: yEncBegin
      Src: /src/clamav/libclamav/message.c:1266,1
    - Dst: yEncBegin
      Src: /src/clamav/libclamav/message.c:1272,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/message.c:1273,1
    - Dst: strstr
      Src: /src/clamav/libclamav/message.c:1275,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:1276,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/message.c:1278,1
    - Dst: strstrip
      Src: /src/clamav/libclamav/message.c:1279,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1280,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:1286,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1300,1
    - Dst: messageGetFilename
      Src: /src/clamav/libclamav/message.c:1303,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1306,1
    - Dst: messageAddArgument
      Src: /src/clamav/libclamav/message.c:1307,1
    - Dst: messageSetEncoding
      Src: /src/clamav/libclamav/message.c:1317,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1321,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:1325,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1332,1
    - Dst: exportText
      Src: /src/clamav/libclamav/message.c:1343,1
    - Dst: exportText
      Src: /src/clamav/libclamav/message.c:1346,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/message.c:1362,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1370,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/message.c:1373,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1375,1
    - Dst: decodeLine
      Src: /src/clamav/libclamav/message.c:1384,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:1387,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:1398,1
    - Dst: lineUnlink
      Src: /src/clamav/libclamav/message.c:1412,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1417,1
    - Dst: base64Flush
      Src: /src/clamav/libclamav/message.c:1425,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 145
    argCount: 5
    argNames:
    - m
    - dir
    - (*create)(void)
    - (*exportText)(text *, void *, int)
    - destroy_text
    argTypes:
    - message*
    - char*
    - void*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 1433
      start: 1178
    functionDepth: 5
    functionLinenumber: 1178
    functionLinenumberEnd: 1433
    functionName: messageExport
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 0
    functionsReached:
    - messageAddArgument
    - lineGetData
    - lineUnlink
    - strcmp
    - strstr
    - cli_dbgmsg
    - decodeLine
    - messageGetBody
    - cli_chomp
    - base64Flush
    - messageFindArgument
    - strstrip
    - messageSetEncoding
    - cli_max_malloc
    - exportText
    - cli_safer_strdup
    - free
    - messageGetFilename
    - strlen
    - yEncBegin
    - strncmp
    linkageType: ''
    returnType: void
    signature: 'void *

      messageExport(message *m, const char *dir, void *(*create)(void), void (*destroy)(void
      *), void (*setFilename)(void *, const char *, const char *), int (*addData)(void
      *, const unsigned char *, size_t), void *(*exportText)(text *, void *, int),
      void (*setCTX)(void *, cli_ctx *), int destroy_text)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - buf
    argTypes:
    - message*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1448
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1448
    functionName: base64Flush
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      base64Flush(message *m, unsigned char *buf)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1456,1
    - Dst: time
      Src: /src/clamav/libclamav/message.c:1457,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/message.c:1458,1
    - Dst: messageExport
      Src: /src/clamav/libclamav/message.c:1460,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/message.c:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - m
    - dir
    - md5id
    - part
    argTypes:
    - message*
    - char*
    - char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 1472
      start: 1450
    functionDepth: 6
    functionLinenumber: 1450
    functionLinenumberEnd: 1472
    functionName: messageSavePartial
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - snprintf
    - cli_dbgmsg
    - time
    - fileblobDestroy
    - messageExport
    linkageType: ''
    returnType: int
    signature: int messageSavePartial(message *m, const char *dir, const char *md5id,
      unsigned part)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1483,1
    - Dst: messageExport
      Src: /src/clamav/libclamav/message.c:1484,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/message.c:1493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - m
    - dir
    - destroy
    argTypes:
    - message*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1497
      start: 1478
    functionDepth: 6
    functionLinenumber: 1478
    functionLinenumberEnd: 1497
    functionName: messageToFileblob
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 4
    functionsReached:
    - cli_dbgmsg
    - messageExport
    - textDestroy
    linkageType: ''
    returnType: fileblob
    signature: 'fileblob *

      messageToFileblob(message *m, const char *dir, int destroy)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1508,1
    - Dst: messageExport
      Src: /src/clamav/libclamav/message.c:1510,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/message.c:1520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - m
    - destroy
    argTypes:
    - message*
    - int
    constantsTouched: []
    func_position:
      end: 1524
      start: 1503
    functionDepth: 6
    functionLinenumber: 1503
    functionLinenumberEnd: 1524
    functionName: messageToBlob
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - cli_dbgmsg
    - messageExport
    - textDestroy
    linkageType: ''
    returnType: blob
    signature: 'blob *

      messageToBlob(message *m, int destroy)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:1538,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1546,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1548,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1550,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/message.c:1556,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/message.c:1560,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1576,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1586,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1588,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1590,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/message.c:1596,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/message.c:1601,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/message.c:1607,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/message.c:1611,1
    - Dst: yEncBegin
      Src: /src/clamav/libclamav/message.c:1615,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/message.c:1622,1
    - Dst: binhexBegin
      Src: /src/clamav/libclamav/message.c:1629,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/message.c:1630,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1631,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1647,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:1648,1
    - Dst: decodeLine
      Src: /src/clamav/libclamav/message.c:1652,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:1658,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1663,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1665,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/message.c:1683,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1685,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/message.c:1687,1
    - Dst: lineCreate
      Src: /src/clamav/libclamav/message.c:1689,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:1692,1
    - Dst: memset
      Src: /src/clamav/libclamav/message.c:1698,1
    - Dst: decode
      Src: /src/clamav/libclamav/message.c:1699,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1701,1
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:1703,1
    - Dst: lineCreate
      Src: /src/clamav/libclamav/message.c:1708,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 125
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1718
      start: 1530
    functionDepth: 3
    functionLinenumber: 1530
    functionLinenumberEnd: 1718
    functionName: messageToText
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 0
    functionsReached:
    - lineLink
    - memset
    - cli_warnmsg
    - strlen
    - strchr
    - textDestroy
    - yEncBegin
    - binhexBegin
    - cli_dbgmsg
    - lineCreate
    - decode
    - malloc
    - decodeLine
    - messageGetBody
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: text
    signature: 'text *

      messageToText(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1724
      start: 1720
    functionDepth: 0
    functionLinenumber: 1720
    functionLinenumberEnd: 1724
    functionName: yEncBegin
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: text
    signature: 'text *

      yEncBegin(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1735,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/message.c:1736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1740
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1740
    functionName: binhexBegin
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - strcasecmp
    - messageGetBody
    linkageType: ''
    returnType: text
    signature: 'text *

      binhexBegin(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1746
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1746
    functionName: binhexBegin
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: text
    signature: 'text *

      binhexBegin(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1759,1
    - Dst: cli_compare_ftm_file
      Src: /src/clamav/libclamav/message.c:1760,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1764
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1764
    functionName: bounceBegin
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - strlen
    - cli_compare_ftm_file
    - messageGetBody
    linkageType: ''
    returnType: text
    signature: 'text *

      bounceBegin(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1770
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1770
    functionName: bounceBegin
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: text
    signature: 'text *

      bounceBegin(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/message.c:1789,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:1790,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1796
      start: 1784
    functionDepth: 1
    functionLinenumber: 1784
    functionLinenumberEnd: 1796
    functionName: messageIsAllText
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 0
    functionsReached:
    - strlen
    - messageGetBody
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int messageIsAllText(const message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 1802
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1802
    functionName: encodingLine
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: text
    signature: 'text *

      encodingLine(message *m)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1821,1
    - Dst: cli_strrcpy
      Src: /src/clamav/libclamav/message.c:1835,1
    - Dst: cli_strrcpy
      Src: /src/clamav/libclamav/message.c:1837,1
    - Dst: hex
      Src: /src/clamav/libclamav/message.c:1856,1
    - Dst: hex
      Src: /src/clamav/libclamav/message.c:1873,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1897,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/message.c:1898,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:1901,1
    - Dst: strchr
      Src: /src/clamav/libclamav/message.c:1906,1
    - Dst: sanitiseBase64
      Src: /src/clamav/libclamav/message.c:1910,1
    - Dst: decode
      Src: /src/clamav/libclamav/message.c:1915,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1915,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:1918,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/message.c:1927,1
    - Dst: isuuencodebegin
      Src: /src/clamav/libclamav/message.c:1929,1
    - Dst: uudecode
      Src: /src/clamav/libclamav/message.c:1939,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:1944,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1952,1
    - Dst: decode
      Src: /src/clamav/libclamav/message.c:1954,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/message.c:1962,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 103
    argCount: 5
    argNames:
    - m
    - et
    - line
    - buf
    - buflen
    argTypes:
    - message*
    - encoding_type
    - char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1977
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1977
    functionName: decodeLine
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 4
    functionsReached:
    - sanitiseBase64
    - strlen
    - hex
    - strcasecmp
    - isuuencodebegin
    - strchr
    - uudecode
    - cli_dbgmsg
    - cli_strrcpy
    - decode
    - free
    - strcpy
    - cli_safer_strdup
    - strncmp
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      decodeLine(message *m, encoding_type et, const char *line, unsigned char *buf,
      size_t buflen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:1988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1997
      start: 1985
    functionDepth: 2
    functionLinenumber: 1985
    functionLinenumberEnd: 1997
    functionName: sanitiseBase64
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void sanitiseBase64(char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:2031,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2061,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/message.c:2062,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/message.c:2063,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/message.c:2064,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:2102,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:2162,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 122
    argCount: 4
    argNames:
    - m
    - in
    - out
    - isFast
    argTypes:
    - message*
    - char*
    - unsigned char*
    - bool
    constantsTouched: []
    func_position:
      end: 2168
      start: 2006
    functionDepth: 2
    functionLinenumber: 2006
    functionLinenumberEnd: 2168
    functionName: decode
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 8
    functionsReached:
    - isalnum
    - cli_dbgmsg
    - cli_errmsg
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      decode(message *m, const char *in, unsigned char *out, unsigned char (*decoder)(char),
      bool isFast)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/message.c:2173,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 2186
      start: 2170
    functionDepth: 2
    functionLinenumber: 2170
    functionLinenumberEnd: 2186
    functionName: hex
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 7
    functionsReached:
    - cli_dbgmsg
    - isdigit
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char hex(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 2198
      start: 2188
    functionDepth: 0
    functionLinenumber: 2188
    functionLinenumberEnd: 2198
    functionName: base64
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char base64(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 2204
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2204
    functionName: uudecode
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char uudecode(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2216,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2217,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2218,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2219,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2220,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2221,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2222,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2223,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2228
      start: 2213
    functionDepth: 2
    functionLinenumber: 2213
    functionLinenumberEnd: 2228
    functionName: usefulArg
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached:
    - cli_dbgmsg
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int usefulArg(const char *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - ctx
    argTypes:
    - message*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2233
      start: 2230
    functionDepth: 0
    functionLinenumber: 2230
    functionLinenumberEnd: 2233
    functionName: messageSetCTX
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void messageSetCTX(message *m, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 2238
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2238
    functionName: messageContainsVirus
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int messageContainsVirus(const message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2254,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/message.c:2269,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2270,1
    - Dst: lineGetRefCount
      Src: /src/clamav/libclamav/message.c:2273,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/message.c:2294,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/message.c:2298,1
    - Dst: lineUnlink
      Src: /src/clamav/libclamav/message.c:2299,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2300,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/message.c:2301,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:2303,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2312,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 44
    argCount: 1
    argNames:
    - m
    argTypes:
    - message*
    constantsTouched: []
    func_position:
      end: 2314
      start: 2248
    functionDepth: 3
    functionLinenumber: 2248
    functionLinenumberEnd: 2314
    functionName: messageDedup
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - lineGetRefCount
    - lineUnlink
    - lineLink
    - strcmp
    - strlen
    - cli_dbgmsg
    - lineGetData
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void messageDedup(message *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/clamav/libclamav/message.c:2332,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/message.c:2336,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2336,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:2338,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/message.c:2358,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2359,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2366,1
    - Dst: strstr
      Src: /src/clamav/libclamav/message.c:2371,1
    - Dst: strstr
      Src: /src/clamav/libclamav/message.c:2379,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:2384,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2390,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/message.c:2392,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2392,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/message.c:2395,1
    - Dst: hex
      Src: /src/clamav/libclamav/message.c:2433,1
    - Dst: hex
      Src: /src/clamav/libclamav/message.c:2441,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2457,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2458,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:2459,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/message.c:2464,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 91
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2467
      start: 2323
    functionDepth: 3
    functionLinenumber: 2323
    functionLinenumberEnd: 2467
    functionName: rfc2231
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 1
    functionsReached:
    - strstr
    - strlen
    - hex
    - cli_max_malloc
    - cli_dbgmsg
    - free
    - strcpy
    - cli_safer_strdup
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      rfc2231(const char *in)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/message.c:2504,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:2507,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:2509,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2510,1
    - Dst: strstrip
      Src: /src/clamav/libclamav/message.c:2514,1
    - Dst: strstrip
      Src: /src/clamav/libclamav/message.c:2514,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2515,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2516,1
    - Dst: push
      Src: /src/clamav/libclamav/message.c:2522,1
    - Dst: push
      Src: /src/clamav/libclamav/message.c:2523,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2524,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2525,1
    - Dst: pop
      Src: /src/clamav/libclamav/message.c:2529,1
    - Dst: pop
      Src: /src/clamav/libclamav/message.c:2530,1
    - Dst: compare
      Src: /src/clamav/libclamav/message.c:2531,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2534,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2535,1
    - Dst: push
      Src: /src/clamav/libclamav/message.c:2538,1
    - Dst: push
      Src: /src/clamav/libclamav/message.c:2538,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2539,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2540,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2543,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2544,1
    - Dst: push
      Src: /src/clamav/libclamav/message.c:2547,1
    - Dst: push
      Src: /src/clamav/libclamav/message.c:2547,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2548,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2549,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2554,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2555,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2557
      start: 2493
    functionDepth: 3
    functionLinenumber: 2493
    functionLinenumberEnd: 2557
    functionName: simil
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 2
    functionsReached:
    - push
    - strstrip
    - strlen
    - strcasecmp
    - compare
    - pop
    - cli_safer_strdup
    - free
    linkageType: ''
    returnType: int
    signature: int simil(const char *str1, const char *str2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2568,1
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2569,1
    - Dst: tolower
      Src: /src/clamav/libclamav/message.c:2578,1
    - Dst: tolower
      Src: /src/clamav/libclamav/message.c:2578,1
    - Dst: tolower
      Src: /src/clamav/libclamav/message.c:2591,1
    - Dst: tolower
      Src: /src/clamav/libclamav/message.c:2591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - ls1
    - rs1
    - ls2
    - rs2
    argTypes:
    - char*
    - char**
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 2618
      start: 2559
    functionDepth: 1
    functionLinenumber: 2559
    functionLinenumberEnd: 2618
    functionName: compare
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - strlen
    - tolower
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int compare(char *ls1, char **rs1, char *ls2, char **rs2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/message.c:2625,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/message.c:2627,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - top
    - string
    argTypes:
    - LINK1*
    - char*
    constantsTouched: []
    func_position:
      end: 2635
      start: 2620
    functionDepth: 3
    functionLinenumber: 2620
    functionLinenumberEnd: 2635
    functionName: push
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - free
    - malloc
    - cli_safer_strdup
    linkageType: ''
    returnType: int
    signature: int push(LINK1 *top, const char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/clamav/libclamav/message.c:2643,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2645,1
    - Dst: free
      Src: /src/clamav/libclamav/message.c:2646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - top
    - buffer
    argTypes:
    - LINK1*
    - char*
    constantsTouched: []
    func_position:
      end: 2650
      start: 2637
    functionDepth: 0
    functionLinenumber: 2637
    functionLinenumberEnd: 2650
    functionName: pop
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 3
    functionsReached:
    - strcpy
    - free
    linkageType: ''
    returnType: int
    signature: int pop(LINK1 *top, char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/message.c:2660,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/message.c:2663,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/message.c:2664,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/message.c:2664,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/message.c:2665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2666
      start: 2655
    functionDepth: 1
    functionLinenumber: 2655
    functionLinenumberEnd: 2666
    functionName: isuuencodebegin
    functionSourceFile: /src/clamav/libclamav/message.c
    functionUses: 4
    functionsReached:
    - strlen
    - isdigit
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int isuuencodebegin(const char *line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:97,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:99,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:106,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:109,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - root
    - pattern
    - pt
    argTypes:
    - struct cli_matcher*
    - struct cli_ac_patt*
    - struct cli_ac_node*
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: insert_list
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - MPOOL_FREE
    - MPOOL_REALLOC
    - cli_errmsg
    - MPOOL_CALLOC::MPOOL_CALLOC
    linkageType: ''
    returnType: int
    signature: int insert_list(struct cli_matcher *root, struct cli_ac_patt *pattern,
      struct cli_ac_node *pt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:129,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:130,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:131,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:132,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:133,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher-ac.c:141,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher-ac.c:147,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:153,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:160,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:161,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:162,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher-ac.c:165,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:169,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher-ac.c:171,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:177,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/matcher-ac.c:178,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:183,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cli_ac_patt*
    - struct cli_ac_patt*
    constantsTouched: []
    func_position:
      end: 187
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 187
    functionName: patt_cmp_fn
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - memcmp
    - RETURN_RES_IF_NE
    linkageType: ''
    returnType: int
    signature: int patt_cmp_fn(const struct cli_ac_patt *a, const struct cli_ac_patt
      *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:199,1
    - Dst: patt_cmp_fn
      Src: /src/clamav/libclamav/matcher-ac.c:203,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:209,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 216
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 216
    functionName: sort_list_fn
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - RETURN_RES_IF_NE
    - patt_cmp_fn
    linkageType: ''
    returnType: int
    signature: int sort_list_fn(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:227,1
    - Dst: RETURN_RES_IF_NE
      Src: /src/clamav/libclamav/matcher-ac.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 249
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 249
    functionName: sort_heads_by_partno_fn
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - RETURN_RES_IF_NE
    linkageType: ''
    returnType: int
    signature: int sort_heads_by_partno_fn(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/matcher-ac.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - listtable
    - nentries
    argTypes:
    - struct cli_ac_list**
    - unsigned int
    constantsTouched: []
    func_position:
      end: 283
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 283
    functionName: link_node_lists
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - cli_qsort
    linkageType: ''
    returnType: void
    signature: void link_node_lists(struct cli_ac_list **listtable, unsigned int nentries)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/matcher-ac.c:294,1
    - Dst: link_node_lists
      Src: /src/clamav/libclamav/matcher-ac.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 306
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 306
    functionName: link_lists
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - link_node_lists
    - cli_qsort
    linkageType: ''
    returnType: void
    signature: void link_lists(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:323,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - root
    - trans
    argTypes:
    - struct cli_matcher*
    - struct cli_ac_node**
    constantsTouched: []
    func_position:
      end: 337
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 337
    functionName: store_trans_node
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - MPOOL_REALLOC
    linkageType: ''
    returnType: bool
    signature: bool store_trans_node(struct cli_matcher *root, struct cli_ac_node
      **trans)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:350,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: free_trans_nodes
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - MPOOL_FREE
    linkageType: ''
    returnType: void
    signature: void free_trans_nodes(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:364,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:366,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:371,1
    - Dst: trans::trans
      Src: /src/clamav/libclamav/matcher-ac.c:372,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:373,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:374,1
    - Dst: store_trans_node
      Src: /src/clamav/libclamav/matcher-ac.c:378,1
    - Dst: trans::trans
      Src: /src/clamav/libclamav/matcher-ac.c:378,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:380,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:386,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:389,1
    - Dst: trans::trans
      Src: /src/clamav/libclamav/matcher-ac.c:390,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:391,1
    - Dst: trans::trans
      Src: /src/clamav/libclamav/matcher-ac.c:391,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - root
    - i
    - len
    argTypes:
    - struct cli_matcher*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 400
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 400
    functionName: add_new_node
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - MPOOL_FREE
    - MPOOL_CALLOC::MPOOL_CALLOC
    - trans::trans
    - store_trans_node
    - MPOOL_REALLOC
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: struct cli_ac_node
    signature: struct cli_ac_node *add_new_node(struct cli_matcher *root, uint16_t
      i, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert_list
      Src: /src/clamav/libclamav/matcher-ac.c:409,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:414,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:416,1
    - Dst: store_trans_node
      Src: /src/clamav/libclamav/matcher-ac.c:419,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/matcher-ac.c:428,1
    - Dst: CLI_NOCASEI
      Src: /src/clamav/libclamav/matcher-ac.c:429,1
    - Dst: add_new_node
      Src: /src/clamav/libclamav/matcher-ac.c:431,1
    - Dst: CLI_NOCASEI
      Src: /src/clamav/libclamav/matcher-ac.c:435,1
    - Dst: cli_ac_addpatt_recursive
      Src: /src/clamav/libclamav/matcher-ac.c:437,1
    - Dst: add_new_node
      Src: /src/clamav/libclamav/matcher-ac.c:444,1
    - Dst: cli_ac_addpatt_recursive
      Src: /src/clamav/libclamav/matcher-ac.c:450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - root
    - pattern
    - pt
    - i
    - len
    argTypes:
    - struct cli_matcher*
    - struct cli_ac_patt*
    - struct cli_ac_node*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 451
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 451
    functionName: cli_ac_addpatt_recursive
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 1
    functionsReached:
    - insert_list
    - CLI_NOCASEI
    - cli_ac_addpatt_recursive
    - add_new_node
    - isalpha
    - store_trans_node
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: int
    signature: int cli_ac_addpatt_recursive(struct cli_matcher *root, struct cli_ac_patt
      *pattern, struct cli_ac_node *pt, uint16_t i, uint16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:473,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:476,1
    - Dst: cli_ac_addpatt_recursive
      Src: /src/clamav/libclamav/matcher-ac.c:485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - root
    - pattern
    argTypes:
    - struct cli_matcher*
    - struct cli_ac_patt*
    constantsTouched: []
    func_position:
      end: 486
      start: 453
    functionDepth: 5
    functionLinenumber: 453
    functionLinenumberEnd: 486
    functionName: cli_ac_addpatt
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 1
    functionsReached:
    - cli_errmsg
    - MPOOL_REALLOC
    - cli_ac_addpatt_recursive
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ac_addpatt(struct cli_matcher *root, struct cli_ac_patt
      *pattern)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc::malloc
      Src: /src/clamav/libclamav/matcher-ac.c:497,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - bfs
    - last
    - n
    argTypes:
    - struct bfs_list**
    - struct bfs_list**
    - struct cli_ac_node*
    constantsTouched: []
    func_position:
      end: 514
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 514
    functionName: bfs_enqueue
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - malloc::malloc
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int bfs_enqueue(struct bfs_list **bfs, struct bfs_list **last, struct
      cli_ac_node *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - bfs
    - last
    argTypes:
    - struct bfs_list**
    - struct bfs_list**
    constantsTouched: []
    func_position:
      end: 533
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 533
    functionName: bfs_dequeue
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: struct cli_ac_node
    signature: struct cli_ac_node *bfs_dequeue(struct bfs_list **bfs, struct bfs_list
      **last)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bfs_enqueue
      Src: /src/clamav/libclamav/matcher-ac.c:547,1
    - Dst: bfs_dequeue
      Src: /src/clamav/libclamav/matcher-ac.c:552,1
    - Dst: IS_LEAF
      Src: /src/clamav/libclamav/matcher-ac.c:553,1
    - Dst: IS_LEAF
      Src: /src/clamav/libclamav/matcher-ac.c:556,1
    - Dst: IS_FINAL
      Src: /src/clamav/libclamav/matcher-ac.c:556,1
    - Dst: IS_LEAF
      Src: /src/clamav/libclamav/matcher-ac.c:570,1
    - Dst: bfs_enqueue
      Src: /src/clamav/libclamav/matcher-ac.c:575,1
    - Dst: bfs_enqueue
      Src: /src/clamav/libclamav/matcher-ac.c:585,1
    - Dst: bfs_dequeue
      Src: /src/clamav/libclamav/matcher-ac.c:590,1
    - Dst: IS_LEAF
      Src: /src/clamav/libclamav/matcher-ac.c:591,1
    - Dst: IS_FINAL
      Src: /src/clamav/libclamav/matcher-ac.c:595,1
    - Dst: IS_LEAF
      Src: /src/clamav/libclamav/matcher-ac.c:595,1
    - Dst: IS_LEAF
      Src: /src/clamav/libclamav/matcher-ac.c:598,1
    - Dst: IS_FINAL
      Src: /src/clamav/libclamav/matcher-ac.c:603,1
    - Dst: IS_LEAF
      Src: /src/clamav/libclamav/matcher-ac.c:603,1
    - Dst: bfs_enqueue
      Src: /src/clamav/libclamav/matcher-ac.c:618,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 67
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 625
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 625
    functionName: ac_maketrans
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - bfs_enqueue
    - bfs_dequeue
    - IS_FINAL
    - IS_LEAF
    linkageType: ''
    returnType: int
    signature: int ac_maketrans(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-ac.c:633,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-ac.c:638,1
    - Dst: link_lists
      Src: /src/clamav/libclamav/matcher-ac.c:640,1
    - Dst: ac_maketrans
      Src: /src/clamav/libclamav/matcher-ac.c:642,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: cli_ac_buildtrie
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 5
    functionsReached:
    - link_lists
    - cli_dbgmsg
    - ac_maketrans
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ac_buildtrie(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/matcher-ac.c:648,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:651,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:653,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:657,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:659,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:660,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:668,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:670,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:671,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:672,1
    - Dst: filter_init
      Src: /src/clamav/libclamav/matcher-ac.c:675,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - root
    - mindepth
    - maxdepth
    - dconf_prefiltering
    argTypes:
    - struct cli_matcher*
    - uint8_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 679
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 679
    functionName: cli_ac_init
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 5
    functionsReached:
    - MPOOL_MALLOC
    - MPOOL_FREE
    - filter_init
    - assert
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ac_init(struct cli_matcher *root, uint8_t mindepth,
      uint8_t maxdepth, uint8_t dconf_prefiltering)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:699,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:702,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:703,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:708,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:709,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:713,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:715,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cli_ac_patt*
    constantsTouched: []
    func_position:
      end: 716
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 716
    functionName: ac_free_special
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - MPOOL_FREE
    linkageType: ''
    returnType: void
    signature: void ac_free_special(struct cli_ac_patt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:725,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:730,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:733,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:735,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:739,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:743,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:747,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:751,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:755,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:759,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:763,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:764,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:768,1
    - Dst: free_trans_nodes
      Src: /src/clamav/libclamav/matcher-ac.c:771,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 772
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: cli_ac_free
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 1
    functionsReached:
    - free_trans_nodes
    - MPOOL_FREE
    - mpool_ac_free_special
    linkageType: ''
    returnType: void
    signature: void cli_ac_free(struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:794,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-ac.c:808,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/matcher-ac.c:827,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/matcher-ac.c:829,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:832,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/matcher-ac.c:836,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:848,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/libclamav/matcher-ac.c:854,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/matcher-ac.c:856,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:858,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/matcher-ac.c:869,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:871,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:920,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:926,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/libclamav/matcher-ac.c:932,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:934,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/libclamav/matcher-ac.c:938,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:940,1
    - Dst: MAX
      Src: /src/clamav/libclamav/matcher-ac.c:948,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:950,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:962,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 197
    argCount: 6
    argNames:
    - expr
    - end
    - lsigcnt
    - cnt
    - ids
    - parse_only
    argTypes:
    - char*
    - char*
    - uint32_t*
    - unsigned int*
    - uint64_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1014
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 1014
    functionName: cli_ac_chklsig
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 4
    functionsReached:
    - sscanf
    - MAX
    - isdigit
    - strchr
    - cli_errmsg
    - cli_ac_chklsig
    linkageType: ''
    returnType: int
    signature: int cli_ac_chklsig(const char *expr, const char *end, uint32_t *lsigcnt,
      unsigned int *cnt, uint64_t *ids, unsigned int parse_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-ac.c:2408,1
    - Dst: ac_analyze_expr
      Src: /src/clamav/libclamav/matcher-ac.c:2410,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2422,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/matcher-ac.c:2429,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2430,1
    - Dst: ac_addspecial_add_alt_node
      Src: /src/clamav/libclamav/matcher-ac.c:2439,1
    - Dst: find_paren_end
      Src: /src/clamav/libclamav/matcher-ac.c:2442,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2444,1
    - Dst: ac_special_altexpand
      Src: /src/clamav/libclamav/matcher-ac.c:2449,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2456,1
    - Dst: ac_special_altexpand
      Src: /src/clamav/libclamav/matcher-ac.c:2460,1
    - Dst: find_paren_end
      Src: /src/clamav/libclamav/matcher-ac.c:2465,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2467,1
    - Dst: ac_special_altexpand
      Src: /src/clamav/libclamav/matcher-ac.c:2472,1
    - Dst: ac_addspecial_add_alt_node
      Src: /src/clamav/libclamav/matcher-ac.c:2500,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2509,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 92
    argCount: 8
    argNames:
    - hexpr
    - subexpr
    - maxlen
    - lvl
    - maxlvl
    - sigopts
    - special
    - root
    argTypes:
    - char*
    - char*
    - uint16_t
    - int
    - int
    - uint8_t
    - struct cli_ac_special*
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 2514
      start: 2401
    functionDepth: 2
    functionLinenumber: 2401
    functionLinenumberEnd: 2514
    functionName: ac_special_altexpand
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 1
    functionsReached:
    - strlen
    - ac_analyze_expr
    - find_paren_end
    - ac_addspecial_add_alt_node
    - ac_special_altexpand
    - cli_errmsg
    - cli_strlcat
    linkageType: ''
    returnType: int
    signature: int ac_special_altexpand(char *hexpr, char *subexpr, uint16_t maxlen,
      int lvl, int maxlvl, uint8_t sigopts, struct cli_ac_special *special, struct
      cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/matcher-ac.c:2522,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2523,1
    - Dst: ac_analyze_expr
      Src: /src/clamav/libclamav/matcher-ac.c:2527,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:2535,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2537,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2538,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:2543,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2545,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2546,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/matcher-ac.c:2553,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/matcher-ac.c:2555,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2556,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/matcher-ac.c:2559,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2560,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2563,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2569,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/matcher-ac.c:2577,1
    - Dst: cli_qsort_r
      Src: /src/clamav/libclamav/matcher-ac.c:2580,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2584,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2585,1
    - Dst: calloc
      Src: /src/clamav/libclamav/matcher-ac.c:2592,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2593,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2594,1
    - Dst: ac_special_altexpand
      Src: /src/clamav/libclamav/matcher-ac.c:2598,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2600,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2601,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2605,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 4
    argNames:
    - hexpr
    - sigopts
    - special
    - root
    argTypes:
    - char*
    - uint8_t
    - struct cli_ac_special*
    - struct cli_matcher*
    constantsTouched: []
    func_position:
      end: 2607
      start: 2517
    functionDepth: 3
    functionLinenumber: 2517
    functionLinenumberEnd: 2607
    functionName: ac_special_altstr
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - CLI_MPOOL_HEX2STR
    - cli_strtok
    - calloc
    - MPOOL_MALLOC
    - ac_analyze_expr
    - MPOOL_FREE
    - cli_qsort
    - cli_qsort_r
    - free
    - ac_special_altexpand
    - cli_safer_strdup
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int ac_special_altstr(const char *hexpr, uint8_t sigopts, struct cli_ac_special
      *special, struct cli_matcher *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2621,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-ac.c:2625,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2626,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:2630,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/matcher-ac.c:2645,1
    - Dst: lsigid::lsigid
      Src: /src/clamav/libclamav/matcher-ac.c:2645,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-ac.c:2648,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/matcher-ac.c:2649,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2650,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-ac.c:2658,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-ac.c:2663,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2664,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/matcher-ac.c:2671,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2675,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2681,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-ac.c:2686,1
    - Dst: cli_hex2ui
      Src: /src/clamav/libclamav/matcher-ac.c:2692,1
    - Dst: CLI_NOCASE
      Src: /src/clamav/libclamav/matcher-ac.c:2699,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2702,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-ac.c:2706,1
    - Dst: cli_hex2ui
      Src: /src/clamav/libclamav/matcher-ac.c:2708,1
    - Dst: CLI_NOCASE
      Src: /src/clamav/libclamav/matcher-ac.c:2715,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2718,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2728,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2729,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/matcher-ac.c:2733,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2734,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2736,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-ac.c:2741,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/matcher-ac.c:2748,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2749,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-ac.c:2753,1
    - Dst: calloc
      Src: /src/clamav/libclamav/matcher-ac.c:2754,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2755,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2756,1
    - Dst: strchr
      Src: /src/clamav/libclamav/matcher-ac.c:2761,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:2768,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2770,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/matcher-ac.c:2780,1
    - Dst: find_paren_end
      Src: /src/clamav/libclamav/matcher-ac.c:2782,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2784,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2785,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-ac.c:2790,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2791,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2792,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2798,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2799,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher-ac.c:2812,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2817,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2823,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher-ac.c:2826,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2831,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2837,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher-ac.c:2840,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2845,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2851,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/matcher-ac.c:2855,1
    - Dst: special::special
      Src: /src/clamav/libclamav/matcher-ac.c:2856,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/matcher-ac.c:2857,1
    - Dst: special_table::special_table
      Src: /src/clamav/libclamav/matcher-ac.c:2857,1
    - Dst: special::special
      Src: /src/clamav/libclamav/matcher-ac.c:2857,1
    - Dst: special::special
      Src: /src/clamav/libclamav/matcher-ac.c:2859,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2860,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2861,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher-ac.c:2868,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher-ac.c:2870,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/matcher-ac.c:2872,1
    - Dst: ac_special_altstr
      Src: /src/clamav/libclamav/matcher-ac.c:2875,1
    - Dst: cli_strlcat
      Src: /src/clamav/libclamav/matcher-ac.c:2883,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2886,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2889,1
    - Dst: special::special
      Src: /src/clamav/libclamav/matcher-ac.c:2890,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:2891,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2893,1
    - Dst: CLI_MPOOL_HEX2UI
      Src: /src/clamav/libclamav/matcher-ac.c:2901,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2902,1
    - Dst: special::special
      Src: /src/clamav/libclamav/matcher-ac.c:2903,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:2904,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2906,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2907,1
    - Dst: strlen
      Src: /src/clamav/libclamav/matcher-ac.c:2911,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:2912,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2913,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:2913,1
    - Dst: special::special
      Src: /src/clamav/libclamav/matcher-ac.c:2914,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:2915,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2917,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2917,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2918,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2919,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2924,1
    - Dst: special_table::special_table
      Src: /src/clamav/libclamav/matcher-ac.c:2925,1
    - Dst: special_table::special_table
      Src: /src/clamav/libclamav/matcher-ac.c:2926,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:2929,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:2930,1
    - Dst: free
      Src: /src/clamav/libclamav/matcher-ac.c:2934,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2940,1
    - Dst: CLI_NOCASE
      Src: /src/clamav/libclamav/matcher-ac.c:2941,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2941,1
    - Dst: filter_add_acpatt
      Src: /src/clamav/libclamav/matcher-ac.c:2950,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/matcher-ac.c:2951,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:2952,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:2969,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2970,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2975,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:2988,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:2993,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3006,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:3007,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3007,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3025,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3025,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:3031,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3032,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3033,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:3042,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:3043,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3044,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3044,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3045,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3050,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3054,1
    - Dst: special_pattern::special_pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3055,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3057,1
    - Dst: special_table::special_table
      Src: /src/clamav/libclamav/matcher-ac.c:3058,1
    - Dst: special_table::special_table
      Src: /src/clamav/libclamav/matcher-ac.c:3059,1
    - Dst: prefix_length::prefix_length
      Src: /src/clamav/libclamav/matcher-ac.c:3062,1
    - Dst: prefix_length::prefix_length
      Src: /src/clamav/libclamav/matcher-ac.c:3063,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3068,1
    - Dst: prefix_length::prefix_length
      Src: /src/clamav/libclamav/matcher-ac.c:3070,1
    - Dst: prefix_length::prefix_length
      Src: /src/clamav/libclamav/matcher-ac.c:3071,1
    - Dst: prefix_length::prefix_length
      Src: /src/clamav/libclamav/matcher-ac.c:3072,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:3075,1
    - Dst: prefix_length::prefix_length
      Src: /src/clamav/libclamav/matcher-ac.c:3075,1
    - Dst: length::length
      Src: /src/clamav/libclamav/matcher-ac.c:3077,1
    - Dst: prefix_length::prefix_length
      Src: /src/clamav/libclamav/matcher-ac.c:3077,1
    - Dst: lsigid::lsigid
      Src: /src/clamav/libclamav/matcher-ac.c:3080,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/matcher-ac.c:3087,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3089,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3089,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3089,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3089,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:3090,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3091,1
    - Dst: cli_caloff
      Src: /src/clamav/libclamav/matcher-ac.c:3098,1
    - Dst: offdata::offdata
      Src: /src/clamav/libclamav/matcher-ac.c:3098,1
    - Dst: offset_min::offset_min
      Src: /src/clamav/libclamav/matcher-ac.c:3098,1
    - Dst: offset_max::offset_max
      Src: /src/clamav/libclamav/matcher-ac.c:3098,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3100,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3100,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3100,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3100,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:3101,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3103,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3105,1
    - Dst: cli_ac_addpatt
      Src: /src/clamav/libclamav/matcher-ac.c:3109,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3110,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3110,1
    - Dst: prefix::prefix
      Src: /src/clamav/libclamav/matcher-ac.c:3110,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/matcher-ac.c:3110,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3112,1
    - Dst: mpool_ac_free_special
      Src: /src/clamav/libclamav/matcher-ac.c:3114,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/matcher-ac.c:3115,1
    - Dst: offdata::offdata
      Src: /src/clamav/libclamav/matcher-ac.c:3119,1
    - Dst: offdata::offdata
      Src: /src/clamav/libclamav/matcher-ac.c:3120,1
    - Dst: offdata::offdata
      Src: /src/clamav/libclamav/matcher-ac.c:3121,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/matcher-ac.c:3123,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/matcher-ac.c:3125,1
    - Dst: offset_min::offset_min
      Src: /src/clamav/libclamav/matcher-ac.c:3131,1
    CyclomaticComplexity: 135
    EdgeCount: 135
    ICount: 399
    argCount: 14
    argNames:
    - root
    - virname
    - hexsig
    - sigopts
    - sigid
    - parts
    - partno
    - rtype
    - type
    - mindist
    - maxdist
    - offset
    - lsigid
    - options
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    - uint8_t
    - uint32_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint32_t
    - uint32_t
    - char*
    - uint32_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3136
      start: 2610
    functionDepth: 6
    functionLinenumber: 2610
    functionLinenumberEnd: 3136
    functionName: cli_ac_addsig
    functionSourceFile: /src/clamav/libclamav/matcher-ac.c
    functionUses: 0
    functionsReached:
    - CLI_MPOOL_VIRNAME
    - cli_warnmsg
    - offdata::offdata
    - MPOOL_REALLOC2
    - lsigid::lsigid
    - MPOOL_CALLOC
    - mpool_ac_free_special
    - pattern::pattern
    - strcmp
    - length::length
    - cli_errmsg
    - CLI_NOCASE
    - MPOOL_FREE
    - CLI_MPOOL_HEX2UI
    - cli_dbgmsg
    - sscanf
    - cli_hex2ui
    - calloc
    - special::special
    - filter_add_acpatt
    - MPOOL_REALLOC
    - ac_special_altstr
    - prefix_length::prefix_length
    - cli_caloff
    - cli_safer_strdup
    - free
    - cli_strlcat
    - special_table::special_table
    - prefix::prefix
    - offset_min::offset_min
    - strlen
    - offset_max::offset_max
    - cli_ac_addpatt
    - strchr
    - memcpy
    - special_pattern::special_pattern
    - find_paren_end
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ac_addsig(struct cli_matcher *root, const char *virname,
      const char *hexsig, uint8_t sigopts, uint32_t sigid, uint16_t parts, uint16_t
      partno, uint16_t rtype, uint16_t type, uint32_t mindist, uint32_t maxdist, const
      char *offset, const uint32_t *lsigid, unsigned int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:75,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/sis.c:77,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/sis.c:79,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:80,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:81,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:85,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/sis.c:87,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:88,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/sis.c:89,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:90,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:94,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:94,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:94,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:94,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:94,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/sis.c:95,1
    - Dst: real_scansis
      Src: /src/clamav/libclamav/sis.c:96,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/sis.c:97,1
    - Dst: real_scansis9x
      Src: /src/clamav/libclamav/sis.c:98,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:100,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/sis.c:105,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 109
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 109
    functionName: cli_scansis
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_rmdirs
    - le32_to_host
    - mkdir
    - EC32
    - fmap_readn
    - cli_dbgmsg
    - real_scansis
    - real_scansis9x
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scansis(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/sis.c:193,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:195,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/sis.c:198,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:199,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - map
    - ptr
    - len
    argTypes:
    - fmap_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: getsistring
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached:
    - cli_max_malloc
    - cli_dbgmsg
    - free
    - fmap_readn
    linkageType: ''
    returnType: char
    signature: char *getsistring(fmap_t *map, uint32_t ptr, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/sis.c:216,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:217,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:225,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:225,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:225,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:226,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/sis.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - map
    - pos
    - langs
    - alangs
    argTypes:
    - fmap_t*
    - size_t
    - uint16_t
    - char**
    constantsTouched: []
    func_position:
      end: 231
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 231
    functionName: spamsisnames
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached:
    - fmap_need_off
    - EC32
    - cli_dbgmsg
    - fmap_unneed_off
    - free
    linkageType: ''
    returnType: int
    signature: int spamsisnames(fmap_t *map, size_t pos, uint16_t langs, const char
      **alangs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/sis.c:275,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:276,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:283,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:284,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:285,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:286,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:287,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:288,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:289,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:290,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:291,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:295,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/sis.c:301,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:302,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/sis.c:306,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:307,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:311,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:311,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:316,1
    - Dst: spamsisnames
      Src: /src/clamav/libclamav/sis.c:317,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:324,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:326,1
    - Dst: spamsisnames
      Src: /src/clamav/libclamav/sis.c:327,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:334,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:336,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/sis.c:346,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:347,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:350,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:350,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:350,1
    - Dst: EC16
      Src: /src/clamav/libclamav/sis.c:350,1
    - Dst: EC32
      Src: /src/clamav/libclamav/sis.c:350,1
    - Dst: spamsisnames
      Src: /src/clamav/libclamav/sis.c:351,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:360,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:363,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:372,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:373,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:384,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:385,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:386,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:387,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:388,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:389,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:424,1
    - Dst: getsistring
      Src: /src/clamav/libclamav/sis.c:425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:426,1
    - Dst: getsistring
      Src: /src/clamav/libclamav/sis.c:429,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:430,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:431,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/sis.c:434,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:435,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:442,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:444,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:446,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:460,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:465,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/sis.c:469,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:470,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/sis.c:472,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:473,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/sis.c:481,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/sis.c:483,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/sis.c:489,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:490,1
    - Dst: uncompress
      Src: /src/clamav/libclamav/sis.c:493,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:494,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:495,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/sis.c:506,1
    - Dst: open
      Src: /src/clamav/libclamav/sis.c:508,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/sis.c:509,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/sis.c:513,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:518,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/sis.c:520,1
    - Dst: close
      Src: /src/clamav/libclamav/sis.c:525,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:532,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:533,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:539,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:540,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:544,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:545,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:548,1
    - Dst: GETD2
      Src: /src/clamav/libclamav/sis.c:549,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:552,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:556,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:560,1
    - Dst: SKIP
      Src: /src/clamav/libclamav/sis.c:563,1
    - Dst: close
      Src: /src/clamav/libclamav/sis.c:570,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:572,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:573,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:574,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/sis.c:575,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 258
    argCount: 2
    argNames:
    - ctx
    - tmpd
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 578
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 578
    functionName: real_scansis
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 1
    functionsReached:
    - spamsisnames
    - cli_magic_scan_desc
    - snprintf
    - EC32
    - uncompress
    - EC16
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_checklimits
    - CLI_FREE_AND_SET_NULL
    - cli_writen
    - GETD2
    - close
    - SKIP
    - open
    - fmap_readn
    - cli_max_malloc
    - getsistring
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t real_scansis(cli_ctx *ctx, const char *tmpd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/sis.c:650,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/sis.c:651,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/sis.c:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - v
    argTypes:
    - struct SISTREAM*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 660
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 660
    functionName: getd
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_readint32
    - fmap_readn
    linkageType: ''
    returnType: int
    signature: int getd(struct SISTREAM *s, uint32_t *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getd
      Src: /src/clamav/libclamav/sis.c:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct SISTREAM*
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: getsize
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached:
    - getd
    linkageType: ''
    returnType: int
    signature: int getsize(struct SISTREAM *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getd
      Src: /src/clamav/libclamav/sis.c:674,1
    - Dst: getsize
      Src: /src/clamav/libclamav/sis.c:675,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:678,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - field
    argTypes:
    - struct SISTREAM*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 683
      start: 671
    functionDepth: 4
    functionLinenumber: 671
    functionLinenumberEnd: 683
    functionName: getfield
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached:
    - getsize
    - cli_dbgmsg
    - getd
    linkageType: ''
    returnType: int
    signature: int getfield(struct SISTREAM *s, uint32_t *field)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - struct SISTREAM*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 700
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 700
    functionName: skip
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int skip(struct SISTREAM *s, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skip
      Src: /src/clamav/libclamav/sis.c:704,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct SISTREAM*
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: skipthis
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached:
    - ALIGN4
    - skip
    linkageType: ''
    returnType: int
    signature: int skipthis(struct SISTREAM *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct SISTREAM*
    constantsTouched: []
    func_position:
      end: 712
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: seeknext
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void seeknext(struct SISTREAM *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getfield
      Src: /src/clamav/libclamav/sis.c:729,1
    - Dst: getfield
      Src: /src/clamav/libclamav/sis.c:734,1
    - Dst: skipthis
      Src: /src/clamav/libclamav/sis.c:737,1
    - Dst: getfield
      Src: /src/clamav/libclamav/sis.c:747,1
    - Dst: getfield
      Src: /src/clamav/libclamav/sis.c:752,1
    - Dst: getd
      Src: /src/clamav/libclamav/sis.c:752,1
    - Dst: getsize
      Src: /src/clamav/libclamav/sis.c:756,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:757,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:758,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:759,1
    - Dst: getfield
      Src: /src/clamav/libclamav/sis.c:765,1
    - Dst: getd
      Src: /src/clamav/libclamav/sis.c:765,1
    - Dst: getsize
      Src: /src/clamav/libclamav/sis.c:769,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:776,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:777,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:778,1
    - Dst: getfield
      Src: /src/clamav/libclamav/sis.c:784,1
    - Dst: getd
      Src: /src/clamav/libclamav/sis.c:784,1
    - Dst: getd
      Src: /src/clamav/libclamav/sis.c:784,1
    - Dst: getd
      Src: /src/clamav/libclamav/sis.c:784,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:786,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/sis.c:787,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/sis.c:792,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:792,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/sis.c:793,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:793,1
    - Dst: ALIGN4
      Src: /src/clamav/libclamav/sis.c:795,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/sis.c:796,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:797,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/sis.c:805,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/sis.c:807,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:810,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/sis.c:814,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:815,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:816,1
    - Dst: uncompress
      Src: /src/clamav/libclamav/sis.c:819,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:820,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:822,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:823,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:827,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/sis.c:829,1
    - Dst: open
      Src: /src/clamav/libclamav/sis.c:834,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/sis.c:835,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:836,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/sis.c:839,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:840,1
    - Dst: close
      Src: /src/clamav/libclamav/sis.c:841,1
    - Dst: free
      Src: /src/clamav/libclamav/sis.c:844,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/sis.c:845,1
    - Dst: close
      Src: /src/clamav/libclamav/sis.c:847,1
    - Dst: close
      Src: /src/clamav/libclamav/sis.c:850,1
    - Dst: seeknext
      Src: /src/clamav/libclamav/sis.c:854,1
    - Dst: seeknext
      Src: /src/clamav/libclamav/sis.c:860,1
    - Dst: seeknext
      Src: /src/clamav/libclamav/sis.c:866,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 131
    argCount: 2
    argNames:
    - ctx
    - tmpd
    argTypes:
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 869
      start: 714
    functionDepth: 5
    functionLinenumber: 714
    functionLinenumberEnd: 869
    functionName: real_scansis9x
    functionSourceFile: /src/clamav/libclamav/sis.c
    functionUses: 1
    functionsReached:
    - uncompress
    - skipthis
    - getfield
    - getsize
    - snprintf
    - close
    - cli_magic_scan_desc
    - seeknext
    - cli_errmsg
    - open
    - getd
    - fmap_readn
    - cli_max_malloc
    - ALIGN4
    - cli_dbgmsg
    - cli_checklimits
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t real_scansis9x(cli_ctx *ctx, const char *tmpd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/apm.c:62,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/apm.c:68,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:69,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/apm.c:75,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/apm.c:76,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:77,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:81,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:92,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/apm.c:100,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:101,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/apm.c:106,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/apm.c:116,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:117,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/apm.c:123,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:124,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:125,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:126,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:130,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:136,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:137,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:138,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:139,1
    - Dst: apm_partition_intersection
      Src: /src/clamav/libclamav/apm.c:146,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:153,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:155,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:156,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:157,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:158,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/apm.c:174,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:175,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/apm.c:181,1
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/apm.c:182,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:183,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:184,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:185,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:189,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:195,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:196,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:199,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:207,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:208,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:209,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:210,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:211,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:212,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:226,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:227,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:228,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:229,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:230,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/apm.c:234,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:241,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 136
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 247
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 247
    functionName: cli_scanapm
    functionSourceFile: /src/clamav/libclamav/apm.c
    functionUses: 0
    functionsReached:
    - apm_partition_intersection
    - cli_errmsg
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - be16_to_host
    - be32_to_host
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanapm(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: partition_intersection_list_init
      Src: /src/clamav/libclamav/apm.c:259,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/apm.c:271,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:272,1
    - Dst: partition_intersection_list_free
      Src: /src/clamav/libclamav/apm.c:273,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:279,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/apm.c:280,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:283,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:284,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:285,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:286,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:287,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/apm.c:288,1
    - Dst: partition_intersection_list_check
      Src: /src/clamav/libclamav/apm.c:294,1
    - Dst: apm_parsemsg
      Src: /src/clamav/libclamav/apm.c:297,1
    - Dst: apm_parsemsg
      Src: /src/clamav/libclamav/apm.c:298,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/apm.c:300,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/apm.c:303,1
    - Dst: partition_intersection_list_free
      Src: /src/clamav/libclamav/apm.c:318,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - ctx
    - aptable
    - sectorsize
    - old_school
    argTypes:
    - cli_ctx*
    - struct apm_partition_info*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 321
      start: 249
    functionDepth: 5
    functionLinenumber: 249
    functionLinenumberEnd: 321
    functionName: apm_partition_intersection
    functionSourceFile: /src/clamav/libclamav/apm.c
    functionUses: 1
    functionsReached:
    - partition_intersection_list_free
    - partition_intersection_list_init
    - partition_intersection_list_check
    - cli_append_potentially_unwanted
    - fmap_readn
    - cli_dbgmsg
    - apm_parsemsg
    - be32_to_host
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t apm_partition_intersection(cli_ctx *ctx, struct apm_partition_info
      *aptable, size_t sectorsize, bool old_school)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EC32
      Src: /src/clamav/libclamav/mew.c:96,1
    - Dst: CE32
      Src: /src/clamav/libclamav/mew.c:96,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - old_edx
    argTypes:
    - struct lzmastate*
    - char*
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: lzma_bswap_4861dc
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    - EC32
    - CE32
    linkageType: ''
    returnType: char
    signature: char *lzma_bswap_4861dc(struct lzmastate *p, const char *old_edx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:106,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:106,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:110,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/mew.c:121,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/mew.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 4
    argNames:
    - p
    - old_ecx
    - src
    - size
    argTypes:
    - struct lzmastate*
    - char**
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 151
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 151
    functionName: lzma_486248
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - CLI_ISCONTAINED
    - cli_readint32
    - cli_writeint32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_486248(struct lzmastate *p, const char **old_ecx, char
      *src, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:162,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:176,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 6
    argNames:
    - znaczek
    - old_ecx
    - p
    - retval
    - src
    - size
    argTypes:
    - uint8_t
    - char**
    - struct lzmastate*
    - uint32_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 192
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 192
    functionName: lzma_48635C
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - lzma_486248
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_48635C(uint8_t znaczek, const char **old_ecx, struct
      lzmastate *p, uint32_t *retval, char *src, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - p
    - old_ecx
    - old_edx
    - retval
    - src
    - size
    argTypes:
    - struct lzmastate*
    - char**
    - uint32_t*
    - uint32_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 223
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 223
    functionName: lzma_4862e0
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - lzma_486248
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_4862e0(struct lzmastate *p, const char **old_ecx, uint32_t
      *old_edx, uint32_t *retval, char *src, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:231,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:236,1
    - Dst: lzma_4862e0
      Src: /src/clamav/libclamav/mew.c:242,1
    - Dst: lzma_4862e0
      Src: /src/clamav/libclamav/mew.c:250,1
    - Dst: lzma_4862e0
      Src: /src/clamav/libclamav/mew.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 7
    argNames:
    - var0
    - p
    - old_ecx
    - old_edx
    - retval
    - src
    - size
    argTypes:
    - uint32_t
    - struct lzmastate*
    - char**
    - uint32_t*
    - uint32_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 264
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 264
    functionName: lzma_4863da
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - lzma_4862e0
    - lzma_486248
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_4863da(uint32_t var0, struct lzmastate *p, const char
      **old_ecx, uint32_t *old_edx, uint32_t *retval, char *src, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - p
    - old_edx
    - retval
    - src
    - size
    argTypes:
    - struct lzmastate*
    - uint32_t
    - uint32_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 300
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 300
    functionName: lzma_486204
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - CLI_ISCONTAINED
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_486204(struct lzmastate *p, uint32_t old_edx, uint32_t
      *retval, char *src, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 6
    argNames:
    - p
    - old_ecx
    - old_edx
    - retval
    - src
    - size
    argTypes:
    - struct lzmastate*
    - char**
    - uint32_t*
    - uint32_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 334
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 334
    functionName: lzma_48631a
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - lzma_486248
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_48631a(struct lzmastate *p, const char **old_ecx, uint32_t
      *old_edx, uint32_t *retval, char *src, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:356,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:359,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:370,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:373,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:377,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:381,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:383,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:387,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:398,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/mew.c:401,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:409,1
    - Dst: lzma_bswap_4861dc
      Src: /src/clamav/libclamav/mew.c:411,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:415,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:421,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:428,1
    - Dst: lzma_4863da
      Src: /src/clamav/libclamav/mew.c:440,1
    - Dst: lzma_4862e0
      Src: /src/clamav/libclamav/mew.c:450,1
    - Dst: lzma_486204
      Src: /src/clamav/libclamav/mew.c:463,1
    - Dst: lzma_48631a
      Src: /src/clamav/libclamav/mew.c:476,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:484,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:489,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:494,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:517,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:526,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:532,1
    - Dst: lzma_4863da
      Src: /src/clamav/libclamav/mew.c:543,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:559,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:560,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:561,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:562,1
    - Dst: lzma_486248
      Src: /src/clamav/libclamav/mew.c:602,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:619,1
    - Dst: lzma_48635C
      Src: /src/clamav/libclamav/mew.c:624,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:637,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:648,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:650,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/mew.c:658,1
    - Dst: EC32
      Src: /src/clamav/libclamav/mew.c:658,1
    - Dst: CE32
      Src: /src/clamav/libclamav/mew.c:658,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:658,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 235
    argCount: 5
    argNames:
    - orgsource
    - buf
    - size_sum
    - vma
    - special
    argTypes:
    - char*
    - char*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 667
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 667
    functionName: mew_lzma
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 0
    functionsReached:
    - lzma_4862e0
    - lzma_bswap_4861dc
    - lzma_486248
    - cli_readint32
    - lzma_48631a
    - CLI_ISCONTAINED
    - EC32
    - lzma_486204
    - lzma_4863da
    - cli_dbgmsg
    - lzma_48635C
    - cli_writeint32
    - CE32
    linkageType: ''
    returnType: int
    signature: int mew_lzma(char *orgsource, const char *buf, uint32_t size_sum, uint32_t
      vma, uint32_t special)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:676,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:676,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:677,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:678,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:680,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:683,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:685,1
    - Dst: EC32
      Src: /src/clamav/libclamav/mew.c:686,1
    - Dst: CE32
      Src: /src/clamav/libclamav/mew.c:686,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/mew.c:691,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:691,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/mew.c:697,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:697,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - p
    - old_ecx
    - bb
    - bl
    argTypes:
    - struct lzmastate*
    - char*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 706
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 706
    functionName: lzma_upack_esi_00
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 1
    functionsReached:
    - cli_readint32
    - CLI_ISCONTAINED
    - EC32
    - cli_dbgmsg
    - cli_writeint32
    - CE32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_upack_esi_00(struct lzmastate *p, char *old_ecx, char
      *bb, uint32_t bl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/mew.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - p
    - old_eax
    - old_ecx
    - old_edx
    - old_ebp
    - retval
    - bs
    - bl
    argTypes:
    - struct lzmastate*
    - uint32_t
    - uint32_t
    - char**
    - char*
    - uint32_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 725
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 725
    functionName: lzma_upack_esi_50
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 1
    functionsReached:
    - lzma_upack_esi_00
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_upack_esi_50(struct lzmastate *p, uint32_t old_eax, uint32_t
      old_ecx, char **old_edx, char *old_ebp, uint32_t *retval, char *bs, uint32_t
      bl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/mew.c:732,1
    - Dst: lzma_upack_esi_00
      Src: /src/clamav/libclamav/mew.c:736,1
    - Dst: lzma_upack_esi_50
      Src: /src/clamav/libclamav/mew.c:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - p
    - old_eax
    - old_ecx
    - old_edx
    - retval
    - bs
    - bl
    argTypes:
    - struct lzmastate*
    - uint32_t
    - uint32_t*
    - char**
    - uint32_t*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 749
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 749
    functionName: lzma_upack_esi_54
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 1
    functionsReached:
    - lzma_upack_esi_00
    - lzma_upack_esi_50
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_upack_esi_54(struct lzmastate *p, uint32_t old_eax, uint32_t
      *old_ecx, char **old_edx, uint32_t *retval, char *bs, uint32_t bl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:779,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:784,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:790,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:796,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:797,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:804,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:805,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:813,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:814,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:814,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:815,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:817,1
    - Dst: unmew
      Src: /src/clamav/libclamav/mew.c:820,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:821,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:826,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:827,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:835,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:836,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:843,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:844,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/mew.c:848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:849,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:867,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:869,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/mew.c:875,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:881,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:885,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:886,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:890,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/mew.c:891,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:892,1
    - Dst: mew_lzma
      Src: /src/clamav/libclamav/mew.c:896,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/mew.c:899,1
    - Dst: calloc
      Src: /src/clamav/libclamav/mew.c:901,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:903,1
    - Dst: cli_rebuildpe_align
      Src: /src/clamav/libclamav/mew.c:911,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/mew.c:912,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:913,1
    - Dst: free
      Src: /src/clamav/libclamav/mew.c:916,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 105
    argCount: 8
    argNames:
    - src
    - 'off'
    - ssize
    - dsize
    - base
    - vadd
    - uselzma
    - filedesc
    argTypes:
    - char*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 918
      start: 764
    functionDepth: 5
    functionLinenumber: 764
    functionLinenumberEnd: 918
    functionName: unmew11
    functionSourceFile: /src/clamav/libclamav/mew.c
    functionUses: 1
    functionsReached:
    - PESALIGN
    - cli_readint32
    - unmew
    - calloc
    - CLI_ISCONTAINED
    - cli_rebuildpe_align
    - cli_dbgmsg
    - mew_lzma
    - cli_max_realloc
    - free
    linkageType: ''
    returnType: int
    signature: int unmew11(char *src, uint32_t off, uint32_t ssize, uint32_t dsize,
      uint32_t base, uint32_t vadd, int uselzma, int filedesc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/unzip.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: wrap_inflateinit2
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - inflateInit2
    linkageType: ''
    returnType: int
    signature: int wrap_inflateinit2(void *a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/unzip.c:128,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/unzip.c:130,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/unzip.c:134,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/unzip.c:136,1
    - Dst: open
      Src: /src/clamav/libclamav/unzip.c:139,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/unzip.c:140,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:141,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:148,1
    - Dst: unz
      Src: /src/clamav/libclamav/unzip.c:149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:158,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unzip.c:162,1
    - Dst: memset
      Src: /src/clamav/libclamav/unzip.c:207,1
    - Dst: unz_init
      Src: /src/clamav/libclamav/unzip.c:213,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:214,1
    - Dst: unz_unz
      Src: /src/clamav/libclamav/unzip.c:218,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:223,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unzip.c:227,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/unzip.c:228,1
    - Dst: unz_end
      Src: /src/clamav/libclamav/unzip.c:239,1
    - Dst: memset
      Src: /src/clamav/libclamav/unzip.c:252,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/clamav/libclamav/unzip.c:257,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:258,1
    - Dst: BZ2_bzDecompress
      Src: /src/clamav/libclamav/unzip.c:261,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:265,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unzip.c:269,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/unzip.c:270,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/unzip.c:281,1
    - Dst: explode_init
      Src: /src/clamav/libclamav/unzip.c:292,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:293,1
    - Dst: explode
      Src: /src/clamav/libclamav/unzip.c:296,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:300,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unzip.c:304,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/unzip.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:338,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:341,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:347,1
    - Dst: lseek
      Src: /src/clamav/libclamav/unzip.c:348,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:349,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:350,1
    - Dst: close
      Src: /src/clamav/libclamav/unzip.c:351,1
    - Dst: zcb
      Src: /src/clamav/libclamav/unzip.c:354,1
    - Dst: close
      Src: /src/clamav/libclamav/unzip.c:355,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/unzip.c:357,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:358,1
    - Dst: close
      Src: /src/clamav/libclamav/unzip.c:362,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/unzip.c:364,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:365,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:366,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 215
    argCount: 11
    argNames:
    - src
    - csize
    - usize
    - method
    - flags
    - num_files_unzipped
    - ctx
    - tmpd
    - zcb
    - original_filename
    - decrypted
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint16_t
    - uint16_t
    - unsigned int*
    - cli_ctx*
    - char*
    - zip_cb
    - char*
    - bool
    constantsTouched: []
    func_position:
      end: 368
      start: 107
    functionDepth: 7
    functionLinenumber: 107
    functionLinenumberEnd: 368
    functionName: unz
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 1
    functionsReached:
    - cli_gentemp_with_prefix
    - zcb
    - cli_warnmsg
    - BZ2_bzDecompressInit
    - lseek
    - cli_dbgmsg
    - BZ2_bzDecompress
    - cli_writen
    - close
    - memset
    - unz_end
    - cli_unlink
    - unz
    - open
    - unz_init
    - free
    - unz_unz
    - BZ2_bzDecompressEnd
    - explode_init
    - cli_gentemp
    - explode
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t unz(\n    const uint8_t *src,\n    uint32_t csize,\n    uint32_t
      usize,\n    uint16_t method,\n    uint16_t flags,\n    unsigned int *num_files_unzipped,\n
      \   cli_ctx *ctx,\n    char *tmpd,\n    zip_cb zcb,\n    const char *original_filename,\n
      \   bool decrypted)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZIP_CRC32
      Src: /src/clamav/libclamav/unzip.c:376,1
    - Dst: ZIP_CRC32
      Src: /src/clamav/libclamav/unzip.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - key
    - input
    argTypes:
    - uint32_t[]
    - unsigned char
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: zupdatekey
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - ZIP_CRC32
    linkageType: ''
    returnType: void
    signature: void zupdatekey(uint32_t key[3], unsigned char input)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zupdatekey
      Src: /src/clamav/libclamav/unzip.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - password
    argTypes:
    - uint32_t[]
    - struct cli_pwdb*
    constantsTouched: []
    func_position:
      end: 398
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 398
    functionName: zinitkey
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - zupdatekey
    linkageType: ''
    returnType: void
    signature: void zinitkey(uint32_t key[3], struct cli_pwdb *password)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - uint32_t[]
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: zdecryptbyte
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char zdecryptbyte(uint32_t key[3])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:446,1
    - Dst: zinitkey
      Src: /src/clamav/libclamav/unzip.c:456,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/unzip.c:459,1
    - Dst: zdecryptbyte
      Src: /src/clamav/libclamav/unzip.c:462,1
    - Dst: zupdatekey
      Src: /src/clamav/libclamav/unzip.c:463,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:475,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:487,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:501,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/unzip.c:505,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/unzip.c:508,1
    - Dst: open
      Src: /src/clamav/libclamav/unzip.c:510,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/unzip.c:511,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:512,1
    - Dst: zdecryptbyte
      Src: /src/clamav/libclamav/unzip.c:517,1
    - Dst: zupdatekey
      Src: /src/clamav/libclamav/unzip.c:518,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unzip.c:522,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/unzip.c:531,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:539,1
    - Dst: fmap
      Src: /src/clamav/libclamav/unzip.c:542,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/unzip.c:543,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/unzip.c:548,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/unzip.c:549,1
    - Dst: funmap
      Src: /src/clamav/libclamav/unzip.c:550,1
    - Dst: unz
      Src: /src/clamav/libclamav/unzip.c:556,1
    - Dst: funmap
      Src: /src/clamav/libclamav/unzip.c:560,1
    - Dst: close
      Src: /src/clamav/libclamav/unzip.c:562,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/unzip.c:564,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:565,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:568,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:578,1
    - Dst: unz
      Src: /src/clamav/libclamav/unzip.c:580,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 112
    argCount: 9
    argNames:
    - src
    - csize
    - usize
    - local_header
    - num_files_unzipped
    - ctx
    - tmpd
    - zcb
    - original_filename
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint8_t*
    - unsigned int*
    - cli_ctx*
    - char*
    - zip_cb
    - char*
    constantsTouched: []
    func_position:
      end: 584
      start: 423
    functionDepth: 8
    functionLinenumber: 423
    functionLinenumberEnd: 584
    functionName: zdecrypt
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - fmap
    - zdecryptbyte
    - close
    - snprintf
    - funmap
    - cli_warnmsg
    - unz
    - zinitkey
    - open
    - fmap_need_off_once
    - cli_unlink
    - cli_dbgmsg
    - memcpy
    - cli_writen
    - zupdatekey
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t zdecrypt(\n    const uint8_t *src,\n    uint32_t csize,\n
      \   uint32_t usize,\n    const uint8_t *local_header,\n    unsigned int *num_files_unzipped,\n
      \   cli_ctx *ctx,\n    char *tmpd,\n    zip_cb zcb,\n    const char *original_filename)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/unzip.c:628,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:629,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:634,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:636,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:637,1
    - Dst: memset
      Src: /src/clamav/libclamav/unzip.c:644,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:647,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:648,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/unzip.c:653,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/unzip.c:655,1
    - Dst: cli_basename
      Src: /src/clamav/libclamav/unzip.c:657,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:667,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/unzip.c:672,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:678,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:680,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:686,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/unzip.c:687,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:690,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:696,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:698,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:710,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:711,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:718,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:721,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:722,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/unzip.c:729,1
    - Dst: zdecrypt
      Src: /src/clamav/libclamav/unzip.c:730,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/unzip.c:732,1
    - Dst: unz
      Src: /src/clamav/libclamav/unzip.c:733,1
    - Dst: cli_basename
      Src: /src/clamav/libclamav/unzip.c:738,1
    - Dst: strlen
      Src: /src/clamav/libclamav/unzip.c:738,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/unzip.c:756,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:759,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/unzip.c:763,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/unzip.c:764,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:766,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:780,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 140
    argCount: 12
    argNames:
    - map
    - loff
    - zsize
    - num_files_unzipped
    - file_count
    - central_header
    - ret
    - ctx
    - tmpd
    - detect_encrypted
    - zcb
    - record
    argTypes:
    - fmap_t*
    - uint32_t
    - uint32_t
    - unsigned int*
    - unsigned int
    - uint8_t*
    - cl_error_t*
    - cli_ctx*
    - char*
    - int
    - zip_cb
    - struct zip_record*
    constantsTouched: []
    func_position:
      end: 784
      start: 605
    functionDepth: 9
    functionLinenumber: 605
    functionLinenumberEnd: 784
    functionName: parse_local_file_header
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_matchmeta
    - cli_readint32
    - strlen
    - fmap_need_ptr_once
    - cli_append_potentially_unwanted
    - unz
    - cli_basename
    - cli_dbgmsg
    - fmap_unneed_off
    - memcpy
    - zdecrypt
    - fmap_need_off
    - free
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int parse_local_file_header(\n    fmap_t *map,\n    uint32_t
      loff,\n    uint32_t zsize,\n    unsigned int *num_files_unzipped,\n    unsigned
      int file_count,\n    const uint8_t *central_header, /* pointer to central header.
      */\n    cl_error_t *ret,\n    cli_ctx *ctx,\n    char *tmpd,\n    int detect_encrypted,\n
      \   zip_cb zcb,\n    struct zip_record *record)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/unzip.c:822,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:823,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/unzip.c:829,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/unzip.c:831,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:834,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:840,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:844,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/unzip.c:854,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:856,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/unzip.c:862,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:869,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:875,1
    - Dst: parse_local_file_header
      Src: /src/clamav/libclamav/unzip.c:882,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:895,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:903,1
    - Dst: MIN
      Src: /src/clamav/libclamav/unzip.c:905,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/unzip.c:906,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/unzip.c:918,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 10
    argNames:
    - map
    - coff
    - zsize
    - num_files_unzipped
    - file_count
    - ret
    - ctx
    - tmpd
    - requests
    - record
    argTypes:
    - fmap_t*
    - uint32_t
    - uint32_t
    - unsigned int*
    - unsigned int
    - cl_error_t*
    - cli_ctx*
    - char*
    - struct zip_requests*
    - struct zip_record*
    constantsTouched: []
    func_position:
      end: 922
      start: 803
    functionDepth: 10
    functionLinenumber: 803
    functionLinenumberEnd: 922
    functionName: parse_central_directory_file_header
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - cli_matchmeta
    - parse_local_file_header
    - cli_checktimelimit
    - MIN
    - cli_dbgmsg
    - fmap_unneed_ptr
    - memcpy
    - fmap_need_off
    - strncmp
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int parse_central_directory_file_header(\n    fmap_t *map,\n
      \   uint32_t coff,\n    uint32_t zsize,\n    unsigned int *num_files_unzipped,\n
      \   unsigned int file_count,\n    cl_error_t *ret,\n    cli_ctx *ctx,\n    char
      *tmpd,\n    struct zip_requests *requests,\n    struct zip_record *record)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 946
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 946
    functionName: sort_by_file_offset
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sort_by_file_offset(const void *first, const void *second)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/unzip.c:992,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/unzip.c:999,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1007,1
    - Dst: parse_central_directory_file_header
      Src: /src/clamav/libclamav/unzip.c:1010,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/unzip.c:1038,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1039,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1046,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/unzip.c:1047,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1054,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/unzip.c:1059,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/unzip.c:1064,1
    - Dst: memset
      Src: /src/clamav/libclamav/unzip.c:1071,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/unzip.c:1085,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1102,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1118,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1120,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1122,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/unzip.c:1126,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/unzip.c:1135,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1136,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1154,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1158,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 116
    argCount: 6
    argNames:
    - ctx
    - map
    - fsize
    - coff
    - catalogue
    - num_records
    argTypes:
    - cli_ctx*
    - fmap_t*
    - uint32_t
    - uint32_t
    - struct zip_record**
    - size_t*
    constantsTouched: []
    func_position:
      end: 1168
      start: 970
    functionDepth: 11
    functionLinenumber: 970
    functionLinenumberEnd: 1168
    functionName: index_the_central_directory
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - memset
    - CLI_CALLOC_OR_GOTO_DONE
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - cli_append_potentially_unwanted
    - cli_checktimelimit
    - cli_qsort
    - cli_dbgmsg
    - parse_central_directory_file_header
    - free
    - CLI_MAX_REALLOC_OR_GOTO_DONE
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t index_the_central_directory(\n    cli_ctx *ctx,\n    fmap_t
      *map,\n    uint32_t fsize,\n    uint32_t coff,\n    struct zip_record **catalogue,\n
      \   size_t *num_records)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/unzip.c:1218,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/unzip.c:1228,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/unzip.c:1241,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/unzip.c:1249,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/unzip.c:1251,1
    - Dst: parse_local_file_header
      Src: /src/clamav/libclamav/unzip.c:1253,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/unzip.c:1280,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1281,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1288,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/unzip.c:1289,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1298,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/unzip.c:1303,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/unzip.c:1308,1
    - Dst: memset
      Src: /src/clamav/libclamav/unzip.c:1318,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1333,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1337,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 8
    argNames:
    - ctx
    - map
    - fsize
    - start_offset
    - end_offset
    - file_count
    - temp_catalogue
    - num_records
    argTypes:
    - cli_ctx*
    - fmap_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - struct zip_record**
    - size_t*
    constantsTouched: []
    func_position:
      end: 1348
      start: 1195
    functionDepth: 10
    functionLinenumber: 1195
    functionLinenumberEnd: 1348
    functionName: index_local_file_headers_within_bounds
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    - parse_local_file_header
    - CLI_CALLOC_OR_GOTO_DONE
    - memset
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - cli_checktimelimit
    - fmap_need_off_once
    - cli_dbgmsg
    - free
    - cli_max_realloc
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t index_local_file_headers_within_bounds(\n    cli_ctx *ctx,\n
      \   fmap_t *map,\n    uint32_t fsize,\n    uint32_t start_offset,\n    uint32_t
      end_offset,\n    uint32_t file_count,\n    struct zip_record **temp_catalogue,\n
      \   size_t *num_records)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1396,1
    - Dst: index_local_file_headers_within_bounds
      Src: /src/clamav/libclamav/unzip.c:1412,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1433,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/unzip.c:1434,1
    - Dst: index_local_file_headers_within_bounds
      Src: /src/clamav/libclamav/unzip.c:1449,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/unzip.c:1465,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1466,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/unzip.c:1477,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1518,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1534,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1536,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1537,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1538,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/unzip.c:1542,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/unzip.c:1552,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1553,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1559,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1561,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1565,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1577,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1581,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1589,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1593,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1601,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1605,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 143
    argCount: 5
    argNames:
    - ctx
    - map
    - fsize
    - catalogue
    - num_records
    argTypes:
    - cli_ctx*
    - fmap_t*
    - uint32_t
    - struct zip_record**
    - size_t*
    constantsTouched: []
    func_position:
      end: 1615
      start: 1371
    functionDepth: 11
    functionLinenumber: 1371
    functionLinenumberEnd: 1615
    functionName: index_local_file_headers
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - CLI_CALLOC_OR_GOTO_DONE
    - index_local_file_headers_within_bounds
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - cli_append_potentially_unwanted
    - cli_checktimelimit
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t index_local_file_headers(\n    cli_ctx *ctx,\n    fmap_t
      *map,\n    uint32_t fsize,\n    struct zip_record **catalogue,\n    size_t *num_records)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1632,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1635,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1640,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/unzip.c:1646,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/unzip.c:1648,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/unzip.c:1650,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1657,1
    - Dst: index_the_central_directory
      Src: /src/clamav/libclamav/unzip.c:1662,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1670,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/unzip.c:1672,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1681,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/unzip.c:1683,1
    - Dst: index_local_file_headers
      Src: /src/clamav/libclamav/unzip.c:1695,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1702,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1719,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/unzip.c:1724,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/unzip.c:1730,1
    - Dst: zdecrypt
      Src: /src/clamav/libclamav/unzip.c:1731,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/unzip.c:1735,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/unzip.c:1743,1
    - Dst: unz
      Src: /src/clamav/libclamav/unzip.c:1744,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1767,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/unzip.c:1768,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/unzip.c:1772,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1773,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/unzip.c:1778,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1793,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1797,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/unzip.c:1803,1
    - Dst: free
      Src: /src/clamav/libclamav/unzip.c:1805,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 98
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1809
      start: 1617
    functionDepth: 12
    functionLinenumber: 1617
    functionLinenumberEnd: 1809
    functionName: cli_unzip
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    - CLI_CALLOC_OR_GOTO_DONE
    - cli_rmdirs
    - index_the_central_directory
    - fmap_need_ptr_once
    - unz
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - fmap_need_off_once
    - index_local_file_headers
    - cli_checktimelimit
    - cli_json_timeout_cycle_check
    - CLI_ISCONTAINED_0_TO
    - cli_dbgmsg
    - free
    - zdecrypt
    - fmap_need_off
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unzip(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1819,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1825,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1829,1
    - Dst: parse_local_file_header
      Src: /src/clamav/libclamav/unzip.c:1833,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - local_header_offset
    - zcb
    argTypes:
    - cli_ctx*
    - off_t
    - zip_cb
    constantsTouched: []
    func_position:
      end: 1848
      start: 1811
    functionDepth: 10
    functionLinenumber: 1811
    functionLinenumberEnd: 1848
    functionName: unzip_single_internal
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - parse_local_file_header
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t unzip_single_internal(cli_ctx *ctx, off_t local_header_offset,
      zip_cb zcb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unzip_single_internal
      Src: /src/clamav/libclamav/unzip.c:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - local_header_offset
    argTypes:
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 1853
      start: 1850
    functionDepth: 11
    functionLinenumber: 1850
    functionLinenumberEnd: 1853
    functionName: cli_unzip_single
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - unzip_single_internal
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unzip_single(cli_ctx *ctx, off_t local_header_offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1857,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1860,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - requests
    - name
    - nlen
    argTypes:
    - struct zip_requests*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1871
      start: 1855
    functionDepth: 2
    functionLinenumber: 1855
    functionLinenumberEnd: 1871
    functionName: unzip_search_add
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t unzip_search_add(struct zip_requests *requests, const char
      *name, size_t nlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1883,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1894,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1898,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/unzip.c:1903,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/unzip.c:1905,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/unzip.c:1907,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1914,1
    - Dst: parse_central_directory_file_header
      Src: /src/clamav/libclamav/unzip.c:1916,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1935,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/unzip.c:1936,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/unzip.c:1940,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1945,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 46
    argCount: 3
    argNames:
    - ctx
    - map
    - requests
    argTypes:
    - cli_ctx*
    - fmap_t*
    - struct zip_requests*
    constantsTouched: []
    func_position:
      end: 1949
      start: 1873
    functionDepth: 11
    functionLinenumber: 1873
    functionLinenumberEnd: 1949
    functionName: unzip_search
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - fmap_need_off_once
    - cli_json_timeout_cycle_check
    - CLI_ISCONTAINED_0_TO
    - cli_dbgmsg
    - parse_central_directory_file_header
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t unzip_search(cli_ctx *ctx, fmap_t *map, struct zip_requests
      *requests)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unzip.c:1956,1
    - Dst: memset
      Src: /src/clamav/libclamav/unzip.c:1961,1
    - Dst: unzip_search_add
      Src: /src/clamav/libclamav/unzip.c:1963,1
    - Dst: unzip_search
      Src: /src/clamav/libclamav/unzip.c:1967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - name
    - nlen
    - loff
    argTypes:
    - cli_ctx*
    - char*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1972
      start: 1951
    functionDepth: 12
    functionLinenumber: 1951
    functionLinenumberEnd: 1972
    functionName: unzip_search_single
    functionSourceFile: /src/clamav/libclamav/unzip.c
    functionUses: 0
    functionsReached:
    - unzip_search_add
    - memset
    - cli_dbgmsg
    - unzip_search
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t unzip_search_single(cli_ctx *ctx, const char *name, size_t
      nlen, uint32_t *loff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lineUnlink
      Src: /src/clamav/libclamav/text.c:127,1
    - Dst: free
      Src: /src/clamav/libclamav/text.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - t_head
    argTypes:
    - text*
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: textDestroy
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 5
    functionsReached:
    - lineUnlink
    - free
    linkageType: ''
    returnType: void
    signature: void textDestroy(text *t_head)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/text.c:143,1
    - Dst: malloc
      Src: /src/clamav/libclamav/text.c:145,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/text.c:150,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/text.c:152,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/text.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - t_head
    argTypes:
    - text*
    constantsTouched: []
    func_position:
      end: 170
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 170
    functionName: textCopy
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 0
    functionsReached:
    - malloc
    - lineLink
    - cli_errmsg
    - textDestroy
    linkageType: ''
    returnType: text
    signature: 'text *

      textCopy(const text *t_head)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/text.c:181,1
    - Dst: textCopy
      Src: /src/clamav/libclamav/text.c:184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/text.c:198,1
    - Dst: malloc
      Src: /src/clamav/libclamav/text.c:201,1
    - Dst: assert
      Src: /src/clamav/libclamav/text.c:204,1
    - Dst: lineLink
      Src: /src/clamav/libclamav/text.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - t_head
    - t
    argTypes:
    - text*
    - text*
    constantsTouched: []
    func_position:
      end: 217
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 217
    functionName: textAdd
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 0
    functionsReached:
    - lineLink
    - textCopy
    - cli_dbgmsg
    - malloc
    - assert
    - cli_errmsg
    linkageType: ''
    returnType: text
    signature: 'text *

      textAdd(text *t_head, const text *t)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/text.c:225,1
    - Dst: messageGetEncoding
      Src: /src/clamav/libclamav/text.c:227,1
    - Dst: textAdd
      Src: /src/clamav/libclamav/text.c:228,1
    - Dst: messageGetBody
      Src: /src/clamav/libclamav/text.c:228,1
    - Dst: messageToText
      Src: /src/clamav/libclamav/text.c:230,1
    - Dst: textMove
      Src: /src/clamav/libclamav/text.c:233,1
    - Dst: free
      Src: /src/clamav/libclamav/text.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - aText
    - aMessage
    argTypes:
    - text*
    - message*
    constantsTouched: []
    func_position:
      end: 239
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 239
    functionName: textAddMessage
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 1
    functionsReached:
    - assert
    - textMove
    - messageToText
    - messageGetEncoding
    - messageGetBody
    - free
    - textAdd
    linkageType: ''
    returnType: text
    signature: 'text *

      textAddMessage(text *aText, message *aMessage)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/text.c:253,1
    - Dst: malloc
      Src: /src/clamav/libclamav/text.c:256,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/text.c:258,1
    - Dst: malloc
      Src: /src/clamav/libclamav/text.c:280,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/text.c:282,1
    - Dst: assert
      Src: /src/clamav/libclamav/text.c:287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - t_head
    - t
    argTypes:
    - text*
    - text*
    constantsTouched: []
    func_position:
      end: 299
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 299
    functionName: textMove
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 2
    functionsReached:
    - malloc
    - assert
    - cli_errmsg
    linkageType: ''
    returnType: text
    signature: 'text *

      textMove(text *t_head, text *t)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: textIterate
      Src: /src/clamav/libclamav/text.c:316,1
    - Dst: blobCreate
      Src: /src/clamav/libclamav/text.c:327,1
    - Dst: blobGrow
      Src: /src/clamav/libclamav/text.c:333,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/text.c:334,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/text.c:338,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/text.c:347,1
    - Dst: textIterate
      Src: /src/clamav/libclamav/text.c:352,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/text.c:355,1
    - Dst: blobClose
      Src: /src/clamav/libclamav/text.c:359,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - t
    - b
    - destroy
    argTypes:
    - text*
    - blob*
    - int
    constantsTouched: []
    func_position:
      end: 362
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 362
    functionName: textToBlob
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 1
    functionsReached:
    - textIterate
    - blobClose
    - cli_warnmsg
    - textDestroy
    - blobDestroy
    - blobCreate
    - blobGrow
    linkageType: ''
    returnType: blob
    signature: 'blob *

      textToBlob(text *t, blob *b, int destroy)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/text.c:367,1
    - Dst: assert
      Src: /src/clamav/libclamav/text.c:368,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/text.c:371,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/text.c:372,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/text.c:377,1
    - Dst: fileblobGetFilename
      Src: /src/clamav/libclamav/text.c:378,1
    - Dst: textIterate
      Src: /src/clamav/libclamav/text.c:383,1
    - Dst: textDestroy
      Src: /src/clamav/libclamav/text.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - t
    - fb
    - destroy
    argTypes:
    - text*
    - fileblob*
    - int
    constantsTouched: []
    func_position:
      end: 389
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 389
    functionName: textToFileblob
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 2
    functionsReached:
    - textIterate
    - fileblobCreate
    - textDestroy
    - cli_dbgmsg
    - fileblobGetFilename
    - assert
    linkageType: ''
    returnType: fileblob
    signature: 'fileblob *

      textToFileblob(text *t, fileblob *fb, int destroy)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/text.c:397,1
    - Dst: lineGetData
      Src: /src/clamav/libclamav/text.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - line
    - arg
    argTypes:
    - line_t*
    - void*
    constantsTouched: []
    func_position:
      end: 400
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 400
    functionName: getLength
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 0
    functionsReached:
    - strlen
    - lineGetData
    linkageType: ''
    returnType: void
    signature: void getLength(const line_t *line, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blobAddData
      Src: /src/clamav/libclamav/text.c:410,1
    - Dst: strlen
      Src: /src/clamav/libclamav/text.c:410,1
    - Dst: blobAddData
      Src: /src/clamav/libclamav/text.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - line
    - arg
    argTypes:
    - line_t*
    - void*
    constantsTouched: []
    func_position:
      end: 413
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 413
    functionName: addToBlob
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 0
    functionsReached:
    - strlen
    - blobAddData
    linkageType: ''
    returnType: void
    signature: void addToBlob(const line_t *line, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/text.c:423,1
    - Dst: strlen
      Src: /src/clamav/libclamav/text.c:423,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/text.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - line
    - arg
    argTypes:
    - line_t*
    - void*
    constantsTouched: []
    func_position:
      end: 426
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 426
    functionName: addToFileblob
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 0
    functionsReached:
    - strlen
    - fileblobAddData
    linkageType: ''
    returnType: void
    signature: void addToFileblob(const line_t *line, void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lineUnlink
      Src: /src/clamav/libclamav/text.c:440,1
    - Dst: lineUnlink
      Src: /src/clamav/libclamav/text.c:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - t_text
    - arg
    - destroy
    argTypes:
    - text*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 466
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 466
    functionName: textIterate
    functionSourceFile: /src/clamav/libclamav/text.c
    functionUses: 2
    functionsReached:
    - lineUnlink
    linkageType: ''
    returnType: void
    signature: 'void *

      textIterate(text *t_text, void (*cb)(const line_t *item, void *arg), void *arg,
      int destroy)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:138,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:138,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:139,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:145,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:145,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - xref
    - eof
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: xrefCheck
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int xrefCheck(const char *xref, const char *eof)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 2
    argNames:
    - q
    - start
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: findNextNonWSBack
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *findNextNonWSBack(const char *q, const char *start)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 2
    argNames:
    - q
    - end
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: findNextNonWS
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *findNextNonWS(const char *q, const char *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:237,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:237,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:238,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:260,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:260,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:264,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 5
    argNames:
    - start
    - size
    - stream
    - stream_size
    - newline_hack
    argTypes:
    - char*
    - size_t
    - char**
    - size_t*
    - int
    constantsTouched: []
    func_position:
      end: 279
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 279
    functionName: find_stream_bounds
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_dbgmsg
    - cli_memstr
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t find_stream_bounds(\n    const char *start,\n    size_t
      size,\n    const char **stream,\n    size_t *stream_size,\n    int newline_hack)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:324,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:331,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:341,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:343,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:352,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:354,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:358,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:365,1
    - Dst: findNextNonWS
      Src: /src/clamav/libclamav/pdf.c:369,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:372,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:374,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:378,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:386,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:399,1
    - Dst: findNextNonWS
      Src: /src/clamav/libclamav/pdf.c:403,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:435,1
    - Dst: findNextNonWS
      Src: /src/clamav/libclamav/pdf.c:439,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:442,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:444,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:448,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:456,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:461,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:475,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/pdf.c:483,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:484,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:495,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 125
    argCount: 3
    argNames:
    - pdf
    - objstm
    - obj_found
    argTypes:
    - struct pdf_struct*
    - struct objstm_struct*
    - struct pdf_obj**
    constantsTouched: []
    func_position:
      end: 499
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 499
    functionName: pdf_findobj_in_objstm
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - findNextNonWS
    - cli_strntol_wrap
    - calloc
    - cli_warnmsg
    - cli_dbgmsg
    - CLI_MAX_REALLOC_OR_GOTO_DONE
    - free
    - isdigit
    linkageType: ''
    returnType: int
    signature: int pdf_findobj_in_objstm(struct pdf_struct *pdf, struct objstm_struct
      *objstm, struct pdf_obj **obj_found)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:543,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/pdf.c:548,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pdf.c:550,1
    - Dst: memset
      Src: /src/clamav/libclamav/pdf.c:557,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:566,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:568,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:568,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:582,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:583,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:589,1
    - Dst: findNextNonWSBack
      Src: /src/clamav/libclamav/pdf.c:600,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:601,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:604,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:605,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:611,1
    - Dst: findNextNonWSBack
      Src: /src/clamav/libclamav/pdf.c:619,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:620,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:623,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:635,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:637,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:639,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:648,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:651,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:658,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:659,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:665,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:671,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:673,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:689,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:689,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:705,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:718,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:727,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:730,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:732,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:734,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 142
    argCount: 1
    argNames:
    - pdf
    argTypes:
    - struct pdf_struct*
    constantsTouched: []
    func_position:
      end: 739
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 739
    functionName: pdf_findobj
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_strntol_wrap
    - strlen
    - cli_warnmsg
    - cli_memstr
    - findNextNonWSBack
    - cli_dbgmsg
    - malloc
    - CLI_MAX_REALLOC_OR_GOTO_DONE
    - free
    - strncmp
    - isdigit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t pdf_findobj(struct pdf_struct *pdf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:743,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/pdf.c:745,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/pdf.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pdf
    - obj
    - fout
    - buf
    - len
    - sum
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - int
    - char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 751
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 751
    functionName: filter_writen
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_writen
    - cli_checklimits
    linkageType: ''
    returnType: size_t
    signature: size_t filter_writen(struct pdf_struct *pdf, struct pdf_obj *obj, int
      fout, const char *buf, size_t len, size_t *sum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:827,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 3
    argNames:
    - pdf
    - obj
    - flag
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - enum pdf_flag
    constantsTouched: []
    func_position:
      end: 828
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 828
    functionName: pdfobj_flag
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void pdfobj_flag(struct pdf_struct *pdf, struct pdf_obj *obj, enum
      pdf_flag flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - pdf
    - obj
    - objid
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 855
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 855
    functionName: find_obj
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct pdf_obj
    signature: struct pdf_obj *find_obj(struct pdf_struct *pdf, struct pdf_obj *obj,
      uint32_t objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:919,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:935,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:947,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:948,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:951,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:961,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:972,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:973,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:976,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:981,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:999,1
    - Dst: find_obj
      Src: /src/clamav/libclamav/pdf.c:1001,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1003,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pdf.c:1010,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1011,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pdf.c:1020,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1021,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:1029,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1031,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:1041,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1042,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1045,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 98
    argCount: 4
    argNames:
    - pdf
    - obj
    - dict_start
    - dict_len
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1057
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 1057
    functionName: find_length
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_strntol_wrap
    - pdf_nextobject
    - CLI_ISCONTAINED
    - cli_memstr
    - cli_dbgmsg
    - find_obj
    - isdigit
    linkageType: ''
    returnType: size_t
    signature: size_t find_length(struct pdf_struct *pdf, struct pdf_obj *obj, const
      char *dict_start, size_t dict_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/libclamav/pdf.c:1073,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:1075,1
    - Dst: fmap
      Src: /src/clamav/libclamav/pdf.c:1081,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1083,1
    - Dst: cli_bytecode_context_setpdf
      Src: /src/clamav/libclamav/pdf.c:1089,1
    - Dst: cli_bytecode_context_setctx
      Src: /src/clamav/libclamav/pdf.c:1090,1
    - Dst: cli_bytecode_runhook
      Src: /src/clamav/libclamav/pdf.c:1091,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/pdf.c:1092,1
    - Dst: funmap
      Src: /src/clamav/libclamav/pdf.c:1095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - pdf
    - phase
    - fd
    argTypes:
    - struct pdf_struct*
    - enum pdf_phase
    - int
    constantsTouched: []
    func_position:
      end: 1098
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1098
    functionName: run_pdf_hooks
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - fmap
    - cli_bytecode_context_destroy
    - funmap
    - cli_bytecode_context_setctx
    - cli_bytecode_runhook
    - cli_dbgmsg
    - cli_bytecode_context_alloc
    - cli_bytecode_context_setpdf
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int run_pdf_hooks(struct pdf_struct *pdf, enum pdf_phase phase, int
      fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1111,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1118,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1120,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1126,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1127,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:1132,1
    - Dst: memset
      Src: /src/clamav/libclamav/pdf.c:1136,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1139,1
    - Dst: rijndaelSetupDecrypt
      Src: /src/clamav/libclamav/pdf.c:1140,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1142,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1145,1
    - Dst: rijndaelDecrypt
      Src: /src/clamav/libclamav/pdf.c:1150,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:1154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1165,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1166,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1174,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1175,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1187,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 6
    argNames:
    - in
    - length
    - q
    - key
    - key_n
    - has_iv
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - char*
    - unsigned
    - int
    constantsTouched: []
    func_position:
      end: 1188
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1188
    functionName: aes_256cbc_decrypt
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - memset
    - rijndaelSetupDecrypt
    - cli_dbgmsg
    - memcpy
    - noisy_warnmsg
    - rijndaelDecrypt
    linkageType: ''
    returnType: void
    signature: void aes_256cbc_decrypt(const unsigned char *in, size_t *length, unsigned
      char *q, char *key, unsigned key_n, int has_iv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1204,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1209,1
    - Dst: rijndaelSetupEncrypt
      Src: /src/clamav/libclamav/pdf.c:1210,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1212,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1215,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:1218,1
    - Dst: rijndaelEncrypt
      Src: /src/clamav/libclamav/pdf.c:1225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 7
    argNames:
    - in
    - in_length
    - out
    - out_length
    - key
    - key_n
    - iv
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1237
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1237
    functionName: aes_128cbc_encrypt
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - rijndaelSetupEncrypt
    - cli_dbgmsg
    - memcpy
    - rijndaelEncrypt
    - noisy_warnmsg
    linkageType: ''
    returnType: void
    signature: void aes_128cbc_encrypt(const unsigned char *in, size_t in_length,
      unsigned char *out, size_t *out_length, const unsigned char *key, size_t key_n,
      const unsigned char *iv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1246,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1251,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:1259,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1261,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:1265,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:1273,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/pdf.c:1275,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1276,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdf.c:1282,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1284,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1290,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:1291,1
    - Dst: arc4_init
      Src: /src/clamav/libclamav/pdf.c:1292,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1293,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1294,1
    - Dst: arc4_apply
      Src: /src/clamav/libclamav/pdf.c:1297,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:1299,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1303,1
    - Dst: aes_256cbc_decrypt
      Src: /src/clamav/libclamav/pdf.c:1304,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:1306,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1310,1
    - Dst: aes_256cbc_decrypt
      Src: /src/clamav/libclamav/pdf.c:1312,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:1314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1318,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:1319,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:1321,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1325,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:1327,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1329,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1332,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1333,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1335,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 75
    argCount: 5
    argNames:
    - pdf
    - id
    - in
    - length
    - enc_method
    argTypes:
    - struct pdf_struct*
    - uint32_t
    - char*
    - size_t*
    - enum enc_method
    constantsTouched: []
    func_position:
      end: 1342
      start: 1239
    functionDepth: 3
    functionLinenumber: 1239
    functionLinenumberEnd: 1342
    functionName: decrypt_any
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - noisy_msg
    - cl_hash_data
    - arc4_apply
    - aes_256cbc_decrypt
    - cli_max_malloc
    - arc4_init
    - cli_dbgmsg
    - memcpy
    - noisy_warnmsg
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: char
    signature: char *decrypt_any(struct pdf_struct *pdf, uint32_t id, const char *in,
      size_t *length, enum enc_method enc_method)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pdf
    - obj
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    constantsTouched: []
    func_position:
      end: 1353
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1353
    functionName: get_enc_method
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum enc_method
    signature: enum enc_method get_enc_method(struct pdf_struct *pdf, struct pdf_obj
      *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: text_normalize_buffer
      Src: /src/clamav/libclamav/pdf.c:1391,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/pdf.c:1392,1
    - Dst: text_normalize_reset
      Src: /src/clamav/libclamav/pdf.c:1393,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - s
    - st
    - buf
    - length
    - fout
    argTypes:
    - struct text_norm_state*
    - enum cstate*
    - char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 1404
      start: 1361
    functionDepth: 3
    functionLinenumber: 1361
    functionLinenumberEnd: 1404
    functionName: process
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 8
    functionsReached:
    - cli_writen
    - text_normalize_reset
    - text_normalize_buffer
    linkageType: ''
    returnType: void
    signature: void process(struct text_norm_state *s, enum cstate *st, const char
      *buf, size_t length, int fout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclamav/pdf.c:1417,1
    - Dst: open
      Src: /src/clamav/libclamav/pdf.c:1418,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:1422,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/pdf.c:1422,1
    - Dst: text_normalize_init
      Src: /src/clamav/libclamav/pdf.c:1426,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/pdf.c:1428,1
    - Dst: process
      Src: /src/clamav/libclamav/pdf.c:1432,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/pdf.c:1435,1
    - Dst: lseek
      Src: /src/clamav/libclamav/pdf.c:1437,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/pdf.c:1438,1
    - Dst: close
      Src: /src/clamav/libclamav/pdf.c:1439,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdf.c:1442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - pdf
    - obj
    argTypes:
    - int
    - struct pdf_struct*
    - struct pdf_obj*
    constantsTouched: []
    func_position:
      end: 1446
      start: 1406
    functionDepth: 4
    functionLinenumber: 1406
    functionLinenumberEnd: 1446
    functionName: pdf_scan_contents
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_magic_scan_desc
    - text_normalize_init
    - snprintf
    - close
    - cli_readn
    - cli_unlink
    - process
    - open
    - cli_strerror
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int pdf_scan_contents(int fd, struct pdf_struct *pdf, struct pdf_obj
      *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1460,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1463,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1478,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1480,1
    - Dst: URI_cb
      Src: /src/clamav/libclamav/pdf.c:1488,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1514,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/pdf.c:1516,1
    - Dst: open
      Src: /src/clamav/libclamav/pdf.c:1517,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:1520,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/pdf.c:1520,1
    - Dst: strdup
      Src: /src/clamav/libclamav/pdf.c:1533,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1542,1
    - Dst: find_length
      Src: /src/clamav/libclamav/pdf.c:1555,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1560,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1561,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1588,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1591,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1598,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:1600,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1606,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:1615,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:1615,1
    - Dst: pdf_getdict
      Src: /src/clamav/libclamav/pdf.c:1622,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1623,1
    - Dst: pdf_getdict
      Src: /src/clamav/libclamav/pdf.c:1624,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1625,1
    - Dst: pdf_parse_dict
      Src: /src/clamav/libclamav/pdf.c:1643,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1646,1
    - Dst: pdf_getdict
      Src: /src/clamav/libclamav/pdf.c:1655,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1660,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:1663,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1664,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:1665,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1666,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:1667,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1668,1
    - Dst: cli_max_realloc_or_free
      Src: /src/clamav/libclamav/pdf.c:1672,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1674,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pdf.c:1679,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1681,1
    - Dst: memset
      Src: /src/clamav/libclamav/pdf.c:1687,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1695,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1696,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1697,1
    - Dst: pdf_decodestream
      Src: /src/clamav/libclamav/pdf.c:1701,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1703,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1723,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1726,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1734,1
    - Dst: cli_max_realloc_or_free
      Src: /src/clamav/libclamav/pdf.c:1737,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1740,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:1747,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdf.c:1754,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:1780,1
    - Dst: pdf_readstring
      Src: /src/clamav/libclamav/pdf.c:1787,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:1794,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1796,1
    - Dst: decrypt_any
      Src: /src/clamav/libclamav/pdf.c:1797,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:1800,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:1808,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:1809,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:1810,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:1811,1
    - Dst: cli_jsonint_array
      Src: /src/clamav/libclamav/pdf.c:1813,1
    - Dst: filter_writen
      Src: /src/clamav/libclamav/pdf.c:1819,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1821,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1825,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:1826,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1827,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:1830,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:1835,1
    - Dst: filter_writen
      Src: /src/clamav/libclamav/pdf.c:1844,1
    - Dst: filter_writen
      Src: /src/clamav/libclamav/pdf.c:1858,1
    - Dst: filter_writen
      Src: /src/clamav/libclamav/pdf.c:1862,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1871,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1872,1
    - Dst: lseek
      Src: /src/clamav/libclamav/pdf.c:1881,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/pdf.c:1882,1
    - Dst: run_pdf_hooks
      Src: /src/clamav/libclamav/pdf.c:1889,1
    - Dst: lseek
      Src: /src/clamav/libclamav/pdf.c:1897,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:1898,1
    - Dst: pdf_scan_contents
      Src: /src/clamav/libclamav/pdf.c:1900,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdf.c:1911,1
    - Dst: close
      Src: /src/clamav/libclamav/pdf.c:1915,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdf.c:1924,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 335
    argCount: 3
    argNames:
    - pdf
    - obj
    - flags
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1930
      start: 1448
    functionDepth: 5
    functionLinenumber: 1448
    functionLinenumberEnd: 1930
    functionName: pdf_extract_obj
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - snprintf
    - cli_warnmsg
    - pdf_nextobject
    - pdf_scan_contents
    - pdf_getdict
    - pdf_parse_dict
    - cli_jsonarray
    - lseek
    - pdf_readstring
    - pdf_free_dict
    - pdf_decodestream
    - cli_jsonobj
    - cli_dbgmsg
    - pdfobj_flag
    - find_length
    - close
    - memset
    - cli_unlink
    - open
    - memchr
    - cli_max_realloc_or_free
    - pdf_readint
    - run_pdf_hooks
    - malloc
    - noisy_warnmsg
    - free
    - filter_writen
    - cli_jsonint_array
    - noisy_msg
    - strlen
    - decrypt_any
    - cli_strerror
    - strdup
    - cli_memstr
    - URI_cb
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t pdf_extract_obj(struct pdf_struct *pdf, struct pdf_obj *obj,
      uint32_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/pdf.c:2014,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/pdf.c:2027,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2038,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2052,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2053,1
    - Dst: struct pdfname_action*::pdf_stats_cb
      Src: /src/clamav/libclamav/pdf.c:2057,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2063,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2064,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 48
    argCount: 5
    argNames:
    - pdf
    - obj
    - pdfname
    - escapes
    - state
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - char*
    - int
    - enum objstate*
    constantsTouched: []
    func_position:
      end: 2078
      start: 2008
    functionDepth: 3
    functionLinenumber: 2008
    functionLinenumberEnd: 2078
    functionName: handle_pdfname
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - pdfobj_flag
    - struct pdfname_action*::pdf_stats_cb
    - cli_dbgmsg
    - strcmp
    linkageType: ''
    returnType: void
    signature: void handle_pdfname(struct pdf_struct *pdf, struct pdf_obj *obj, const
      char *pdfname, int escapes, enum objstate *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:2087,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:2088,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2098,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:2099,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:2104,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2105,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2108,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2114,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:2115,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:2120,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2124,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2130,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2134,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - pdf
    - enc
    - len
    argTypes:
    - struct pdf_struct*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2137
      start: 2080
    functionDepth: 2
    functionLinenumber: 2080
    functionLinenumberEnd: 2137
    functionName: pdf_parse_encrypt
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - isdigit
    - pdf_nextobject
    - cli_memstr
    - cli_dbgmsg
    - strncmp
    - cli_strntol_wrap
    linkageType: ''
    returnType: void
    signature: void pdf_parse_encrypt(struct pdf_struct *pdf, const char *enc, int
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:2143,1
    - Dst: pdf_parse_encrypt
      Src: /src/clamav/libclamav/pdf.c:2149,1
    - Dst: pdf_readstring
      Src: /src/clamav/libclamav/pdf.c:2150,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:2153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pdf
    - s
    - length
    argTypes:
    - struct pdf_struct*
    - char*
    - long
    constantsTouched: []
    func_position:
      end: 2158
      start: 2139
    functionDepth: 3
    functionLinenumber: 2139
    functionLinenumberEnd: 2158
    functionName: pdf_parse_trailer
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - pdf_readstring
    - cli_memstr
    - free
    - pdf_parse_encrypt
    linkageType: ''
    returnType: void
    signature: void pdf_parse_trailer(struct pdf_struct *pdf, const char *s, long
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdf.c:2176,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2191,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pdf.c:2203,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pdf.c:2205,1
    - Dst: find_stream_bounds
      Src: /src/clamav/libclamav/pdf.c:2216,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2226,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2235,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2239,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:2242,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:2249,1
    - Dst: cli_jsonint_array
      Src: /src/clamav/libclamav/pdf.c:2251,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2263,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2265,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2269,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2271,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2286,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:2289,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:2296,1
    - Dst: cli_jsonint_array
      Src: /src/clamav/libclamav/pdf.c:2298,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2307,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2310,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2335,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:2338,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:2345,1
    - Dst: cli_jsonint_array
      Src: /src/clamav/libclamav/pdf.c:2347,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2379,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/pdf.c:2391,1
    - Dst: handle_pdfname
      Src: /src/clamav/libclamav/pdf.c:2422,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2426,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:2428,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2435,1
    - Dst: pdf_parse_trailer
      Src: /src/clamav/libclamav/pdf.c:2436,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2438,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2443,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2451,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2453,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:2454,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:2462,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2463,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2466,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:2473,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2479,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdf.c:2480,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:2482,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2486,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2493,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2497,1
    - Dst: find_obj
      Src: /src/clamav/libclamav/pdf.c:2498,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2516,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2523,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2547,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdf.c:2554,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2556,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 262
    argCount: 2
    argNames:
    - pdf
    - obj
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    constantsTouched: []
    func_position:
      end: 2557
      start: 2160
    functionDepth: 4
    functionLinenumber: 2160
    functionLinenumberEnd: 2557
    functionName: pdf_parseobj
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_jsonint_array
    - cli_strntol_wrap
    - cli_hex2str_to
    - isdigit
    - cli_warnmsg
    - pdf_nextobject
    - pdf_parse_trailer
    - memchr
    - cli_jsonobj
    - handle_pdfname
    - cli_dbgmsg
    - find_stream_bounds
    - pdf_readint
    - MIN
    - find_obj
    - pdfobj_flag
    - cli_jsonarray
    linkageType: ''
    returnType: void
    signature: void pdf_parseobj(struct pdf_struct *pdf, struct pdf_obj *obj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2574,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:2582,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:2582,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2584,1
    - Dst: pdf_nextobject
      Src: /src/clamav/libclamav/pdf.c:2592,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - q0
    - len
    - key
    argTypes:
    - char*
    - int*
    - char*
    constantsTouched: []
    func_position:
      end: 2604
      start: 2569
    functionDepth: 2
    functionLinenumber: 2569
    functionLinenumberEnd: 2604
    functionName: pdf_getdict
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 1
    functionsReached:
    - strlen
    - pdf_nextobject
    - cli_dbgmsg
    - cli_memstr
    linkageType: ''
    returnType: char
    signature: char *pdf_getdict(const char *q0, int *len, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pdf_getdict
      Src: /src/clamav/libclamav/pdf.c:2627,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:2653,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:2662,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:2664,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2670,1
    - Dst: memchr
      Src: /src/clamav/libclamav/pdf.c:2748,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:2755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2757,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/pdf.c:2761,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2762,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:2763,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2774,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 134
    argCount: 6
    argNames:
    - q0
    - len
    - key
    - slen
    - qend
    - noescape
    argTypes:
    - char*
    - int
    - char*
    - unsigned*
    - char**
    - bool
    constantsTouched: []
    func_position:
      end: 2776
      start: 2617
    functionDepth: 3
    functionLinenumber: 2617
    functionLinenumberEnd: 2776
    functionName: pdf_readstring
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 2
    functionsReached:
    - cli_hex2str_to
    - memchr
    - cli_max_malloc
    - pdf_getdict
    - cli_dbgmsg
    - memcpy
    - cli_errmsg
    - free
    linkageType: ''
    returnType: char
    signature: char *pdf_readstring(const char *q0, int len, const char *key, unsigned
      *slen, const char **qend, bool noescape)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pdf_getdict
      Src: /src/clamav/libclamav/pdf.c:2784,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdf.c:2806,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:2811,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2815,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 3
    argNames:
    - q
    - len
    - key
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2819
      start: 2778
    functionDepth: 3
    functionLinenumber: 2778
    functionLinenumberEnd: 2819
    functionName: pdf_readval
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_max_malloc
    - pdf_getdict
    - memcpy
    - isspace
    linkageType: ''
    returnType: char
    signature: char *pdf_readval(const char *q, int len, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:2828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - q0
    - len
    - key
    argTypes:
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 2832
      start: 2821
    functionDepth: 2
    functionLinenumber: 2821
    functionLinenumberEnd: 2832
    functionName: pdf_readint
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 2
    functionsReached:
    - cli_strntol_wrap
    linkageType: ''
    returnType: int
    signature: int pdf_readint(const char *q0, int len, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:2841,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:2844,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - q0
    - len
    - key
    - Default
    argTypes:
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2850
      start: 2834
    functionDepth: 2
    functionLinenumber: 2834
    functionLinenumberEnd: 2850
    functionName: pdf_readbool
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - strncmp
    linkageType: ''
    returnType: int
    signature: int pdf_readbool(const char *q0, int len, const char *key, int Default)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2861,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:2863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - msg
    - hex
    - len
    argTypes:
    - char*
    - char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 2865
      start: 2856
    functionDepth: 2
    functionLinenumber: 2856
    functionLinenumberEnd: 2865
    functionName: dbg_printhex
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: void
    signature: void dbg_printhex(const char *msg, const char *hex, unsigned len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2891,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2892,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2896,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/pdf.c:2898,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/pdf.c:2900,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2904,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2905,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2911,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2916,1
    - Dst: aes_128cbc_encrypt
      Src: /src/clamav/libclamav/pdf.c:2918,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/pdf.c:2926,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2927,1
    - Dst: cl_sha384
      Src: /src/clamav/libclamav/pdf.c:2931,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2932,1
    - Dst: cl_sha512
      Src: /src/clamav/libclamav/pdf.c:2936,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2937,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:2942,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - password
    - pwlen
    - salt
    - hash
    - U
    argTypes:
    - char*
    - size_t
    - unsigned char[]
    - unsigned char[]
    - char*
    constantsTouched: []
    func_position:
      end: 2943
      start: 2879
    functionDepth: 3
    functionLinenumber: 2879
    functionLinenumberEnd: 2943
    functionName: compute_hash_r6
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cl_sha512
    - memcpy
    - cl_sha256
    - cl_sha384
    - aes_128cbc_encrypt
    linkageType: ''
    returnType: void
    signature: void compute_hash_r6(const char *password, size_t pwlen, const unsigned
      char salt[16], unsigned char hash[32], const char *U)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:2967,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:2968,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2978,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:2979,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:2983,1
    - Dst: compute_hash_r6
      Src: /src/clamav/libclamav/pdf.c:2989,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:2997,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:2998,1
    - Dst: compute_hash_r6
      Src: /src/clamav/libclamav/pdf.c:3006,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3014,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3015,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:3018,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3020,1
    - Dst: aes_256cbc_decrypt
      Src: /src/clamav/libclamav/pdf.c:3024,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3025,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3033,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3034,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3042,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:3043,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3046,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3047,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 6
    argNames:
    - pdf
    - R
    - O
    - U
    - OE
    - OE_len
    argTypes:
    - struct pdf_struct*
    - int
    - char*
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3053
      start: 2961
    functionDepth: 4
    functionLinenumber: 2961
    functionLinenumberEnd: 3053
    functionName: check_owner_password
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - noisy_msg
    - memcmp
    - aes_256cbc_decrypt
    - cli_max_malloc
    - cli_dbgmsg
    - compute_hash_r6
    - dbg_printhex
    - noisy_warnmsg
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: "void check_owner_password(struct pdf_struct *pdf, int R,\n                                 const
      char *O, const char *U,\n                                 const char *OE, size_t
      OE_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3066,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3067,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:3075,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3080,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3081,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/pdf.c:3082,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3083,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3084,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3090,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/pdf.c:3093,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3094,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/pdf.c:3100,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:3106,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3110,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3111,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3112,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3117,1
    - Dst: arc4_init
      Src: /src/clamav/libclamav/pdf.c:3118,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3119,1
    - Dst: arc4_apply
      Src: /src/clamav/libclamav/pdf.c:3122,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3123,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:3124,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:3131,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3136,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3137,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/pdf.c:3138,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdf.c:3139,1
    - Dst: arc4_init
      Src: /src/clamav/libclamav/pdf.c:3141,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3142,1
    - Dst: arc4_apply
      Src: /src/clamav/libclamav/pdf.c:3145,1
    - Dst: arc4_init
      Src: /src/clamav/libclamav/pdf.c:3152,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3153,1
    - Dst: arc4_apply
      Src: /src/clamav/libclamav/pdf.c:3156,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3159,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3160,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:3161,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3163,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/pdf.c:3173,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3174,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:3175,1
    - Dst: cl_sha256
      Src: /src/clamav/libclamav/pdf.c:3177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3180,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3181,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:3184,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3186,1
    - Dst: aes_256cbc_decrypt
      Src: /src/clamav/libclamav/pdf.c:3190,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3191,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3206,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3207,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3211,1
    - Dst: compute_hash_r6
      Src: /src/clamav/libclamav/pdf.c:3217,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:3225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3226,1
    - Dst: compute_hash_r6
      Src: /src/clamav/libclamav/pdf.c:3234,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3242,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3243,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdf.c:3246,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3248,1
    - Dst: aes_256cbc_decrypt
      Src: /src/clamav/libclamav/pdf.c:3252,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3253,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3262,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3268,1
    - Dst: noisy_msg
      Src: /src/clamav/libclamav/pdf.c:3269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3275,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3276,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 151
    argCount: 9
    argNames:
    - pdf
    - R
    - O
    - U
    - P
    - EM
    - UE
    - UE_len
    - length
    argTypes:
    - struct pdf_struct*
    - int
    - char*
    - char*
    - int32_t
    - int
    - char*
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 3281
      start: 3055
    functionDepth: 4
    functionLinenumber: 3055
    functionLinenumberEnd: 3281
    functionName: check_user_password
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - cl_sha256
    - calloc
    - noisy_msg
    - noisy_warnmsg
    - cli_errmsg
    - arc4_apply
    - memcmp
    - cli_max_malloc
    - arc4_init
    - aes_256cbc_decrypt
    - cli_dbgmsg
    - compute_hash_r6
    - memcpy
    - dbg_printhex
    - cl_hash_data
    - free
    linkageType: ''
    returnType: void
    signature: "void check_user_password(struct pdf_struct *pdf, int R, const char
      *O,\n                                const char *U, int32_t P, int EM,\n                                const
      char *UE, size_t UE_len,\n                                unsigned length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/pdf.c:3292,1
    - Dst: pdf_getdict
      Src: /src/clamav/libclamav/pdf.c:3295,1
    - Dst: pdf_readval
      Src: /src/clamav/libclamav/pdf.c:3299,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3301,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:3302,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:3304,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:3306,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdf.c:3308,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3311,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - dict
    - len
    - key
    - def
    argTypes:
    - char*
    - unsigned
    - char*
    - enum enc_method
    constantsTouched: []
    func_position:
      end: 3315
      start: 3283
    functionDepth: 4
    functionLinenumber: 3283
    functionLinenumberEnd: 3315
    functionName: parse_enc_method
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - pdf_readval
    - strcmp
    - pdf_getdict
    - cli_dbgmsg
    - free
    - strncmp
    linkageType: ''
    returnType: enum enc_method
    signature: enum enc_method parse_enc_method(const char *dict, unsigned len, const
      char *key, enum enc_method def)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3339,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3340,1
    - Dst: find_obj
      Src: /src/clamav/libclamav/pdf.c:3344,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3346,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3347,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pdf.c:3356,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3357,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3358,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pdf.c:3364,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3365,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3366,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:3377,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3379,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3380,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:3388,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:3390,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3393,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:3397,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3399,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3400,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3405,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3406,1
    - Dst: pdf_readint
      Src: /src/clamav/libclamav/pdf.c:3410,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3413,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3414,1
    - Dst: pdf_readbool
      Src: /src/clamav/libclamav/pdf.c:3430,1
    - Dst: pdf_readval
      Src: /src/clamav/libclamav/pdf.c:3431,1
    - Dst: pdf_readval
      Src: /src/clamav/libclamav/pdf.c:3432,1
    - Dst: pdf_readval
      Src: /src/clamav/libclamav/pdf.c:3433,1
    - Dst: pdf_getdict
      Src: /src/clamav/libclamav/pdf.c:3435,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3439,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3442,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3445,1
    - Dst: parse_enc_method
      Src: /src/clamav/libclamav/pdf.c:3448,1
    - Dst: parse_enc_method
      Src: /src/clamav/libclamav/pdf.c:3449,1
    - Dst: parse_enc_method
      Src: /src/clamav/libclamav/pdf.c:3450,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3452,1
    - Dst: pdf_readstring
      Src: /src/clamav/libclamav/pdf.c:3463,1
    - Dst: pdf_readstring
      Src: /src/clamav/libclamav/pdf.c:3470,1
    - Dst: pdf_readstring
      Src: /src/clamav/libclamav/pdf.c:3482,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3484,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3485,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3487,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3495,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3496,1
    - Dst: pdf_readstring
      Src: /src/clamav/libclamav/pdf.c:3506,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3508,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3509,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3511,1
    - Dst: dbg_printhex
      Src: /src/clamav/libclamav/pdf.c:3520,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3526,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3528,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3529,1
    - Dst: check_owner_password
      Src: /src/clamav/libclamav/pdf.c:3534,1
    - Dst: check_user_password
      Src: /src/clamav/libclamav/pdf.c:3538,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3542,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3543,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3545,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3546,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3548,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3549,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3550,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 176
    argCount: 1
    argNames:
    - pdf
    argTypes:
    - struct pdf_struct*
    constantsTouched: []
    func_position:
      end: 3551
      start: 3317
    functionDepth: 5
    functionLinenumber: 3317
    functionLinenumberEnd: 3551
    functionName: pdf_handle_enc
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - pdf_readval
    - dbg_printhex
    - parse_enc_method
    - pdf_readstring
    - CLI_ISCONTAINED
    - cli_memstr
    - pdf_readbool
    - pdf_getdict
    - cli_dbgmsg
    - check_owner_password
    - pdf_readint
    - find_obj
    - noisy_warnmsg
    - check_user_password
    - free
    linkageType: ''
    returnType: void
    signature: void pdf_handle_enc(struct pdf_struct *pdf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3580,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3585,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/pdf.c:3593,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3594,1
    - Dst: pdf_findobj_in_objstm
      Src: /src/clamav/libclamav/pdf.c:3600,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3603,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3611,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/pdf.c:3613,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3614,1
    - Dst: pdf_parseobj
      Src: /src/clamav/libclamav/pdf.c:3620,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - pdf
    - objstm
    argTypes:
    - struct pdf_struct*
    - struct objstm_struct*
    constantsTouched: []
    func_position:
      end: 3632
      start: 3563
    functionDepth: 5
    functionLinenumber: 3563
    functionLinenumberEnd: 3632
    functionName: pdf_find_and_parse_objs_in_objstm
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - pdf_parseobj
    - cli_dbgmsg
    - pdf_findobj_in_objstm
    - cli_checktimelimit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t pdf_find_and_parse_objs_in_objstm(struct pdf_struct *pdf,
      struct objstm_struct *objstm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3650,1
    - Dst: pdf_findobj
      Src: /src/clamav/libclamav/pdf.c:3658,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3660,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/pdf.c:3670,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3671,1
    - Dst: pdf_parseobj
      Src: /src/clamav/libclamav/pdf.c:3677,1
    - Dst: pdf_handle_enc
      Src: /src/clamav/libclamav/pdf.c:3680,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3682,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pdf.c:3691,1
    - Dst: run_pdf_hooks
      Src: /src/clamav/libclamav/pdf.c:3695,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3696,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/pdf.c:3704,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3705,1
    - Dst: pdf_extract_obj
      Src: /src/clamav/libclamav/pdf.c:3712,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3717,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 1
    argNames:
    - pdf
    argTypes:
    - struct pdf_struct*
    constantsTouched: []
    func_position:
      end: 3736
      start: 3641
    functionDepth: 6
    functionLinenumber: 3641
    functionLinenumberEnd: 3736
    functionName: pdf_find_and_extract_objs
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - pdf_handle_enc
    - pdf_findobj
    - cli_append_potentially_unwanted
    - pdf_parseobj
    - cli_checktimelimit
    - pdf_extract_obj
    - cli_dbgmsg
    - run_pdf_hooks
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t pdf_find_and_extract_objs(struct pdf_struct *pdf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3764,1
    - Dst: memset
      Src: /src/clamav/libclamav/pdf.c:3765,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pdf.c:3770,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3774,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:3780,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:3783,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3785,1
    - Dst: noisy_warnmsg
      Src: /src/clamav/libclamav/pdf.c:3786,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3804,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:3807,1
    - Dst: strtoul
      Src: /src/clamav/libclamav/pdf.c:3812,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdf.c:3813,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/pdf.c:3815,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:3817,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3818,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3825,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:3828,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pdf.c:3840,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3842,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:3850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3856,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:3859,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:3866,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3872,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:3875,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/pdf.c:3878,1
    - Dst: pdf_parse_trailer
      Src: /src/clamav/libclamav/pdf.c:3882,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:3889,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3890,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3893,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/pdf.c:3901,1
    - Dst: xrefCheck
      Src: /src/clamav/libclamav/pdf.c:3902,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3903,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/pdf.c:3912,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:3914,1
    - Dst: run_pdf_hooks
      Src: /src/clamav/libclamav/pdf.c:3922,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3924,1
    - Dst: pdf_find_and_extract_objs
      Src: /src/clamav/libclamav/pdf.c:3935,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3938,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3941,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3943,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:3950,1
    - Dst: run_pdf_hooks
      Src: /src/clamav/libclamav/pdf.c:3951,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/pdf.c:3956,1
    - Dst: pdf_export_json
      Src: /src/clamav/libclamav/pdf.c:3981,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3987,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3990,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:3994,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4002,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4005,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4009,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4013,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4017,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdf.c:4024,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 212
    argCount: 3
    argNames:
    - dir
    - ctx
    - offset
    argTypes:
    - char*
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 4026
      start: 3747
    functionDepth: 7
    functionLinenumber: 3747
    functionLinenumberEnd: 4026
    functionName: cli_pdf
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cli_max_calloc
    - cli_strntol_wrap
    - strncpy
    - fmap_need_off_once
    - cli_jsonobj
    - cli_dbgmsg
    - cli_jsonbool
    - strtoul
    - xrefCheck
    - memset
    - cli_jsonstr
    - pdf_parse_trailer
    - cli_append_potentially_unwanted
    - run_pdf_hooks
    - pdf_export_json
    - noisy_warnmsg
    - fmap_need_off
    - free
    - pdf_find_and_extract_objs
    - cli_memstr
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_pdf(const char *dir, cli_ctx *ctx, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/libclamav/pdf.c:4044,1
    - Dst: strchr
      Src: /src/clamav/libclamav/pdf.c:4051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 4059
      start: 4036
    functionDepth: 0
    functionLinenumber: 4036
    functionLinenumberEnd: 4059
    functionName: pdf_nextlinestart
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      pdf_nextlinestart(const char *ptr, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pdf_nextlinestart
      Src: /src/clamav/libclamav/pdf.c:4082,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 4118
      start: 4071
    functionDepth: 1
    functionLinenumber: 4071
    functionLinenumberEnd: 4118
    functionName: pdf_nextobject
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 5
    functionsReached:
    - pdf_nextlinestart
    linkageType: ''
    returnType: char
    signature: 'char *

      pdf_nextobject(const char *ptr, size_t len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4123,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4130
      start: 4121
    functionDepth: 0
    functionLinenumber: 4121
    functionLinenumberEnd: 4130
    functionName: ASCIIHexDecode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void ASCIIHexDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj,
      struct pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4134,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4141
      start: 4132
    functionDepth: 0
    functionLinenumber: 4132
    functionLinenumberEnd: 4141
    functionName: ASCII85Decode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void ASCII85Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj,
      struct pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4145,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4152
      start: 4143
    functionDepth: 0
    functionLinenumber: 4143
    functionLinenumberEnd: 4152
    functionName: EmbeddedFile_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void EmbeddedFile_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4156,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4163
      start: 4154
    functionDepth: 0
    functionLinenumber: 4154
    functionLinenumberEnd: 4163
    functionName: FlateDecode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void FlateDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4167,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4174
      start: 4165
    functionDepth: 0
    functionLinenumber: 4165
    functionLinenumberEnd: 4174
    functionName: Image_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void Image_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4178,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4185
      start: 4176
    functionDepth: 0
    functionLinenumber: 4176
    functionLinenumberEnd: 4185
    functionName: LZWDecode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void LZWDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4189,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4196
      start: 4187
    functionDepth: 0
    functionLinenumber: 4187
    functionLinenumberEnd: 4196
    functionName: RunLengthDecode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void RunLengthDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj,
      struct pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4200,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4207
      start: 4198
    functionDepth: 0
    functionLinenumber: 4198
    functionLinenumberEnd: 4207
    functionName: CCITTFaxDecode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void CCITTFaxDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj,
      struct pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4214,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4215,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:4228,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:4232,1
    - Dst: cli_jsonint_array
      Src: /src/clamav/libclamav/pdf.c:4236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4239
      start: 4209
    functionDepth: 1
    functionLinenumber: 4209
    functionLinenumberEnd: 4239
    functionName: JBIG2Decode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_jsonint_array
    - cli_jsonobj
    - cli_jsonarray
    linkageType: ''
    returnType: void
    signature: void JBIG2Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4243,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4250
      start: 4241
    functionDepth: 0
    functionLinenumber: 4241
    functionLinenumberEnd: 4250
    functionName: DCTDecode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void DCTDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4254,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4261
      start: 4252
    functionDepth: 0
    functionLinenumber: 4252
    functionLinenumberEnd: 4261
    functionName: JPXDecode_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void JPXDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4265,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4272
      start: 4263
    functionDepth: 0
    functionLinenumber: 4263
    functionLinenumberEnd: 4272
    functionName: Crypt_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void Crypt_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4276,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4283
      start: 4274
    functionDepth: 0
    functionLinenumber: 4274
    functionLinenumberEnd: 4283
    functionName: Standard_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void Standard_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4287,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4294
      start: 4285
    functionDepth: 0
    functionLinenumber: 4285
    functionLinenumberEnd: 4294
    functionName: Sig_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void Sig_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4298,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4299,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4308
      start: 4296
    functionDepth: 0
    functionLinenumber: 4296
    functionLinenumberEnd: 4308
    functionName: JavaScript_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void JavaScript_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4312,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4319
      start: 4310
    functionDepth: 0
    functionLinenumber: 4310
    functionLinenumberEnd: 4319
    functionName: OpenAction_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void OpenAction_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4323,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4330
      start: 4321
    functionDepth: 0
    functionLinenumber: 4321
    functionLinenumberEnd: 4330
    functionName: Launch_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void Launch_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4334,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4341
      start: 4332
    functionDepth: 0
    functionLinenumber: 4332
    functionLinenumberEnd: 4341
    functionName: Page_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void Page_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4347,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4361,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4369
      start: 4343
    functionDepth: 1
    functionLinenumber: 4343
    functionLinenumberEnd: 4369
    functionName: Author_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void Author_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4375,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4389,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4397
      start: 4371
    functionDepth: 1
    functionLinenumber: 4371
    functionLinenumberEnd: 4397
    functionName: Creator_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void Creator_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4403,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4417,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4425
      start: 4399
    functionDepth: 1
    functionLinenumber: 4399
    functionLinenumberEnd: 4425
    functionName: ModificationDate_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void ModificationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj,
      struct pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4431,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4445,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4453
      start: 4427
    functionDepth: 1
    functionLinenumber: 4427
    functionLinenumberEnd: 4453
    functionName: CreationDate_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void CreationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4459,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4473,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4481
      start: 4455
    functionDepth: 1
    functionLinenumber: 4455
    functionLinenumberEnd: 4481
    functionName: Producer_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void Producer_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4487,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4501,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4509
      start: 4483
    functionDepth: 1
    functionLinenumber: 4483
    functionLinenumberEnd: 4509
    functionName: Title_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void Title_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4515,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4529,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4537
      start: 4511
    functionDepth: 1
    functionLinenumber: 4511
    functionLinenumberEnd: 4537
    functionName: Keywords_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void Keywords_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4543,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdf.c:4557,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdf.c:4562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4565
      start: 4539
    functionDepth: 1
    functionLinenumber: 4539
    functionLinenumberEnd: 4565
    functionName: Subject_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - calloc
    - pdf_parse_string
    linkageType: ''
    returnType: void
    signature: void Subject_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4569,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4576
      start: 4567
    functionDepth: 0
    functionLinenumber: 4567
    functionLinenumberEnd: 4576
    functionName: RichMedia_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void RichMedia_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4580,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4587
      start: 4578
    functionDepth: 0
    functionLinenumber: 4578
    functionLinenumberEnd: 4587
    functionName: AcroForm_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void AcroForm_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4591,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4598
      start: 4589
    functionDepth: 0
    functionLinenumber: 4589
    functionLinenumberEnd: 4598
    functionName: XFA_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void XFA_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4613,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:4623,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:4627,1
    - Dst: pdf_parse_array
      Src: /src/clamav/libclamav/pdf.c:4634,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4638,1
    - Dst: strchr
      Src: /src/clamav/libclamav/pdf.c:4644,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:4647,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4649,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdf.c:4654,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:4664,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4665,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4667,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4671,1
    - Dst: pdf_free_array
      Src: /src/clamav/libclamav/pdf.c:4676,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4677
      start: 4600
    functionDepth: 2
    functionLinenumber: 4600
    functionLinenumberEnd: 4677
    functionName: Pages_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - pdf_parse_array
    - UNUSEDPARAM
    - cli_jsonobj
    - cli_memstr
    - strchr
    - pdf_free_array
    - cli_jsonbool
    - isspace
    - cli_strntol_wrap
    linkageType: ''
    returnType: void
    signature: void Pages_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4689,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdf.c:4699,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdf.c:4709,1
    - Dst: cli_strntol_wrap
      Src: /src/clamav/libclamav/pdf.c:4715,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:4726,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:4730,1
    - Dst: cli_jsonint_array
      Src: /src/clamav/libclamav/pdf.c:4734,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4735
      start: 4679
    functionDepth: 2
    functionLinenumber: 4679
    functionLinenumberEnd: 4735
    functionName: Colors_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - cli_jsonint_array
    - UNUSEDPARAM
    - cli_memstr
    - cli_jsonobj
    - isspace
    - cli_jsonarray
    - cli_strntol_wrap
    linkageType: ''
    returnType: void
    signature: void Colors_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
      pdfname_action *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdf.c:4746,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pdf.c:4765,1
    - Dst: MIN
      Src: /src/clamav/libclamav/pdf.c:4767,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/pdf.c:4794,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:4795,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/pdf.c:4796,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:4799,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdf.c:4801,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4804,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4806,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 3
    argNames:
    - pdf
    - obj
    - act
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdfname_action*
    constantsTouched: []
    func_position:
      end: 4807
      start: 4737
    functionDepth: 2
    functionLinenumber: 4737
    functionLinenumberEnd: 4807
    functionName: URI_cb
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 1
    functionsReached:
    - cli_jsonstr
    - free
    - UNUSEDPARAM
    - strncpy
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - MIN
    - cli_errmsg
    - cli_jsonarray
    linkageType: ''
    returnType: void
    signature: void URI_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action
      *act)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4818,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4819,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4825,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4826,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4832,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4833,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4839,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4840,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4846,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4847,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4853,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4854,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4860,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4861,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4867,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4868,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - pdf
    argTypes:
    - struct pdf_struct*
    constantsTouched: []
    func_position:
      end: 4871
      start: 4809
    functionDepth: 0
    functionLinenumber: 4809
    functionLinenumberEnd: 4871
    functionName: pdf_free_stats
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void pdf_free_stats(struct pdf_struct *pdf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/pdf.c:4892,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4901,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:4903,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:4908,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4909,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4912,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4913,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4914,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4916,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4923,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:4925,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:4930,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4931,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4934,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4935,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4936,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4938,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4945,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:4947,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:4952,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4953,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4956,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4957,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4958,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4960,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4967,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:4969,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:4974,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4975,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4978,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:4979,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4980,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4982,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:4989,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:4991,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:4996,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:4997,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5000,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5001,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:5002,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5004,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:5011,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:5013,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:5018,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5019,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5022,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5023,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:5024,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5026,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:5033,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:5035,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:5040,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5041,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5044,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5045,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:5046,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5048,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:5055,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdf.c:5057,1
    - Dst: cli_isutf8
      Src: /src/clamav/libclamav/pdf.c:5062,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5063,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5066,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5067,1
    - Dst: free
      Src: /src/clamav/libclamav/pdf.c:5068,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/pdf.c:5070,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5074,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5076,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5078,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5080,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5082,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5084,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5086,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5088,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5090,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5092,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5094,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5096,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5098,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5100,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5102,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5104,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5106,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5108,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5110,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5112,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5114,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5116,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5118,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5120,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/pdf.c:5122,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5124,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5126,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5128,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5130,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5132,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5134,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/pdf.c:5136,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/pdf.c:5143,1
    - Dst: cli_jsonint_array
      Src: /src/clamav/libclamav/pdf.c:5147,1
    - Dst: pdf_free_stats
      Src: /src/clamav/libclamav/pdf.c:5152,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 252
    argCount: 1
    argNames:
    - pdf
    argTypes:
    - struct pdf_struct*
    constantsTouched: []
    func_position:
      end: 5153
      start: 4873
    functionDepth: 1
    functionLinenumber: 4873
    functionLinenumberEnd: 5153
    functionName: pdf_export_json
    functionSourceFile: /src/clamav/libclamav/pdf.c
    functionUses: 1
    functionsReached:
    - cli_jsonint_array
    - cli_jsonstr
    - pdf_free_stats
    - strlen
    - cli_jsonobj
    - cli_jsonint
    - cli_jsonbool
    - cli_isutf8
    - free
    - cli_jsonarray
    linkageType: ''
    returnType: void
    signature: void pdf_export_json(struct pdf_struct *pdf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/filtering.c:145,1
    - Dst: memset
      Src: /src/clamav/libclamav/filtering.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct filter*
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: filter_init
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void filter_init(struct filter *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - pos
    - val
    argTypes:
    - struct filter*
    - unsigned
    - uint16_t
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: filter_isset
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int filter_isset(const struct filter *m, unsigned pos, uint16_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_isset
      Src: /src/clamav/libclamav/filtering.c:159,1
    - Dst: cli_perf_log_count
      Src: /src/clamav/libclamav/filtering.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - m
    - pos
    - val
    argTypes:
    - struct filter*
    - unsigned
    - uint16_t
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: filter_set_atpos
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached:
    - filter_isset
    - cli_perf_log_count
    linkageType: ''
    returnType: void
    signature: void filter_set_atpos(struct filter *m, unsigned pos, uint16_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - m
    - pos
    - a
    argTypes:
    - struct filter*
    - unsigned
    - uint16_t
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: filter_end_isset
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int filter_end_isset(const struct filter *m, unsigned pos, uint16_t
      a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_end_isset
      Src: /src/clamav/libclamav/filtering.c:172,1
    - Dst: cli_perf_log_count
      Src: /src/clamav/libclamav/filtering.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - m
    - pos
    - a
    argTypes:
    - struct filter*
    - unsigned
    - uint16_t
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: filter_set_end
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached:
    - filter_end_isset
    - cli_perf_log_count
    linkageType: ''
    returnType: void
    signature: void filter_set_end(struct filter *m, unsigned pos, uint16_t a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/filtering.c:193,1
    - Dst: cli_perf_log_count
      Src: /src/clamav/libclamav/filtering.c:195,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/filtering.c:216,1
    - Dst: filter_isset
      Src: /src/clamav/libclamav/filtering.c:219,1
    - Dst: filter_end_isset
      Src: /src/clamav/libclamav/filtering.c:224,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:240,1
    - Dst: detailed_dbg
      Src: /src/clamav/libclamav/filtering.c:242,1
    - Dst: cli_readint16
      Src: /src/clamav/libclamav/filtering.c:253,1
    - Dst: filter_set_atpos
      Src: /src/clamav/libclamav/filtering.c:254,1
    - Dst: filter_set_end
      Src: /src/clamav/libclamav/filtering.c:261,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 4
    argNames:
    - m
    - pattern
    - len
    - name
    argTypes:
    - struct filter*
    - unsigned char*
    - unsigned long
    - char*
    constantsTouched: []
    func_position:
      end: 264
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 264
    functionName: filter_add_static
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 2
    functionsReached:
    - filter_isset
    - cli_perf_log_count
    - UNUSEDPARAM
    - detailed_dbg
    - filter_end_isset
    - cli_readint16
    - filter_set_atpos
    - filter_set_end
    - assert
    linkageType: ''
    returnType: int
    signature: int filter_add_static(struct filter *m, const unsigned char *pattern,
      unsigned long len, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:280,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - spec
    - i
    argTypes:
    - struct char_spec*
    - unsigned
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: spec_ith_char
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char spec_ith_char(const struct char_spec *spec, unsigned
      i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:331,1
    - Dst: filter_isset
      Src: /src/clamav/libclamav/filtering.c:367,1
    - Dst: filter_end_isset
      Src: /src/clamav/libclamav/filtering.c:368,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 7
    argNames:
    - badness
    - i
    - m
    - spec0
    - spec1
    - score
    - score_end
    argTypes:
    - enum badness
    - unsigned
    - struct filter*
    - struct char_spec*
    - struct char_spec*
    - int32_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 379
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 379
    functionName: get_score
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached:
    - assert
    - filter_end_isset
    - filter_isset
    linkageType: ''
    returnType: void
    signature: void get_score(enum badness badness, unsigned i, const struct filter
      *m, const struct char_spec *spec0, const struct char_spec *spec1, int32_t *score,
      int32_t *score_end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:391,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - choices
    - cnt
    - i
    - ie
    - badness
    argTypes:
    - struct choice*
    - unsigned*
    - unsigned
    - unsigned
    - enum badness
    constantsTouched: []
    func_position:
      end: 415
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 415
    functionName: add_choice
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void add_choice(struct choice *choices, unsigned *cnt, unsigned i,
      unsigned ie, enum badness badness)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - spec
    argTypes:
    - struct char_spec*
    constantsTouched: []
    func_position:
      end: 425
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 425
    functionName: spec_iter
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int32_t
    signature: int32_t spec_iter(const struct char_spec *spec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/clamav/libclamav/filtering.c:446,1
    - Dst: filter_add_static
      Src: /src/clamav/libclamav/filtering.c:456,1
    - Dst: cli_perf_log_count
      Src: /src/clamav/libclamav/filtering.c:458,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:500,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:502,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/filtering.c:528,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/filtering.c:536,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/filtering.c:538,1
    - Dst: spec_iter
      Src: /src/clamav/libclamav/filtering.c:547,1
    - Dst: spec_iter
      Src: /src/clamav/libclamav/filtering.c:547,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:597,1
    - Dst: MIN
      Src: /src/clamav/libclamav/filtering.c:619,1
    - Dst: MIN
      Src: /src/clamav/libclamav/filtering.c:621,1
    - Dst: add_choice
      Src: /src/clamav/libclamav/filtering.c:623,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:643,1
    - Dst: get_score
      Src: /src/clamav/libclamav/filtering.c:644,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:661,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/filtering.c:667,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/filtering.c:671,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:674,1
    - Dst: detailed_dbg
      Src: /src/clamav/libclamav/filtering.c:675,1
    - Dst: assert
      Src: /src/clamav/libclamav/filtering.c:677,1
    - Dst: detailed_dbg
      Src: /src/clamav/libclamav/filtering.c:689,1
    - Dst: filter_set_atpos
      Src: /src/clamav/libclamav/filtering.c:691,1
    - Dst: detailed_dbg
      Src: /src/clamav/libclamav/filtering.c:705,1
    - Dst: filter_set_end
      Src: /src/clamav/libclamav/filtering.c:707,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 210
    argCount: 2
    argNames:
    - m
    - pat
    argTypes:
    - struct filter*
    - struct cli_ac_patt*
    constantsTouched: []
    func_position:
      end: 714
      start: 427
    functionDepth: 6
    functionLinenumber: 427
    functionLinenumberEnd: 714
    functionName: filter_add_acpatt
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 1
    functionsReached:
    - filter_set_end
    - cli_perf_log_count
    - cli_warnmsg
    - filter_add_static
    - spec_iter
    - detailed_dbg
    - add_choice
    - filter_set_atpos
    - get_score
    - MIN
    - assert
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int filter_add_acpatt(struct filter *m, const struct cli_ac_patt *pat)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - m
    - data
    - len
    - inf
    argTypes:
    - struct filter*
    - unsigned char*
    - unsigned long
    - struct filter_match_info*
    constantsTouched: []
    func_position:
      end: 740
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 740
    functionName: filter_search_ext
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __hot__
    signature: __hot__ filter_search_ext(const struct filter *m, const unsigned char
      *data, unsigned long len, struct filter_match_info *inf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - m
    - data
    - len
    argTypes:
    - struct filter*
    - unsigned char*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 776
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 776
    functionName: filter_search
    functionSourceFile: /src/clamav/libclamav/filtering.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long filter_search(const struct filter *m, const unsigned char *data,
      unsigned long len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - msg
    - a
    - b
    - file
    - line
    argTypes:
    - char*
    - long
    - long
    - char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: never_inline::bcfail
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    linkageType: ''
    returnType: int
    signature: "int never_inline bcfail(const char *msg, long a, long b,\n                               const
      char *file, unsigned line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - msg
    - a
    - b
    - file
    - line
    argTypes:
    - char*
    - long
    - long
    - char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: bcfail
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bcfail(const char *msg, long a, long b,\n                         const
      char *file, unsigned line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GT
      Src: /src/clamav/libclamav/bytecode_vm.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - func
    - bbid
    - bb
    - inst
    - bb_inst
    argTypes:
    - struct cli_bc_func*
    - uint16_t
    - struct cli_bc_bb**
    - struct cli_bc_inst**
    - unsigned*
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: jump
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - CHECK_GT
    linkageType: ''
    returnType: always_inline
    signature: "always_inline jump(const struct cli_bc_func *func, uint16_t bbid,
      struct cli_bc_bb **bb, const struct cli_bc_inst **inst,\n                              unsigned
      *bb_inst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:170,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode_vm.c:174,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - stack
    - bytes
    argTypes:
    - struct stack*
    - unsigned
    constantsTouched: []
    func_position:
      end: 187
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 187
    functionName: cli_stack_alloc
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - malloc
    linkageType: ''
    returnType: always_inline
    signature: always_inline *cli_stack_alloc(struct stack *stack, unsigned bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:194,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:198,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:204,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_vm.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - stack
    - data
    argTypes:
    - struct stack*
    - void*
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: cli_stack_free
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - free
    linkageType: ''
    returnType: always_inline
    signature: always_inline cli_stack_free(struct stack *stack, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_vm.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct stack*
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: cli_stack_destroy
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cli_stack_destroy(struct stack *stack)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_stack_alloc
      Src: /src/clamav/libclamav/bytecode_vm.c:243,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/bytecode_vm.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 7
    argNames:
    - stack
    - prev
    - func
    - func_old
    - ret
    - bb
    - bb_inst
    argTypes:
    - struct stack*
    - struct stack_entry*
    - struct cli_bc_func*
    - struct cli_bc_func*
    - operand_t
    - struct cli_bc_bb*
    - unsigned
    constantsTouched: []
    func_position:
      end: 256
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 256
    functionName: allocate_stack
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_stack_alloc
    linkageType: ''
    returnType: always_inline
    signature: "always_inline *allocate_stack(struct stack *stack,\n                                                        struct
      stack_entry *prev,\n                                                        const
      struct cli_bc_func *func,\n                                                        const
      struct cli_bc_func *func_old,\n                                                        operand_t
      ret,\n                                                        struct cli_bc_bb
      *bb,\n                                                        unsigned bb_inst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_stack_free
      Src: /src/clamav/libclamav/bytecode_vm.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - stack
    - stack_entry
    - func
    - ret
    - bb
    - bb_inst
    argTypes:
    - struct stack*
    - struct stack_entry*
    - struct cli_bc_func**
    - operand_t*
    - struct cli_bc_bb**
    - unsigned*
    constantsTouched: []
    func_position:
      end: 274
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 274
    functionName: pop_stack
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - cli_stack_free
    linkageType: ''
    returnType: always_inline
    signature: "always_inline *pop_stack(struct stack *stack,\n                                                   struct
      stack_entry *stack_entry,\n                                                   const
      struct cli_bc_func **func,\n                                                   operand_t
      *ret,\n                                                   struct cli_bc_bb **bb,\n
      \                                                  unsigned *bb_inst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - offset
    argTypes:
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: ptr_compose
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t ptr_compose(int32_t id, uint32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bcfail
      Src: /src/clamav/libclamav/bytecode_vm.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr1
    - ptr2
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: ptr_diff32
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - bcfail
    linkageType: ''
    returnType: int32_t
    signature: int32_t ptr_diff32(int64_t ptr1, int64_t ptr2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_realloc
      Src: /src/clamav/libclamav/bytecode_vm.c:599,1
    - Dst: ptr_compose
      Src: /src/clamav/libclamav/bytecode_vm.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - infos
    - values
    - 'off'
    - size
    argTypes:
    - struct ptr_infos*
    - char*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 609
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 609
    functionName: ptr_register_stack
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - ptr_compose
    - cli_safer_realloc
    linkageType: ''
    returnType: int64_t
    signature: "int64_t ptr_register_stack(struct ptr_infos *infos,\n                                         char
      *values,\n                                         uint32_t off, uint32_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_realloc
      Src: /src/clamav/libclamav/bytecode_vm.c:616,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_vm.c:619,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:628,1
    - Dst: ptr_compose
      Src: /src/clamav/libclamav/bytecode_vm.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - infos
    - values
    - size
    - n
    argTypes:
    - struct ptr_infos*
    - void*
    - uint32_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 631
      start: 611
    functionDepth: 3
    functionLinenumber: 611
    functionLinenumberEnd: 631
    functionName: ptr_register_glob_fixedid
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - ptr_compose
    - memset
    - cli_safer_realloc
    - cli_dbgmsg
    linkageType: ''
    returnType: int64_t
    signature: "int64_t ptr_register_glob_fixedid(struct ptr_infos *infos,\n                                                void
      *values, uint32_t size, unsigned n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ptr_register_glob_fixedid
      Src: /src/clamav/libclamav/bytecode_vm.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - infos
    - values
    - size
    argTypes:
    - struct ptr_infos*
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 4
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: ptr_register_glob
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - ptr_register_glob_fixedid
    linkageType: ''
    returnType: int64_t
    signature: "int64_t ptr_register_glob(struct ptr_infos *infos,\n                                        void
      *values, uint32_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PTR
      Src: /src/clamav/libclamav/bytecode_vm.c:647,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/bytecode_vm.c:648,1
    - Dst: bcfail
      Src: /src/clamav/libclamav/bytecode_vm.c:649,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/bytecode_vm.c:654,1
    - Dst: bcfail
      Src: /src/clamav/libclamav/bytecode_vm.c:655,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/bytecode_vm.c:661,1
    - Dst: bcfail
      Src: /src/clamav/libclamav/bytecode_vm.c:662,1
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_vm.c:667,1
    - Dst: bcfail
      Src: /src/clamav/libclamav/bytecode_vm.c:673,1
    - Dst: bcfail
      Src: /src/clamav/libclamav/bytecode_vm.c:674,1
    - Dst: bcfail
      Src: /src/clamav/libclamav/bytecode_vm.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - infos
    - ptr
    - read_size
    argTypes:
    - struct ptr_infos*
    - int64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 677
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 677
    functionName: ptr_torealptr
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - LIKELY
    - UNLIKELY
    - TRACE_PTR
    - bcfail
    linkageType: ''
    returnType: void
    signature: "void *ptr_torealptr(const struct ptr_infos *infos, int64_t ptr,\n
      \                                 uint32_t read_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - op0
    - op1
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: check_sdivops
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: always_inline check_sdivops(int64_t op0, int64_t op1)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: globaltypesize
      Src: /src/clamav/libclamav/bytecode_vm.c:694,1
    - Dst: globaltypesize
      Src: /src/clamav/libclamav/bytecode_vm.c:699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 705
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 705
    functionName: globaltypesize
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 1
    functionsReached:
    - globaltypesize
    linkageType: ''
    returnType: unsigned
    signature: unsigned globaltypesize(uint16_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_vm.c:731,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_vm.c:732,1
    - Dst: globaltypesize
      Src: /src/clamav/libclamav/bytecode_vm.c:741,1
    - Dst: ptr_register_glob_fixedid
      Src: /src/clamav/libclamav/bytecode_vm.c:742,1
    - Dst: ptr_register_glob_fixedid
      Src: /src/clamav/libclamav/bytecode_vm.c:744,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/bytecode_vm.c:747,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/bytecode_vm.c:755,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:759,1
    - Dst: TRACE_INST
      Src: /src/clamav/libclamav/bytecode_vm.c:765,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:768,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:769,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:770,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:772,1
    - Dst: CHECK_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:772,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:774,1
    - Dst: CHECK_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:774,1
    - Dst: check_sdivops
      Src: /src/clamav/libclamav/bytecode_vm.c:774,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:776,1
    - Dst: CHECK_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:776,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:778,1
    - Dst: CHECK_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:778,1
    - Dst: check_sdivops
      Src: /src/clamav/libclamav/bytecode_vm.c:778,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:781,1
    - Dst: CHECK_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:781,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:783,1
    - Dst: CHECK_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:783,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:785,1
    - Dst: CHECK_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:785,1
    - Dst: CLI_SRS
      Src: /src/clamav/libclamav/bytecode_vm.c:786,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:788,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:789,1
    - Dst: DEFINE_BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:790,1
    - Dst: DEFINE_SCASTOP
      Src: /src/clamav/libclamav/bytecode_vm.c:793,1
    - Dst: CHOOSE
      Src: /src/clamav/libclamav/bytecode_vm.c:794,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:794,1
    - Dst: READ8
      Src: /src/clamav/libclamav/bytecode_vm.c:795,1
    - Dst: SIGNEXT
      Src: /src/clamav/libclamav/bytecode_vm.c:795,1
    - Dst: READ16
      Src: /src/clamav/libclamav/bytecode_vm.c:796,1
    - Dst: SIGNEXT
      Src: /src/clamav/libclamav/bytecode_vm.c:796,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:797,1
    - Dst: SIGNEXT
      Src: /src/clamav/libclamav/bytecode_vm.c:797,1
    - Dst: READ64
      Src: /src/clamav/libclamav/bytecode_vm.c:798,1
    - Dst: SIGNEXT
      Src: /src/clamav/libclamav/bytecode_vm.c:798,1
    - Dst: DEFINE_CASTOP
      Src: /src/clamav/libclamav/bytecode_vm.c:800,1
    - Dst: CHOOSE
      Src: /src/clamav/libclamav/bytecode_vm.c:801,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:801,1
    - Dst: READ8
      Src: /src/clamav/libclamav/bytecode_vm.c:802,1
    - Dst: READ16
      Src: /src/clamav/libclamav/bytecode_vm.c:803,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:804,1
    - Dst: READ64
      Src: /src/clamav/libclamav/bytecode_vm.c:805,1
    - Dst: DEFINE_CASTOP
      Src: /src/clamav/libclamav/bytecode_vm.c:806,1
    - Dst: CHOOSE
      Src: /src/clamav/libclamav/bytecode_vm.c:807,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:807,1
    - Dst: READ8
      Src: /src/clamav/libclamav/bytecode_vm.c:808,1
    - Dst: READ16
      Src: /src/clamav/libclamav/bytecode_vm.c:809,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:810,1
    - Dst: READ64
      Src: /src/clamav/libclamav/bytecode_vm.c:811,1
    - Dst: DEFINE_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:813,1
    - Dst: jump
      Src: /src/clamav/libclamav/bytecode_vm.c:814,1
    - Dst: DEFINE_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:818,1
    - Dst: jump
      Src: /src/clamav/libclamav/bytecode_vm.c:819,1
    - Dst: DEFINE_OP_BC_RET_N
      Src: /src/clamav/libclamav/bytecode_vm.c:822,1
    - Dst: DEFINE_OP_BC_RET_N
      Src: /src/clamav/libclamav/bytecode_vm.c:823,1
    - Dst: DEFINE_OP_BC_RET_N
      Src: /src/clamav/libclamav/bytecode_vm.c:824,1
    - Dst: DEFINE_OP_BC_RET_N
      Src: /src/clamav/libclamav/bytecode_vm.c:825,1
    - Dst: DEFINE_OP_BC_RET_N
      Src: /src/clamav/libclamav/bytecode_vm.c:826,1
    - Dst: DEFINE_OP_BC_RET_VOID
      Src: /src/clamav/libclamav/bytecode_vm.c:828,1
    - Dst: DEFINE_OP_BC_RET_VOID
      Src: /src/clamav/libclamav/bytecode_vm.c:829,1
    - Dst: DEFINE_OP_BC_RET_VOID
      Src: /src/clamav/libclamav/bytecode_vm.c:830,1
    - Dst: DEFINE_OP_BC_RET_VOID
      Src: /src/clamav/libclamav/bytecode_vm.c:831,1
    - Dst: DEFINE_OP_BC_RET_VOID
      Src: /src/clamav/libclamav/bytecode_vm.c:832,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:834,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:835,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:836,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:837,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:838,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:839,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:840,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:841,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:842,1
    - Dst: DEFINE_ICMPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:843,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:847,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:848,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:849,1
    - Dst: WRITE8
      Src: /src/clamav/libclamav/bytecode_vm.c:850,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:855,1
    - Dst: READ8
      Src: /src/clamav/libclamav/bytecode_vm.c:856,1
    - Dst: READ8
      Src: /src/clamav/libclamav/bytecode_vm.c:857,1
    - Dst: WRITE8
      Src: /src/clamav/libclamav/bytecode_vm.c:858,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:864,1
    - Dst: READ16
      Src: /src/clamav/libclamav/bytecode_vm.c:865,1
    - Dst: READ16
      Src: /src/clamav/libclamav/bytecode_vm.c:866,1
    - Dst: WRITE16
      Src: /src/clamav/libclamav/bytecode_vm.c:867,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:873,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:874,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:875,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:876,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:882,1
    - Dst: READ64
      Src: /src/clamav/libclamav/bytecode_vm.c:883,1
    - Dst: READ64
      Src: /src/clamav/libclamav/bytecode_vm.c:884,1
    - Dst: WRITE64
      Src: /src/clamav/libclamav/bytecode_vm.c:885,1
    - Dst: CHECK_APIID
      Src: /src/clamav/libclamav/bytecode_vm.c:894,1
    - Dst: TRACE_API
      Src: /src/clamav/libclamav/bytecode_vm.c:895,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:899,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:900,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:902,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:908,1
    - Dst: READPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:917,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:919,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:924,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:926,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:932,1
    - Dst: ptr_register_glob
      Src: /src/clamav/libclamav/bytecode_vm.c:934,1
    - Dst: WRITE64
      Src: /src/clamav/libclamav/bytecode_vm.c:935,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:941,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:943,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:944,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:945,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:946,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:948,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:953,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:959,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:960,1
    - Dst: ptr_register_glob
      Src: /src/clamav/libclamav/bytecode_vm.c:962,1
    - Dst: WRITE64
      Src: /src/clamav/libclamav/bytecode_vm.c:963,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:968,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:969,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:970,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:972,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:979,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:981,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:982,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:983,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:985,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:992,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:994,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:995,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:997,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:1001,1
    - Dst: DEFINE_OP
      Src: /src/clamav/libclamav/bytecode_vm.c:1007,1
    - Dst: CHECK_FUNCID
      Src: /src/clamav/libclamav/bytecode_vm.c:1008,1
    - Dst: CHECK_EQ
      Src: /src/clamav/libclamav/bytecode_vm.c:1010,1
    - Dst: allocate_stack
      Src: /src/clamav/libclamav/bytecode_vm.c:1012,1
    - Dst: TRACE_EXEC
      Src: /src/clamav/libclamav/bytecode_vm.c:1020,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:1022,1
    - Dst: READOLD8
      Src: /src/clamav/libclamav/bytecode_vm.c:1031,1
    - Dst: CHECK_GT
      Src: /src/clamav/libclamav/bytecode_vm.c:1032,1
    - Dst: READOLD16
      Src: /src/clamav/libclamav/bytecode_vm.c:1038,1
    - Dst: CHECK_GT
      Src: /src/clamav/libclamav/bytecode_vm.c:1040,1
    - Dst: READOLD32
      Src: /src/clamav/libclamav/bytecode_vm.c:1047,1
    - Dst: CHECK_GT
      Src: /src/clamav/libclamav/bytecode_vm.c:1049,1
    - Dst: READOLD64
      Src: /src/clamav/libclamav/bytecode_vm.c:1056,1
    - Dst: CHECK_GT
      Src: /src/clamav/libclamav/bytecode_vm.c:1058,1
    - Dst: ptr_register_stack
      Src: /src/clamav/libclamav/bytecode_vm.c:1066,1
    - Dst: CHECK_GT
      Src: /src/clamav/libclamav/bytecode_vm.c:1067,1
    - Dst: jump
      Src: /src/clamav/libclamav/bytecode_vm.c:1068,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:1074,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1074,1
    - Dst: WRITE8
      Src: /src/clamav/libclamav/bytecode_vm.c:1075,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1075,1
    - Dst: READ8
      Src: /src/clamav/libclamav/bytecode_vm.c:1080,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1080,1
    - Dst: WRITE8
      Src: /src/clamav/libclamav/bytecode_vm.c:1081,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1081,1
    - Dst: READ16
      Src: /src/clamav/libclamav/bytecode_vm.c:1086,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1086,1
    - Dst: WRITE16
      Src: /src/clamav/libclamav/bytecode_vm.c:1087,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1087,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:1092,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1092,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:1093,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1093,1
    - Dst: READ64
      Src: /src/clamav/libclamav/bytecode_vm.c:1098,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1098,1
    - Dst: WRITE64
      Src: /src/clamav/libclamav/bytecode_vm.c:1099,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1099,1
    - Dst: READPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1106,1
    - Dst: WRITE8
      Src: /src/clamav/libclamav/bytecode_vm.c:1107,1
    - Dst: READPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1112,1
    - Dst: WRITE16
      Src: /src/clamav/libclamav/bytecode_vm.c:1113,1
    - Dst: READPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1118,1
    - Dst: WRITE32
      Src: /src/clamav/libclamav/bytecode_vm.c:1119,1
    - Dst: READPOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1124,1
    - Dst: WRITE64
      Src: /src/clamav/libclamav/bytecode_vm.c:1125,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:1132,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1132,1
    - Dst: READ1
      Src: /src/clamav/libclamav/bytecode_vm.c:1133,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1133,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:1140,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1140,1
    - Dst: READ8
      Src: /src/clamav/libclamav/bytecode_vm.c:1141,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1141,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:1148,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1148,1
    - Dst: READ16
      Src: /src/clamav/libclamav/bytecode_vm.c:1149,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1149,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:1156,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1156,1
    - Dst: READ32
      Src: /src/clamav/libclamav/bytecode_vm.c:1157,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1157,1
    - Dst: READP
      Src: /src/clamav/libclamav/bytecode_vm.c:1164,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1164,1
    - Dst: READ64
      Src: /src/clamav/libclamav/bytecode_vm.c:1165,1
    - Dst: BINOP
      Src: /src/clamav/libclamav/bytecode_vm.c:1165,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/bytecode_vm.c:1326,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:1329,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/bytecode_vm.c:1333,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_vm.c:1334,1
    - Dst: cli_stack_destroy
      Src: /src/clamav/libclamav/bytecode_vm.c:1337,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_vm.c:1338,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_vm.c:1339,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 351
    argCount: 4
    argNames:
    - bc
    - ctx
    - func
    - inst
    argTypes:
    - struct cli_bc*
    - struct cli_bc_ctx*
    - struct cli_bc_func*
    - struct cli_bc_inst*
    constantsTouched: []
    func_position:
      end: 1341
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 1341
    functionName: cli_vm_execute
    functionSourceFile: /src/clamav/libclamav/bytecode_vm.c
    functionUses: 0
    functionsReached:
    - ptr_register_stack
    - READPOP
    - TRACE_EXEC
    - cli_warnmsg
    - DEFINE_SCASTOP
    - READ1
    - WRITE8
    - allocate_stack
    - DEFINE_OP_BC_RET_VOID
    - READ16
    - READOLD32
    - CLI_SRS
    - ptr_register_glob_fixedid
    - DEFINE_ICMPOP
    - CHECK_FUNCID
    - READOLD64
    - WRITE64
    - cli_event_error_str
    - jump
    - globaltypesize
    - cli_stack_destroy
    - cli_dbgmsg
    - WRITE16
    - CHOOSE
    - BINOP
    - DEFINE_OP
    - WRITE32
    - READP
    - memset
    - DEFINE_OP_BC_RET_N
    - READ32
    - READ64
    - CHECK_OP
    - ptr_register_glob
    - TRACE_API
    - free
    - READ8
    - DEFINE_BINOP
    - READOLD8
    - DEFINE_CASTOP
    - CHECK_EQ
    - CHECK_APIID
    - check_sdivops
    - CHECK_GT
    - gettimeofday
    - READOLD16
    - SIGNEXT
    - TRACE_INST
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_vm_execute(const struct cli_bc *bc, struct cli_bc_ctx
      *ctx, const struct cli_bc_func *func, const struct cli_bc_inst *inst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - a
    - b
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: cli_bcapi_test1
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_test1(struct cli_bc_ctx *ctx, uint32_t a, uint32_t
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - a
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: cli_bcapi_test2
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_test2(struct cli_bc_ctx *ctx, uint32_t a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:93,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:97,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:98,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/bytecode_api.c:101,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:103,1
    - Dst: cli_event_count
      Src: /src/clamav/libclamav/bytecode_api.c:104,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode_api.c:107,1
    - Dst: cli_event_fastdata
      Src: /src/clamav/libclamav/bytecode_api.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - data
    - size
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: cli_bcapi_read
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_event_count
    - cli_warnmsg
    - cli_event_int
    - fmap_readn
    - cli_dbgmsg
    - API_MISUSE
    - cli_event_fastdata
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_read(struct cli_bc_ctx *ctx, uint8_t *data, int32_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:118,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:119,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:133,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:134,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:138,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode_api.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - pos
    - whence
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 145
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 145
    functionName: cli_bcapi_seek
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_event_int
    - cli_dbgmsg
    - API_MISUSE
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_seek(struct cli_bc_ctx *ctx, int32_t pos, uint32_t
      whence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:149,1
    - Dst: cli_event_fastdata
      Src: /src/clamav/libclamav/bytecode_api.c:150,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode_api.c:150,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: cli_bcapi_debug_print_str
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - strlen
    - cli_event_fastdata
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const uint8_t
      *str, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode_api.c:157,1
    - Dst: cli_eprintf
      Src: /src/clamav/libclamav/bytecode_api.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - a
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: cli_bcapi_debug_print_uint
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_event_int
    - cli_eprintf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t
      a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - name
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: cli_bcapi_setvirusname
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx *ctx, const uint8_t
      *name, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:181,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:183,1
    - Dst: MIN
      Src: /src/clamav/libclamav/bytecode_api.c:188,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/bytecode_api.c:189,1
    - Dst: cli_disasm_one
      Src: /src/clamav/libclamav/bytecode_api.c:191,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:195,1
    - Dst: cli_event_count
      Src: /src/clamav/libclamav/bytecode_api.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - res
    - len
    argTypes:
    - struct cli_bc_ctx*
    - struct DISASM_RESULT*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 200
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 200
    functionName: cli_bcapi_disasm_x86
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_event_count
    - UNUSEDPARAM
    - fmap_need_off_once
    - cli_disasm_one
    - cli_dbgmsg
    - MIN
    - API_MISUSE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_disasm_x86(struct cli_bc_ctx *ctx, struct DISASM_RESULT
      *res, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:213,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:214,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/bytecode_api.c:218,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:220,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/bytecode_api.c:221,1
    - Dst: open
      Src: /src/clamav/libclamav/bytecode_api.c:224,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:226,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/bytecode_api.c:226,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/bytecode_api.c:227,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:228,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:231,1
    - Dst: cli_event_fastdata
      Src: /src/clamav/libclamav/bytecode_api.c:234,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/bytecode_api.c:235,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/bytecode_api.c:237,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:240,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/bytecode_api.c:240,1
    - Dst: cli_event_error_str
      Src: /src/clamav/libclamav/bytecode_api.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 244
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 244
    functionName: cli_bcapi_write
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_warnmsg
    - open
    - cli_strerror
    - cli_dbgmsg
    - cli_checklimits
    - cli_event_error_oom
    - cli_writen
    - API_MISUSE
    - cli_event_error_str
    - free
    - cli_event_fastdata
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_write(struct cli_bc_ctx *ctx, uint8_t *data, int32_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - level
    - trace
    - trace_op
    - trace_val
    - trace_ptr
    argTypes:
    - struct cli_bc_ctx*
    - unsigned
    - bc_dbg_callback_trace
    - bc_dbg_callback_trace_op
    - bc_dbg_callback_trace_val
    - bc_dbg_callback_trace_ptr
    constantsTouched: []
    func_position:
      end: 257
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 257
    functionName: cli_bytecode_context_set_trace
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cli_bytecode_context_set_trace(struct cli_bc_ctx *ctx, unsigned
      level,\n                                    bc_dbg_callback_trace trace,\n                                    bc_dbg_callback_trace_op
      trace_op,\n                                    bc_dbg_callback_trace_val trace_val,\n
      \                                   bc_dbg_callback_trace_ptr trace_ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - scope
    - scopeid
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: cli_bcapi_trace_scope
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - LIKELY
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_trace_scope(struct cli_bc_ctx *ctx, const uint8_t
      *scope, uint32_t scopeid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:276,1
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - dir
    - dummy
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: cli_bcapi_trace_directory
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - LIKELY
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_trace_directory(struct cli_bc_ctx *ctx, const uint8_t
      *dir, uint32_t dummy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - file
    - line
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 293
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 293
    functionName: cli_bcapi_trace_source
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - LIKELY
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_trace_source(struct cli_bc_ctx *ctx, const uint8_t
      *file, uint32_t line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:297,1
    - Dst: struct cli_bc_ctx*::trace
      Src: /src/clamav/libclamav/bytecode_api.c:302,1
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:305,1
    - Dst: struct cli_bc_ctx*::trace
      Src: /src/clamav/libclamav/bytecode_api.c:309,1
    - Dst: struct cli_bc_ctx*::trace
      Src: /src/clamav/libclamav/bytecode_api.c:311,1
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:313,1
    - Dst: struct cli_bc_ctx*::trace_op
      Src: /src/clamav/libclamav/bytecode_api.c:316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - op
    - col
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: cli_bcapi_trace_op
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - struct cli_bc_ctx*::trace_op
    - struct cli_bc_ctx*::trace
    - LIKELY
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_trace_op(struct cli_bc_ctx *ctx, const uint8_t *op,
      uint32_t col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:322,1
    - Dst: struct cli_bc_ctx*::trace
      Src: /src/clamav/libclamav/bytecode_api.c:327,1
    - Dst: struct cli_bc_ctx*::trace_val
      Src: /src/clamav/libclamav/bytecode_api.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - name
    - value
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: cli_bcapi_trace_value
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - struct cli_bc_ctx*::trace
    - LIKELY
    - struct cli_bc_ctx*::trace_val
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_trace_value(struct cli_bc_ctx *ctx, const uint8_t
      *name, uint32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:336,1
    - Dst: LIKELY
      Src: /src/clamav/libclamav/bytecode_api.c:337,1
    - Dst: struct cli_bc_ctx*::trace
      Src: /src/clamav/libclamav/bytecode_api.c:342,1
    - Dst: struct cli_bc_ctx*::trace_ptr
      Src: /src/clamav/libclamav/bytecode_api.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - ptr
    - dummy
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 347
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 347
    functionName: cli_bcapi_trace_ptr
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - struct cli_bc_ctx*::trace
    - LIKELY
    - struct cli_bc_ctx*::trace_ptr
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_trace_ptr(struct cli_bc_ctx *ctx, const uint8_t
      *ptr, uint32_t dummy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_rawaddr
      Src: /src/clamav/libclamav/bytecode_api.c:355,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - rva
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 362
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 362
    functionName: cli_bcapi_pe_rawaddr
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_rawaddr
    - cli_dbgmsg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx, uint32_t rva)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/clamav/libclamav/bytecode_api.c:374,1
    - Dst: memchr
      Src: /src/clamav/libclamav/bytecode_api.c:378,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/bytecode_api.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - haystack
    - hlen
    - needle
    - nlen
    argTypes:
    - char*
    - unsigned
    - unsigned char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 388
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: cli_memmem
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memchr
    linkageType: ''
    returnType: char
    signature: "char *cli_memmem(const char *haystack, unsigned hlen,\n                                     const
      unsigned char *needle, unsigned nlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:394,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:395,1
    - Dst: cli_bcapi_file_find_limit
      Src: /src/clamav/libclamav/bytecode_api.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: cli_bcapi_file_find
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - cli_bcapi_file_find_limit
    - API_MISUSE
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_file_find(struct cli_bc_ctx *ctx, const uint8_t *data,
      uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:410,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:411,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode_api.c:417,1
    - Dst: cli_event_fastdata
      Src: /src/clamav/libclamav/bytecode_api.c:418,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/bytecode_api.c:429,1
    - Dst: cli_memmem
      Src: /src/clamav/libclamav/bytecode_api.c:432,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - data
    - len
    - limit
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 438
      start: 401
    functionDepth: 6
    functionLinenumber: 401
    functionLinenumberEnd: 438
    functionName: cli_bcapi_file_find_limit
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 1
    functionsReached:
    - cli_event_int
    - cli_memmem
    - fmap_readn
    - cli_dbgmsg
    - API_MISUSE
    - cli_event_fastdata
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_file_find_limit(struct cli_bc_ctx *ctx, const uint8_t
      *data, uint32_t len, int32_t limit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:444,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode_api.c:447,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/bytecode_api.c:448,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - 'off'
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 453
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 453
    functionName: cli_bcapi_file_byteat
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_event_int
    - cli_dbgmsg
    - fmap_readn
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t off)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpool_create
      Src: /src/clamav/libclamav/bytecode_api.c:460,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:462,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/bytecode_api.c:463,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:469,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/bytecode_api.c:473,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode_api.c:477,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/bytecode_api.c:478,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/bytecode_api.c:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 483
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 483
    functionName: cli_bcapi_malloc
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - MPOOL_MALLOC
    - cli_warnmsg
    - mpool_create
    - cli_max_malloc
    - cli_dbgmsg
    - cli_event_error_oom
    - cli_errmsg
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cli_bcapi_malloc(struct cli_bc_ctx *ctx, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/bytecode_api.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - section
    - num
    argTypes:
    - struct cli_bc_ctx*
    - struct cli_exe_section*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: cli_bcapi_get_pe_section
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_get_pe_section(struct cli_bc_ctx *ctx, struct cli_exe_section
      *section, uint32_t num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:499,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:501,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:502,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:506,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:507,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/bytecode_api.c:512,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:513,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:514,1
    - Dst: memmove
      Src: /src/clamav/libclamav/bytecode_api.c:517,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/bytecode_api.c:520,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:521,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:522,1
    - Dst: cli_bcapi_read
      Src: /src/clamav/libclamav/bytecode_api.c:525,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:527,1
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:528,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - ctx
    - buf
    - buflen
    - filled
    - pos
    - fill
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 532
      start: 494
    functionDepth: 7
    functionLinenumber: 494
    functionLinenumberEnd: 532
    functionName: cli_bcapi_fill_buffer
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_read
    - UNUSEDPARAM
    - CLI_ISCONTAINED
    - cli_dbgmsg
    - API_MISUSE
    - memmove
    linkageType: ''
    returnType: int32_t
    signature: "int32_t cli_bcapi_fill_buffer(struct cli_bc_ctx *ctx, uint8_t *buf,\n
      \                             uint32_t buflen, uint32_t filled,\n                              uint32_t
      pos, uint32_t fill)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_count
      Src: /src/clamav/libclamav/bytecode_api.c:539,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:540,1
    - Dst: cli_updatelimits
      Src: /src/clamav/libclamav/bytecode_api.c:543,1
    - Dst: lseek
      Src: /src/clamav/libclamav/bytecode_api.c:546,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:547,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:550,1
    - Dst: cli_magic_scan_desc_type
      Src: /src/clamav/libclamav/bytecode_api.c:553,1
    - Dst: cli_get_last_virus
      Src: /src/clamav/libclamav/bytecode_api.c:555,1
    - Dst: ftruncate
      Src: /src/clamav/libclamav/bytecode_api.c:560,1
    - Dst: close
      Src: /src/clamav/libclamav/bytecode_api.c:561,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/bytecode_api.c:565,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:567,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:570,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 572
      start: 534
    functionDepth: 5
    functionLinenumber: 534
    functionLinenumberEnd: 572
    functionName: cli_bcapi_extract_new
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_get_last_virus
    - lseek
    - close
    - ftruncate
    - cli_event_count
    - cli_unlink
    - cli_updatelimits
    - cli_dbgmsg
    - free
    - cli_magic_scan_desc_type
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_extract_new(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode_api.c:583,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/bytecode_api.c:584,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/bytecode_api.c:588,1
    - Dst: strtoul
      Src: /src/clamav/libclamav/bytecode_api.c:591,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - radix
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 599
      start: 575
    functionDepth: 4
    functionLinenumber: 575
    functionLinenumberEnd: 599
    functionName: cli_bcapi_read_number
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - strtoul
    - cli_event_int
    - fmap_need_ptr_once
    - fmap_need_off_once
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_read_number(struct cli_bc_ctx *ctx, uint32_t radix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:604,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/bytecode_api.c:606,1
    - Dst: cli_hashset_init
      Src: /src/clamav/libclamav/bytecode_api.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 614
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 614
    functionName: cli_bcapi_hashset_new
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    - cli_event_error_oom
    - cli_hashset_init
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_hashset_new(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: get_hashset
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - API_MISUSE
    linkageType: ''
    returnType: struct cli_hashset
    signature: struct cli_hashset *get_hashset(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashset
      Src: /src/clamav/libclamav/bytecode_api.c:627,1
    - Dst: cli_hashset_addkey
      Src: /src/clamav/libclamav/bytecode_api.c:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - id
    - key
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: cli_bcapi_hashset_add
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_hashset
    - cli_hashset_addkey
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_hashset_add(struct cli_bc_ctx *ctx, int32_t id, uint32_t
      key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashset
      Src: /src/clamav/libclamav/bytecode_api.c:635,1
    - Dst: cli_hashset_removekey
      Src: /src/clamav/libclamav/bytecode_api.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - id
    - key
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: cli_bcapi_hashset_remove
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_hashset
    - cli_hashset_removekey
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_hashset_remove(struct cli_bc_ctx *ctx, int32_t id,
      uint32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashset
      Src: /src/clamav/libclamav/bytecode_api.c:643,1
    - Dst: cli_hashset_contains
      Src: /src/clamav/libclamav/bytecode_api.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - id
    - key
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: cli_bcapi_hashset_contains
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_hashset
    - cli_hashset_contains
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_hashset_contains(struct cli_bc_ctx *ctx, int32_t
      id, uint32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashset
      Src: /src/clamav/libclamav/bytecode_api.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 653
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 653
    functionName: cli_bcapi_hashset_empty
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_hashset
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_hashset_empty(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashset
      Src: /src/clamav/libclamav/bytecode_api.c:657,1
    - Dst: cli_hashset_destroy
      Src: /src/clamav/libclamav/bytecode_api.c:660,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:664,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 673
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 673
    functionName: cli_bcapi_hashset_done
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_hashset
    - cli_max_realloc
    - cli_hashset_destroy
    - free
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_hashset_done(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/bytecode_api.c:681,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:684,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 697
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 697
    functionName: cli_bcapi_buffer_pipe_new
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_buffer_pipe_new(struct cli_bc_ctx *ctx, uint32_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - at
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 721
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 721
    functionName: cli_bcapi_buffer_pipe_new_fromfile
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_buffer_pipe_new_fromfile(struct cli_bc_ctx *ctx,
      uint32_t at)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 730
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 730
    functionName: get_buffer
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: struct bc_buffer
    signature: struct bc_buffer *get_buffer(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:734,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 747
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 747
    functionName: cli_bcapi_buffer_pipe_read_avail
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_buffer
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_buffer_pipe_read_avail(struct cli_bc_ctx *ctx, int32_t
      id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:751,1
    - Dst: cli_bcapi_buffer_pipe_read_avail
      Src: /src/clamav/libclamav/bytecode_api.c:752,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/bytecode_api.c:756,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - id
    - size
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 757
      start: 749
    functionDepth: 4
    functionLinenumber: 749
    functionLinenumberEnd: 757
    functionName: cli_bcapi_buffer_pipe_read_get
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_buffer_pipe_read_avail
    - get_buffer
    - fmap_need_off
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cli_bcapi_buffer_pipe_read_get(struct cli_bc_ctx *ctx, int32_t
      id, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - id
    - amount
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 778
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 778
    functionName: cli_bcapi_buffer_pipe_read_stopped
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_buffer
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_buffer_pipe_read_stopped(struct cli_bc_ctx *ctx,
      int32_t id, uint32_t amount)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 790
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 790
    functionName: cli_bcapi_buffer_pipe_write_avail
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_buffer
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_buffer_pipe_write_avail(struct cli_bc_ctx *ctx,
      int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:794,1
    - Dst: cli_bcapi_buffer_pipe_write_avail
      Src: /src/clamav/libclamav/bytecode_api.c:795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - id
    - size
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 800
      start: 792
    functionDepth: 4
    functionLinenumber: 792
    functionLinenumberEnd: 800
    functionName: cli_bcapi_buffer_pipe_write_get
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_buffer
    - cli_bcapi_buffer_pipe_write_avail
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cli_bcapi_buffer_pipe_write_get(struct cli_bc_ctx *ctx, int32_t
      id, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - id
    - size
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 812
      start: 802
    functionDepth: 3
    functionLinenumber: 802
    functionLinenumberEnd: 812
    functionName: cli_bcapi_buffer_pipe_write_stopped
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_buffer
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_buffer_pipe_write_stopped(struct cli_bc_ctx *ctx,
      int32_t id, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:816,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 822
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 822
    functionName: cli_bcapi_buffer_pipe_done
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_buffer
    - free
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_buffer_pipe_done(struct cli_bc_ctx *ctx, int32_t
      id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:830,1
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:830,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:831,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:834,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_api.c:845,1
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/bytecode_api.c:846,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:849,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:852,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:855,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:860,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - from
    - to
    - windowBits
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 865
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 865
    functionName: cli_bcapi_inflate_init
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_dbgmsg
    - inflateInit2
    - get_buffer
    - cli_max_realloc
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_inflate_init(struct cli_bc_ctx *ctx, int32_t from,
      int32_t to, int32_t windowBits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 872
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 872
    functionName: get_inflate
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bc_inflate
    signature: struct bc_inflate *get_inflate(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inflate
      Src: /src/clamav/libclamav/bytecode_api.c:878,1
    - Dst: cli_bcapi_buffer_pipe_read_avail
      Src: /src/clamav/libclamav/bytecode_api.c:883,1
    - Dst: cli_bcapi_buffer_pipe_read_get
      Src: /src/clamav/libclamav/bytecode_api.c:885,1
    - Dst: cli_bcapi_buffer_pipe_write_avail
      Src: /src/clamav/libclamav/bytecode_api.c:889,1
    - Dst: cli_bcapi_buffer_pipe_write_get
      Src: /src/clamav/libclamav/bytecode_api.c:891,1
    - Dst: inflate
      Src: /src/clamav/libclamav/bytecode_api.c:899,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:901,1
    - Dst: inflateSync
      Src: /src/clamav/libclamav/bytecode_api.c:907,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:909,1
    - Dst: cli_bcapi_buffer_pipe_read_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:916,1
    - Dst: cli_bcapi_buffer_pipe_write_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:917,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:920,1
    - Dst: cli_bcapi_inflate_done
      Src: /src/clamav/libclamav/bytecode_api.c:921,1
    - Dst: cli_bcapi_inflate_done
      Src: /src/clamav/libclamav/bytecode_api.c:925,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:928,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 932
      start: 874
    functionDepth: 5
    functionLinenumber: 874
    functionLinenumberEnd: 932
    functionName: cli_bcapi_inflate_process
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_buffer_pipe_read_avail
    - inflateSync
    - cli_bcapi_buffer_pipe_read_get
    - cli_bcapi_buffer_pipe_read_stopped
    - cli_bcapi_inflate_done
    - cli_bcapi_buffer_pipe_write_avail
    - cli_dbgmsg
    - inflate
    - cli_bcapi_buffer_pipe_write_stopped
    - cli_bcapi_buffer_pipe_write_get
    - get_inflate
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_inflate_process(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inflate
      Src: /src/clamav/libclamav/bytecode_api.c:937,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/bytecode_api.c:940,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 945
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 945
    functionName: cli_bcapi_inflate_done
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 1
    functionsReached:
    - inflateEnd
    - cli_dbgmsg
    - get_inflate
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_inflate_done(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:954,1
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:954,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:955,1
    - Dst: cli_bcapi_buffer_pipe_read_avail
      Src: /src/clamav/libclamav/bytecode_api.c:959,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:961,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:965,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_api.c:975,1
    - Dst: cli_bcapi_buffer_pipe_read_get
      Src: /src/clamav/libclamav/bytecode_api.c:979,1
    - Dst: cli_LzmaInit
      Src: /src/clamav/libclamav/bytecode_api.c:982,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:983,1
    - Dst: cli_bcapi_buffer_pipe_read_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:984,1
    - Dst: cli_bcapi_buffer_pipe_read_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - from
    - to
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 990
      start: 947
    functionDepth: 5
    functionLinenumber: 947
    functionLinenumberEnd: 990
    functionName: cli_bcapi_lzma_init
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_buffer_pipe_read_avail
    - memset
    - cli_bcapi_buffer_pipe_read_get
    - cli_LzmaInit
    - cli_bcapi_buffer_pipe_read_stopped
    - cli_dbgmsg
    - get_buffer
    - cli_max_realloc
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_lzma_init(struct cli_bc_ctx *ctx, int32_t from, int32_t
      to)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 997
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 997
    functionName: get_lzma
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bc_lzma
    signature: struct bc_lzma *get_lzma(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma
      Src: /src/clamav/libclamav/bytecode_api.c:1003,1
    - Dst: cli_bcapi_buffer_pipe_read_avail
      Src: /src/clamav/libclamav/bytecode_api.c:1008,1
    - Dst: cli_bcapi_buffer_pipe_read_get
      Src: /src/clamav/libclamav/bytecode_api.c:1010,1
    - Dst: cli_bcapi_buffer_pipe_write_avail
      Src: /src/clamav/libclamav/bytecode_api.c:1014,1
    - Dst: cli_bcapi_buffer_pipe_write_get
      Src: /src/clamav/libclamav/bytecode_api.c:1015,1
    - Dst: cli_LzmaDecode
      Src: /src/clamav/libclamav/bytecode_api.c:1021,1
    - Dst: cli_bcapi_buffer_pipe_read_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:1022,1
    - Dst: cli_bcapi_buffer_pipe_write_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:1023,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1026,1
    - Dst: cli_bcapi_lzma_done
      Src: /src/clamav/libclamav/bytecode_api.c:1027,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1031
      start: 999
    functionDepth: 5
    functionLinenumber: 999
    functionLinenumberEnd: 1031
    functionName: cli_bcapi_lzma_process
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_buffer_pipe_read_avail
    - cli_bcapi_buffer_pipe_read_get
    - cli_bcapi_buffer_pipe_read_stopped
    - cli_LzmaDecode
    - cli_bcapi_lzma_done
    - cli_bcapi_buffer_pipe_write_avail
    - cli_dbgmsg
    - cli_bcapi_buffer_pipe_write_stopped
    - cli_bcapi_buffer_pipe_write_get
    - get_lzma
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_lzma_process(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_lzma
      Src: /src/clamav/libclamav/bytecode_api.c:1035,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/bytecode_api.c:1038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1041
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1041
    functionName: cli_bcapi_lzma_done
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 1
    functionsReached:
    - cli_LzmaShutdown
    - get_lzma
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_lzma_done(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:1048,1
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:1048,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1049,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:1052,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_api.c:1062,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/clamav/libclamav/bytecode_api.c:1063,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1066,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1069,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1072,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1077,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - from
    - to
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1082
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1082
    functionName: cli_bcapi_bzip2_init
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - memset
    - BZ2_bzDecompressInit
    - cli_dbgmsg
    - get_buffer
    - cli_max_realloc
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_bzip2_init(struct cli_bc_ctx *ctx, int32_t from,
      int32_t to)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: get_bzip2
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bc_bzip2
    signature: struct bc_bzip2 *get_bzip2(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_bzip2
      Src: /src/clamav/libclamav/bytecode_api.c:1095,1
    - Dst: cli_bcapi_buffer_pipe_read_avail
      Src: /src/clamav/libclamav/bytecode_api.c:1100,1
    - Dst: cli_bcapi_buffer_pipe_read_get
      Src: /src/clamav/libclamav/bytecode_api.c:1102,1
    - Dst: cli_bcapi_buffer_pipe_write_avail
      Src: /src/clamav/libclamav/bytecode_api.c:1106,1
    - Dst: cli_bcapi_buffer_pipe_write_get
      Src: /src/clamav/libclamav/bytecode_api.c:1108,1
    - Dst: BZ2_bzDecompress
      Src: /src/clamav/libclamav/bytecode_api.c:1114,1
    - Dst: cli_bcapi_buffer_pipe_read_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:1115,1
    - Dst: cli_bcapi_buffer_pipe_write_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:1116,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1125
      start: 1091
    functionDepth: 5
    functionLinenumber: 1091
    functionLinenumberEnd: 1125
    functionName: cli_bcapi_bzip2_process
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_buffer_pipe_read_avail
    - cli_bcapi_buffer_pipe_read_get
    - cli_bcapi_buffer_pipe_read_stopped
    - cli_bcapi_buffer_pipe_write_avail
    - BZ2_bzDecompress
    - get_bzip2
    - cli_bcapi_buffer_pipe_write_stopped
    - cli_bcapi_buffer_pipe_write_get
    - cli_errmsg
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_bzip2_process(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_bzip2
      Src: /src/clamav/libclamav/bytecode_api.c:1129,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/bytecode_api.c:1132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1135
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1135
    functionName: cli_bcapi_bzip2_done
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_bzip2
    - BZ2_bzDecompressEnd
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_bzip2_done(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1141,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1144
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1144
    functionName: cli_bcapi_bytecode_rt_error
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_warnmsg
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_bytecode_rt_error(struct cli_bc_ctx *ctx, int32_t
      id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:1151,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1152,1
    - Dst: cli_js_init
      Src: /src/clamav/libclamav/bytecode_api.c:1155,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:1158,1
    - Dst: cli_js_destroy
      Src: /src/clamav/libclamav/bytecode_api.c:1160,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/bytecode_api.c:1170,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/bytecode_api.c:1172,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1173,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:1174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - from
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1180
      start: 1146
    functionDepth: 6
    functionLinenumber: 1146
    functionLinenumberEnd: 1180
    functionName: cli_bcapi_jsnorm_init
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_js_init
    - mkdir
    - cli_dbgmsg
    - cli_js_destroy
    - get_buffer
    - cli_max_realloc
    - free
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_jsnorm_init(struct cli_bc_ctx *ctx, int32_t from)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1187
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1187
    functionName: get_jsnorm
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bc_jsnorm
    signature: struct bc_jsnorm *get_jsnorm(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_jsnorm
      Src: /src/clamav/libclamav/bytecode_api.c:1194,1
    - Dst: cli_bcapi_buffer_pipe_read_avail
      Src: /src/clamav/libclamav/bytecode_api.c:1198,1
    - Dst: cli_bcapi_buffer_pipe_read_get
      Src: /src/clamav/libclamav/bytecode_api.c:1199,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/bytecode_api.c:1202,1
    - Dst: cli_bcapi_buffer_pipe_read_stopped
      Src: /src/clamav/libclamav/bytecode_api.c:1204,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/libclamav/bytecode_api.c:1205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1207
      start: 1189
    functionDepth: 5
    functionLinenumber: 1189
    functionLinenumberEnd: 1207
    functionName: cli_bcapi_jsnorm_process
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_buffer_pipe_read_avail
    - cli_bcapi_buffer_pipe_read_get
    - cli_bcapi_buffer_pipe_read_stopped
    - cli_js_process_buffer
    - cli_checklimits
    - get_jsnorm
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_jsnorm_process(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_jsnorm
      Src: /src/clamav/libclamav/bytecode_api.c:1211,1
    - Dst: cli_updatelimits
      Src: /src/clamav/libclamav/bytecode_api.c:1214,1
    - Dst: cli_js_parse_done
      Src: /src/clamav/libclamav/bytecode_api.c:1217,1
    - Dst: cli_js_output
      Src: /src/clamav/libclamav/bytecode_api.c:1218,1
    - Dst: cli_js_destroy
      Src: /src/clamav/libclamav/bytecode_api.c:1219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1222
      start: 1209
    functionDepth: 4
    functionLinenumber: 1209
    functionLinenumberEnd: 1222
    functionName: cli_bcapi_jsnorm_done
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_js_output
    - cli_js_parse_done
    - cli_updatelimits
    - cli_js_destroy
    - get_jsnorm
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_jsnorm_done(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1229
      start: 1224
    functionDepth: 0
    functionLinenumber: 1224
    functionLinenumberEnd: 1229
    functionName: myround
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double myround(double a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1234,1
    - Dst: log
      Src: /src/clamav/libclamav/bytecode_api.c:1238,1
    - Dst: log
      Src: /src/clamav/libclamav/bytecode_api.c:1238,1
    - Dst: myround
      Src: /src/clamav/libclamav/bytecode_api.c:1239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - a
    - b
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1240
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1240
    functionName: cli_bcapi_ilog2
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - log
    - myround
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_ilog2(struct cli_bc_ctx *ctx, uint32_t a, uint32_t
      b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1244,1
    - Dst: myround
      Src: /src/clamav/libclamav/bytecode_api.c:1247,1
    - Dst: pow
      Src: /src/clamav/libclamav/bytecode_api.c:1247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - a
    - b
    - c
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1248
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1248
    functionName: cli_bcapi_ipow
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - pow
    - myround
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_ipow(struct cli_bc_ctx *ctx, int32_t a, int32_t b,
      int32_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1253,1
    - Dst: exp
      Src: /src/clamav/libclamav/bytecode_api.c:1256,1
    - Dst: myround
      Src: /src/clamav/libclamav/bytecode_api.c:1257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - a
    - b
    - c
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1258
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1258
    functionName: cli_bcapi_iexp
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - exp
    - myround
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_iexp(struct cli_bc_ctx *ctx, int32_t a, int32_t
      b, int32_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1263,1
    - Dst: sin
      Src: /src/clamav/libclamav/bytecode_api.c:1266,1
    - Dst: myround
      Src: /src/clamav/libclamav/bytecode_api.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - a
    - b
    - c
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1268
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1268
    functionName: cli_bcapi_isin
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - sin
    - myround
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_isin(struct cli_bc_ctx *ctx, int32_t a, int32_t b,
      int32_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1273,1
    - Dst: cos
      Src: /src/clamav/libclamav/bytecode_api.c:1276,1
    - Dst: myround
      Src: /src/clamav/libclamav/bytecode_api.c:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - a
    - b
    - c
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1278
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1278
    functionName: cli_bcapi_icos
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - myround
    - cos
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_icos(struct cli_bc_ctx *ctx, int32_t a, int32_t b,
      int32_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: API_MISUSE
      Src: /src/clamav/libclamav/bytecode_api.c:1285,1
    - Dst: cli_event_fastdata
      Src: /src/clamav/libclamav/bytecode_api.c:1288,1
    - Dst: cli_event_fastdata
      Src: /src/clamav/libclamav/bytecode_api.c:1289,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - ctx
    - h
    - hs
    - n
    - ns
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1294
      start: 1280
    functionDepth: 6
    functionLinenumber: 1280
    functionLinenumberEnd: 1294
    functionName: cli_bcapi_memstr
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - API_MISUSE
    - cli_memstr
    - cli_event_fastdata
    linkageType: ''
    returnType: int32_t
    signature: "int32_t cli_bcapi_memstr(struct cli_bc_ctx *ctx, const uint8_t *h,
      int32_t hs,\n                         const uint8_t *n, int32_t ns)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1300,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/bytecode_api.c:1305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - ah
    - bh
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1308
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1308
    functionName: cli_bcapi_hex2ui
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_hex2str_to
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_hex2ui(struct cli_bc_ctx *ctx, uint32_t ah, uint32_t
      bh)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1314,1
    - Dst: isspace
      Src: /src/clamav/libclamav/bytecode_api.c:1316,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1324,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1326,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1330
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1330
    functionName: cli_bcapi_atoi
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - isspace
    - isdigit
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_atoi(struct cli_bc_ctx *ctx, const uint8_t *str,
      int32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1334,1
    - Dst: cli_event_fastdata
      Src: /src/clamav/libclamav/bytecode_api.c:1338,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - s
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1341
      start: 1332
    functionDepth: 6
    functionLinenumber: 1332
    functionLinenumberEnd: 1341
    functionName: cli_bcapi_debug_print_str_start
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - cli_event_fastdata
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_debug_print_str_start(struct cli_bc_ctx *ctx, const
      uint8_t *s, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1345,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/bytecode_api.c:1351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - s
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1352
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1352
    functionName: cli_bcapi_debug_print_str_nonl
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - fwrite
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_debug_print_str_nonl(struct cli_bc_ctx *ctx, const
      uint8_t *s, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1361,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode_api.c:1365,1
    - Dst: log
      Src: /src/clamav/libclamav/bytecode_api.c:1374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - s
    - len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1378
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1378
    functionName: cli_bcapi_entropy_buffer
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - log
    - memset
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_entropy_buffer(struct cli_bc_ctx *ctx, uint8_t *s,
      int32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:1386,1
    - Dst: cli_map_init
      Src: /src/clamav/libclamav/bytecode_api.c:1392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - keysize
    - valuesize
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1394
      start: 1380
    functionDepth: 4
    functionLinenumber: 1380
    functionLinenumberEnd: 1394
    functionName: cli_bcapi_map_new
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    - cli_map_init
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_map_new(struct cli_bc_ctx *ctx, int32_t keysize,
      int32_t valuesize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1401
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1401
    functionName: get_hashtab
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cli_map
    signature: struct cli_map *get_hashtab(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtab
      Src: /src/clamav/libclamav/bytecode_api.c:1406,1
    - Dst: cli_map_addkey
      Src: /src/clamav/libclamav/bytecode_api.c:1410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - keysize
    - id
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1425
      start: 1403
    functionDepth: 4
    functionLinenumber: 1403
    functionLinenumberEnd: 1425
    functionName: cli_bcapi_map_addkey
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_map_addkey
    - get_hashtab
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_map_addkey(struct cli_bc_ctx *ctx, const uint8_t
      *key, int32_t keysize, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtab
      Src: /src/clamav/libclamav/bytecode_api.c:1429,1
    - Dst: cli_map_setvalue
      Src: /src/clamav/libclamav/bytecode_api.c:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - value
    - valuesize
    - id
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1433
      start: 1427
    functionDepth: 2
    functionLinenumber: 1427
    functionLinenumberEnd: 1433
    functionName: cli_bcapi_map_setvalue
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_map_setvalue
    - get_hashtab
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_map_setvalue(struct cli_bc_ctx *ctx, const uint8_t
      *value, int32_t valuesize, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtab
      Src: /src/clamav/libclamav/bytecode_api.c:1438,1
    - Dst: cli_map_removekey
      Src: /src/clamav/libclamav/bytecode_api.c:1442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - keysize
    - id
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1457
      start: 1435
    functionDepth: 4
    functionLinenumber: 1435
    functionLinenumberEnd: 1457
    functionName: cli_bcapi_map_remove
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_map_removekey
    - get_hashtab
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_map_remove(struct cli_bc_ctx *ctx, const uint8_t
      *key, int32_t keysize, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtab
      Src: /src/clamav/libclamav/bytecode_api.c:1462,1
    - Dst: cli_map_find
      Src: /src/clamav/libclamav/bytecode_api.c:1466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - key
    - keysize
    - id
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1481
      start: 1459
    functionDepth: 3
    functionLinenumber: 1459
    functionLinenumberEnd: 1481
    functionName: cli_bcapi_map_find
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_hashtab
    - cli_map_find
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_map_find(struct cli_bc_ctx *ctx, const uint8_t *key,
      int32_t keysize, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtab
      Src: /src/clamav/libclamav/bytecode_api.c:1485,1
    - Dst: cli_map_getvalue_size
      Src: /src/clamav/libclamav/bytecode_api.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1489
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1489
    functionName: cli_bcapi_map_getvaluesize
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - get_hashtab
    - cli_map_getvalue_size
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_map_getvaluesize(struct cli_bc_ctx *ctx, int32_t
      id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtab
      Src: /src/clamav/libclamav/bytecode_api.c:1493,1
    - Dst: cli_map_getvalue_size
      Src: /src/clamav/libclamav/bytecode_api.c:1496,1
    - Dst: cli_map_getvalue
      Src: /src/clamav/libclamav/bytecode_api.c:1498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - id
    - valuesize
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1499
      start: 1491
    functionDepth: 1
    functionLinenumber: 1491
    functionLinenumberEnd: 1499
    functionName: cli_bcapi_map_getvalue
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_map_getvalue
    - get_hashtab
    - cli_map_getvalue_size
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cli_bcapi_map_getvalue(struct cli_bc_ctx *ctx, int32_t id,
      int32_t valuesize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtab
      Src: /src/clamav/libclamav/bytecode_api.c:1503,1
    - Dst: cli_map_delete
      Src: /src/clamav/libclamav/bytecode_api.c:1506,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:1510,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:1513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1519
      start: 1501
    functionDepth: 4
    functionLinenumber: 1501
    functionLinenumberEnd: 1519
    functionName: cli_bcapi_map_done
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    - cli_map_delete
    - free
    - get_hashtab
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_map_done(struct cli_bc_ctx *ctx, int32_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1523,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/bytecode_api.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1525
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1525
    functionName: cli_bcapi_engine_functionality_level
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cl_retflevel
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_engine_functionality_level(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1531
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1531
    functionName: cli_bcapi_engine_dconf_level
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_engine_dconf_level(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 56
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1601
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1601
    functionName: cli_bcapi_engine_scan_options
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_engine_scan_options(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1610,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1616,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode_api.c:1620,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1622,1
    - Dst: tolower
      Src: /src/clamav/libclamav/bytecode_api.c:1627,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/bytecode_api.c:1631,1
    - Dst: MIN
      Src: /src/clamav/libclamav/bytecode_api.c:1631,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1632,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1634,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1636,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1638,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/bytecode_api.c:1642,1
    - Dst: MIN
      Src: /src/clamav/libclamav/bytecode_api.c:1642,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1643,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1645,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1647,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1649,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1651,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1653,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1655,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1657,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1659,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1661,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/bytecode_api.c:1665,1
    - Dst: MIN
      Src: /src/clamav/libclamav/bytecode_api.c:1665,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1666,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1668,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1670,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1672,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1674,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1676,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1678,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1680,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1682,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1684,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1686,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/bytecode_api.c:1690,1
    - Dst: MIN
      Src: /src/clamav/libclamav/bytecode_api.c:1690,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1691,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/bytecode_api.c:1695,1
    - Dst: MIN
      Src: /src/clamav/libclamav/bytecode_api.c:1695,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1696,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/bytecode_api.c:1698,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:1708,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 120
    argCount: 3
    argNames:
    - ctx
    - option_name
    - name_len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1711
      start: 1603
    functionDepth: 2
    functionLinenumber: 1603
    functionLinenumberEnd: 1711
    functionName: cli_bcapi_engine_scan_options_ex
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - tolower
    - cli_warnmsg
    - cli_memstr
    - MIN
    - malloc
    - free
    - strncmp
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_engine_scan_options_ex(struct cli_bc_ctx *ctx, const
      uint8_t *option_name, uint32_t name_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1717
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1717
    functionName: cli_bcapi_engine_db_options
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_engine_db_options(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ftype
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1725
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1725
    functionName: cli_bcapi_extract_set_container
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_extract_set_container(struct cli_bc_ctx *ctx, uint32_t
      ftype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: funmap
      Src: /src/clamav/libclamav/bytecode_api.c:1740,1
    - Dst: cli_bytecode_context_setfile
      Src: /src/clamav/libclamav/bytecode_api.c:1743,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1747,1
    - Dst: fmap
      Src: /src/clamav/libclamav/bytecode_api.c:1764,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1766,1
    - Dst: cli_bytecode_context_setfile
      Src: /src/clamav/libclamav/bytecode_api.c:1772,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - extracted_file
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1778
      start: 1727
    functionDepth: 3
    functionLinenumber: 1727
    functionLinenumberEnd: 1778
    functionName: cli_bcapi_input_switch
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - fmap
    - funmap
    - cli_warnmsg
    - cli_dbgmsg
    - cli_bytecode_context_setfile
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_input_switch(struct cli_bc_ctx *ctx, int32_t extracted_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1783,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/bytecode_api.c:1786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - env
    - len
    argTypes:
    - struct cli_bc_ctx*
    - struct cli_environment*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1788
      start: 1780
    functionDepth: 2
    functionLinenumber: 1780
    functionLinenumberEnd: 1788
    functionName: cli_bcapi_get_environment
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_dbgmsg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_get_environment(struct cli_bc_ctx *ctx, struct cli_environment
      *env, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1792,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1794,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1800,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - reason
    - len
    - cond
    argTypes:
    - struct cli_bc_ctx*
    - int8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1805
      start: 1790
    functionDepth: 2
    functionLinenumber: 1790
    functionLinenumberEnd: 1805
    functionName: cli_bcapi_disable_bytecode_if
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - cli_warnmsg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_disable_bytecode_if(struct cli_bc_ctx *ctx, const
      int8_t *reason, uint32_t len, uint32_t cond)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1809,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1811,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1817,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - reason
    - len
    - cond
    argTypes:
    - struct cli_bc_ctx*
    - int8_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1823
      start: 1807
    functionDepth: 2
    functionLinenumber: 1807
    functionLinenumberEnd: 1823
    functionName: cli_bcapi_disable_jit_if
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - cli_warnmsg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_disable_jit_if(struct cli_bc_ctx *ctx, const int8_t
      *reason, uint32_t len, uint32_t cond)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode_api.c:1830,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1833,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1833,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1843,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1843,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1845,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/bytecode_api.c:1847,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 24
    argCount: 5
    argNames:
    - ctx
    - lhs
    - lhs_len
    - rhs
    - rhs_len
    argTypes:
    - struct cli_bc_ctx*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1854
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1854
    functionName: cli_bcapi_version_compare
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - isdigit
    linkageType: ''
    returnType: int32_t
    signature: "int32_t cli_bcapi_version_compare(struct cli_bc_ctx *ctx, const uint8_t
      *lhs, uint32_t lhs_len,\n                                  const uint8_t *rhs,
      uint32_t rhs_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - query
    - value
    - shift
    - mask
    argTypes:
    - uint32_t
    - uint32_t
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1864
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1864
    functionName: check_bits
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_bits(uint32_t query, uint32_t value, uint8_t shift, uint8_t
      mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1884,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - a
    - b
    - c
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1887
      start: 1866
    functionDepth: 2
    functionLinenumber: 1866
    functionLinenumberEnd: 1887
    functionName: cli_bcapi_check_platform
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_check_platform(struct cli_bc_ctx *ctx, uint32_t
      a, uint32_t b, uint32_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1894
      start: 1889
    functionDepth: 0
    functionLinenumber: 1889
    functionLinenumberEnd: 1894
    functionName: cli_bcapi_pdf_get_obj_num
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_get_obj_num(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1901
      start: 1896
    functionDepth: 0
    functionLinenumber: 1896
    functionLinenumberEnd: 1901
    functionName: cli_bcapi_pdf_get_flags
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_get_flags(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1912
      start: 1903
    functionDepth: 2
    functionLinenumber: 1903
    functionLinenumberEnd: 1912
    functionName: cli_bcapi_pdf_set_flags
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_set_flags(struct cli_bc_ctx *ctx, int32_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1924
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1924
    functionName: cli_bcapi_pdf_lookupobj
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_lookupobj(struct cli_bc_ctx *ctx, uint32_t objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - objidx
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1936
      start: 1926
    functionDepth: 0
    functionLinenumber: 1926
    functionLinenumberEnd: 1936
    functionName: cli_bcapi_pdf_getobjsize
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cli_bcapi_pdf_getobjsize(struct cli_bc_ctx *ctx, int32_t objidx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/bytecode_api.c:1943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - objidx
    - amount
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1944
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1944
    functionName: cli_bcapi_pdf_getobj
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - fmap_need_off
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *cli_bcapi_pdf_getobj(struct cli_bc_ctx *ctx, int32_t objidx,
      uint32_t amount)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - objidx
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1952
      start: 1946
    functionDepth: 0
    functionLinenumber: 1946
    functionLinenumberEnd: 1952
    functionName: cli_bcapi_pdf_getobjid
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_getobjid(struct cli_bc_ctx *ctx, int32_t objidx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - objidx
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1960
      start: 1954
    functionDepth: 0
    functionLinenumber: 1954
    functionLinenumberEnd: 1960
    functionName: cli_bcapi_pdf_getobjflags
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_getobjflags(struct cli_bc_ctx *ctx, int32_t objidx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:1967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - objidx
    - flags
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1972
      start: 1962
    functionDepth: 2
    functionLinenumber: 1962
    functionLinenumberEnd: 1972
    functionName: cli_bcapi_pdf_setobjflags
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_setobjflags(struct cli_bc_ctx *ctx, int32_t objidx,
      int32_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - objidx
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1980
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1980
    functionName: cli_bcapi_pdf_get_offset
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_get_offset(struct cli_bc_ctx *ctx, int32_t objidx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1985
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 1985
    functionName: cli_bcapi_pdf_get_phase
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_get_phase(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1992
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1992
    functionName: cli_bcapi_pdf_get_dumpedobjid
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_pdf_get_dumpedobjid(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1998
      start: 1994
    functionDepth: 0
    functionLinenumber: 1994
    functionLinenumberEnd: 1998
    functionName: cli_bcapi_running_on_jit
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_running_on_jit(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 2004
      start: 2000
    functionDepth: 0
    functionLinenumber: 2000
    functionLinenumberEnd: 2004
    functionName: cli_bcapi_get_file_reliability
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_get_file_reliability(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 2013
      start: 2006
    functionDepth: 0
    functionLinenumber: 2006
    functionLinenumberEnd: 2013
    functionName: cli_bcapi_json_is_active
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_is_active(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:2021,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/bytecode_api.c:2023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 2031
      start: 2015
    functionDepth: 3
    functionLinenumber: 2015
    functionLinenumberEnd: 2031
    functionName: cli_bcapi_json_objs_init
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    - cli_event_error_oom
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_objs_init(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2048,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2051,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2056,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/bytecode_api.c:2064,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/bytecode_api.c:2067,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/bytecode_api.c:2070,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:2071,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:2075,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:2077,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/bytecode_api.c:2078,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2085,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode_api.c:2086,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - ctx
    - name
    - name_len
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int8_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2088
      start: 2042
    functionDepth: 3
    functionLinenumber: 2042
    functionLinenumberEnd: 2088
    functionName: cli_bcapi_json_get_object
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - strncpy
    - INIT_JSON_OBJS
    - json_object_object_get_ex
    - cli_max_malloc
    - cli_dbgmsg
    - cli_max_realloc
    - cli_event_error_oom
    - free
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_object(struct cli_bc_ctx *ctx, const int8_t
      *name, int32_t name_len, int32_t objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2095,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2098,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/bytecode_api.c:2102,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 2123
      start: 2090
    functionDepth: 2
    functionLinenumber: 2090
    functionLinenumberEnd: 2123
    functionName: cli_bcapi_json_get_type
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - INIT_JSON_OBJS
    - json_object_get_type
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_type(struct cli_bc_ctx *ctx, int32_t objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2130,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2133,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/bytecode_api.c:2137,1
    - Dst: json_object_array_length
      Src: /src/clamav/libclamav/bytecode_api.c:2142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 2143
      start: 2125
    functionDepth: 2
    functionLinenumber: 2125
    functionLinenumberEnd: 2143
    functionName: cli_bcapi_json_get_array_length
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - cli_dbgmsg
    - INIT_JSON_OBJS
    - json_object_get_type
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_array_length(struct cli_bc_ctx *ctx, int32_t
      objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2152,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2155,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/bytecode_api.c:2163,1
    - Dst: json_object_array_length
      Src: /src/clamav/libclamav/bytecode_api.c:2168,1
    - Dst: json_object_array_get_idx
      Src: /src/clamav/libclamav/bytecode_api.c:2172,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/bytecode_api.c:2177,1
    - Dst: cli_event_error_oom
      Src: /src/clamav/libclamav/bytecode_api.c:2179,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - idx
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2191
      start: 2145
    functionDepth: 3
    functionLinenumber: 2145
    functionLinenumberEnd: 2191
    functionName: cli_bcapi_json_get_array_idx
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - json_object_array_length
    - json_object_array_get_idx
    - INIT_JSON_OBJS
    - cli_dbgmsg
    - json_object_get_type
    - cli_max_realloc
    - cli_event_error_oom
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_array_idx(struct cli_bc_ctx *ctx, int32_t
      idx, int32_t objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2200,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2203,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/bytecode_api.c:2211,1
    - Dst: json_object_get_string
      Src: /src/clamav/libclamav/bytecode_api.c:2217,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode_api.c:2218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 2221
      start: 2193
    functionDepth: 2
    functionLinenumber: 2193
    functionLinenumberEnd: 2221
    functionName: cli_bcapi_json_get_string_length
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - strlen
    - json_object_get_string
    - INIT_JSON_OBJS
    - cli_dbgmsg
    - json_object_get_type
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_string_length(struct cli_bc_ctx *ctx, int32_t
      objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2230,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2233,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/bytecode_api.c:2241,1
    - Dst: json_object_get_string
      Src: /src/clamav/libclamav/bytecode_api.c:2247,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode_api.c:2248,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/bytecode_api.c:2252,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/bytecode_api.c:2257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - str
    - str_len
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int8_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2261
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2261
    functionName: cli_bcapi_json_get_string
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - strlen
    - json_object_get_string
    - INIT_JSON_OBJS
    - strncpy
    - cli_dbgmsg
    - json_object_get_type
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_string(struct cli_bc_ctx *ctx, int8_t *str,
      int32_t str_len, int32_t objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2270,1
    - Dst: json_object_get_boolean
      Src: /src/clamav/libclamav/bytecode_api.c:2275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 2276
      start: 2263
    functionDepth: 2
    functionLinenumber: 2263
    functionLinenumberEnd: 2276
    functionName: cli_bcapi_json_get_boolean
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - INIT_JSON_OBJS
    - json_object_get_boolean
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_boolean(struct cli_bc_ctx *ctx, int32_t
      objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT_JSON_OBJS
      Src: /src/clamav/libclamav/bytecode_api.c:2282,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode_api.c:2285,1
    - Dst: json_object_get_int
      Src: /src/clamav/libclamav/bytecode_api.c:2290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - objid
    argTypes:
    - struct cli_bc_ctx*
    - int32_t
    constantsTouched: []
    func_position:
      end: 2291
      start: 2278
    functionDepth: 2
    functionLinenumber: 2278
    functionLinenumberEnd: 2291
    functionName: cli_bcapi_json_get_int
    functionSourceFile: /src/clamav/libclamav/bytecode_api.c
    functionUses: 0
    functionsReached:
    - json_object_get_int
    - cli_dbgmsg
    - INIT_JSON_OBJS
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_bcapi_json_get_int(struct cli_bc_ctx *ctx, int32_t objid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:86,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - big_endian
    argTypes:
    - uint16_t
    - int
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: vba_endian_convert_16
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - be16_to_host
    - le16_to_host
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t vba_endian_convert_16(uint16_t value, int big_endian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:96,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - value
    - big_endian
    argTypes:
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: vba_endian_convert_32
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - be32_to_host
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vba_endian_convert_32(uint32_t value, int big_endian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:110,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:117,1
    - Dst: isprint
      Src: /src/clamav/libclamav/vba_extract.c:125,1
    - Dst: tolower
      Src: /src/clamav/libclamav/vba_extract.c:126,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/vba_extract.c:151,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - name
    - size
    - big_endian
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 153
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 153
    functionName: get_unicode_name
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - tolower
    - cli_max_malloc
    - cli_dbgmsg
    - isprint
    - cli_max_realloc
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      get_unicode_name(const char *name, int size, int big_endian)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:168,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:171,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:172,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:173,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:174,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:175,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 180
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 180
    functionName: vba56_test_middle
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - memcmp
    - lseek
    - cli_dbgmsg
    - cli_readn
    linkageType: ''
    returnType: void
    signature: void vba56_test_middle(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:196,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:204,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:205,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:224,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:230,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:231,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:232,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:233,1
    - Dst: get_unicode_name
      Src: /src/clamav/libclamav/vba_extract.c:238,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:239,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:242,1
    - Dst: strchr
      Src: /src/clamav/libclamav/vba_extract.c:243,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:245,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:246,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:249,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:252,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:255,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:273,1
    - Dst: vba56_test_middle
      Src: /src/clamav/libclamav/vba_extract.c:274,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:278,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 2
    argNames:
    - fd
    - big_endian
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 280
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 280
    functionName: vba_read_project_strings
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - lseek
    - get_unicode_name
    - read_uint16
    - strchr
    - cli_dbgmsg
    - free
    - memcmp
    - cli_readn
    - vba56_test_middle
    linkageType: ''
    returnType: int
    signature: int vba_read_project_strings(int fd, int big_endian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/clamav/libclamav/vba_extract.c:341,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 353
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 353
    functionName: vba_normalize
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: size_t
    signature: size_t vba_normalize(unsigned char *buffer, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:379,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/vba_extract.c:381,1
    - Dst: open
      Src: /src/clamav/libclamav/vba_extract.c:383,1
    - Dst: cli_vba_inflate
      Src: /src/clamav/libclamav/vba_extract.c:390,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:391,1
    - Dst: cli_gentempfd_with_prefix
      Src: /src/clamav/libclamav/vba_extract.c:398,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:399,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:403,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:460,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:467,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:471,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:472,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:476,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:480,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:481,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:485,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:494,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:498,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:501,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:504,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:507,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:510,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:513,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:520,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:525,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:531,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:535,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:542,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:549,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:553,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:560,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:567,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:571,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:572,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:578,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:585,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:590,1
    - Dst: CLI_WRITEN_MBCS
      Src: /src/clamav/libclamav/vba_extract.c:591,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:593,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:599,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:604,1
    - Dst: CLI_WRITEN_MBCS
      Src: /src/clamav/libclamav/vba_extract.c:605,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:607,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:613,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:617,1
    - Dst: CLI_WRITEN_UTF16LE
      Src: /src/clamav/libclamav/vba_extract.c:618,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:620,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:626,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:631,1
    - Dst: CLI_WRITEN_MBCS
      Src: /src/clamav/libclamav/vba_extract.c:632,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:634,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:637,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:641,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:642,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:644,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:645,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:651,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:656,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:657,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:661,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:667,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:673,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:675,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:676,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:680,1
    - Dst: CLI_WRITEN_UTF16LE
      Src: /src/clamav/libclamav/vba_extract.c:681,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:689,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:693,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:700,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:707,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:711,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:718,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:726,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:730,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:735,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:739,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:746,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:753,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:757,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:764,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:771,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:775,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:782,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:790,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/vba_extract.c:792,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:793,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:795,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:796,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:802,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:804,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:809,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:810,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:811,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:816,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:817,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:818,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:822,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/vba_extract.c:828,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:829,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:831,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:832,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:839,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:840,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:844,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:853,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:855,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:860,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:861,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:862,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:867,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:868,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:869,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:873,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/vba_extract.c:879,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:880,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:882,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:883,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:888,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:890,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:895,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:896,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:897,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:902,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:903,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:908,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/vba_extract.c:915,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:916,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:918,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:919,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:926,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:927,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:931,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:935,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:940,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:942,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:947,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:948,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:949,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:954,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:955,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:956,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:960,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/vba_extract.c:966,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:967,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:969,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:970,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:975,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:977,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:982,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:983,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:984,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:989,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:990,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:991,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:995,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/vba_extract.c:1001,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1002,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1004,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1005,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:1012,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1013,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1017,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1021,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1026,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1028,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1033,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1034,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1035,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1040,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1041,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1044,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1050,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1055,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1061,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1065,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1067,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1072,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1073,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1074,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1080,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1081,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1084,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1090,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1095,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/vba_extract.c:1098,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1100,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1104,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1106,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1111,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1113,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1118,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1119,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1122,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1128,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1133,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/vba_extract.c:1136,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1138,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1143,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1148,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1151,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1156,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1157,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1160,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1165,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1167,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1172,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1177,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1178,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1183,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1188,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1189,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1192,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1196,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1199,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1204,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1205,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1212,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1217,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1218,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1221,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1228,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1233,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1234,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1246,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1251,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/vba_extract.c:1252,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1255,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1260,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/vba_extract.c:1262,1
    - Dst: uniq_get
      Src: /src/clamav/libclamav/vba_extract.c:1269,1
    - Dst: strlen
      Src: /src/clamav/libclamav/vba_extract.c:1269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1270,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/vba_extract.c:1279,1
    - Dst: cli_vba_inflate
      Src: /src/clamav/libclamav/vba_extract.c:1287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1289,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1290,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1294,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/vba_extract.c:1296,1
    - Dst: vba_normalize
      Src: /src/clamav/libclamav/vba_extract.c:1297,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1299,1
    - Dst: cli_ctx*::engine::cb_vba
      Src: /src/clamav/libclamav/vba_extract.c:1302,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1306,1
    - Dst: cli_ctx*::engine::cb_vba
      Src: /src/clamav/libclamav/vba_extract.c:1311,1
    - Dst: CLI_WRITEN
      Src: /src/clamav/libclamav/vba_extract.c:1314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1315,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1318,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1324,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1326,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1348,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1351,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1354,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1357,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1361,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1365,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1369,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1373,1
    CyclomaticComplexity: 230
    EdgeCount: 230
    ICount: 842
    argCount: 8
    argNames:
    - ctx
    - dir
    - U
    - hash
    - which
    - tempfd
    - has_macros
    - tempfile
    argTypes:
    - cli_ctx*
    - char*
    - struct uniq*
    - char*
    - uint32_t
    - int*
    - int*
    - char**
    constantsTouched: []
    func_position:
      end: 1378
      start: 359
    functionDepth: 8
    functionLinenumber: 359
    functionLinenumberEnd: 1378
    functionName: cli_vba_readdir_new
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - snprintf
    - cli_warnmsg
    - le16_to_host
    - CLI_WRITEN_UTF16LE
    - memcmp
    - CLI_WRITEN
    - CLI_WRITEN_MBCS
    - uniq_get
    - cli_dbgmsg
    - cli_ctx*::engine::cb_vba
    - cli_gentempfd_with_prefix
    - close
    - open
    - cli_vba_inflate
    - cli_ole2_get_property_name2
    - free
    - vba_normalize
    - cli_codepage_to_utf8
    - strlen
    - memcpy
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_vba_readdir_new(cli_ctx *ctx, const char *dir, struct
      uniq *U, const char *hash, uint32_t which, int *tempfd, int *has_macros, char
      **tempfile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1394,1
    - Dst: uniq_get
      Src: /src/clamav/libclamav/vba_extract.c:1403,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1404,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/vba_extract.c:1410,1
    - Dst: open
      Src: /src/clamav/libclamav/vba_extract.c:1412,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1417,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1418,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/vba_extract.c:1421,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1422,1
    - Dst: vba_read_project_strings
      Src: /src/clamav/libclamav/vba_extract.c:1426,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1427,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1428,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1429,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1432,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1433,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1434,1
    - Dst: vba_read_project_strings
      Src: /src/clamav/libclamav/vba_extract.c:1437,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1439,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1440,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1445,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1446,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1447,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1450,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1452,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1457,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1458,1
    - Dst: seekandread
      Src: /src/clamav/libclamav/vba_extract.c:1464,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1465,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1469,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1470,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1471,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1476,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1477,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1482,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1483,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1484,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1489,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1490,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1497,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1498,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1499,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1503,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1504,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1507,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1510,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1515,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1516,1
    - Dst: create_vba_project
      Src: /src/clamav/libclamav/vba_extract.c:1520,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1522,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1532,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1536,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1546,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1547,1
    - Dst: get_unicode_name
      Src: /src/clamav/libclamav/vba_extract.c:1550,1
    - Dst: uniq_get
      Src: /src/clamav/libclamav/vba_extract.c:1552,1
    - Dst: strlen
      Src: /src/clamav/libclamav/vba_extract.c:1552,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1553,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1554,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1559,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1560,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1563,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1564,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1566,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1568,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1570,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1573,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1574,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1576,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1578,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1580,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1582,1
    - Dst: read_uint32
      Src: /src/clamav/libclamav/vba_extract.c:1583,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1585,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1587,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1591,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1593,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1596,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1597,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1598,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1599,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1600,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 179
    argCount: 3
    argNames:
    - dir
    - U
    - which
    argTypes:
    - char*
    - struct uniq*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1605
      start: 1380
    functionDepth: 5
    functionLinenumber: 1380
    functionLinenumberEnd: 1605
    functionName: cli_vba_readdir
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - close
    - lseek
    - snprintf
    - seekandread
    - vba_read_project_strings
    - read_uint32
    - get_unicode_name
    - strlen
    - open
    - uniq_get
    - read_uint16
    - cli_dbgmsg
    - free
    - memcmp
    - create_vba_project
    - cli_readn
    linkageType: ''
    returnType: vba_project_t
    signature: 'vba_project_t *

      cli_vba_readdir(const char *dir, struct uniq *U, uint32_t which)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blobCreate
      Src: /src/clamav/libclamav/vba_extract.c:1619,1
    - Dst: memset
      Src: /src/clamav/libclamav/vba_extract.c:1624,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1625,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1629,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:1636,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/vba_extract.c:1637,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/vba_extract.c:1652,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1662,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/vba_extract.c:1663,1
    - Dst: blobAddData
      Src: /src/clamav/libclamav/vba_extract.c:1668,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1672,1
    - Dst: blobAddData
      Src: /src/clamav/libclamav/vba_extract.c:1679,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/vba_extract.c:1680,1
    - Dst: blobGetDataSize
      Src: /src/clamav/libclamav/vba_extract.c:1687,1
    - Dst: blobToMem
      Src: /src/clamav/libclamav/vba_extract.c:1688,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - fd
    - offset
    - size
    argTypes:
    - int
    - off_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 1689
      start: 1607
    functionDepth: 3
    functionLinenumber: 1607
    functionLinenumberEnd: 1689
    functionName: cli_vba_inflate
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 1
    functionsReached:
    - blobGetDataSize
    - lseek
    - memset
    - blobAddData
    - read_uint16
    - blobToMem
    - memcpy
    - blobDestroy
    - blobCreate
    - cli_readn
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      cli_vba_inflate(int fd, off_t offset, size_t *size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1702,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/vba_extract.c:1704,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - s
    - d
    - len
    argTypes:
    - int
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1713
      start: 1694
    functionDepth: 3
    functionLinenumber: 1694
    functionLinenumberEnd: 1713
    functionName: ole_copy_file_data
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - cli_writen
    - cli_readn
    linkageType: ''
    returnType: void
    signature: void ole_copy_file_data(int s, int d, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1726,1
    - Dst: read_uint32
      Src: /src/clamav/libclamav/vba_extract.c:1727,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/vba_extract.c:1730,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1735,1
    - Dst: skip_past_nul
      Src: /src/clamav/libclamav/vba_extract.c:1740,1
    - Dst: skip_past_nul
      Src: /src/clamav/libclamav/vba_extract.c:1744,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1748,1
    - Dst: skip_past_nul
      Src: /src/clamav/libclamav/vba_extract.c:1752,1
    - Dst: read_uint32
      Src: /src/clamav/libclamav/vba_extract.c:1755,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/vba_extract.c:1758,1
    - Dst: open
      Src: /src/clamav/libclamav/vba_extract.c:1761,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:1764,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1765,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1769,1
    - Dst: ole_copy_file_data
      Src: /src/clamav/libclamav/vba_extract.c:1771,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1773,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/vba_extract.c:1775,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1777,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/vba_extract.c:1780,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1781,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1785,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - fd
    - ctx
    argTypes:
    - int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1788
      start: 1715
    functionDepth: 7
    functionLinenumber: 1715
    functionLinenumberEnd: 1788
    functionName: cli_scan_ole10
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 1
    functionsReached:
    - lseek
    - read_uint32
    - ole_copy_file_data
    - cli_magic_scan_desc
    - close
    - cli_warnmsg
    - cli_unlink
    - open
    - FSTAT
    - cli_gentemp
    - skip_past_nul
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: int
    signature: int cli_scan_ole10(int fd, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1808,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1809,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1810,1
    - Dst: vba_endian_convert_16
      Src: /src/clamav/libclamav/vba_extract.c:1813,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1814,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1815,1
    - Dst: vba_endian_convert_16
      Src: /src/clamav/libclamav/vba_extract.c:1817,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1818,1
    - Dst: vba_endian_convert_32
      Src: /src/clamav/libclamav/vba_extract.c:1819,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - atom_header
    argTypes:
    - int
    - atom_header_t*
    constantsTouched: []
    func_position:
      end: 1823
      start: 1798
    functionDepth: 3
    functionLinenumber: 1798
    functionLinenumberEnd: 1823
    functionName: ppt_read_atom_header
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - vba_endian_convert_32
    - cli_dbgmsg
    - cli_readn
    - vba_endian_convert_16
    linkageType: ''
    returnType: int
    signature: int ppt_read_atom_header(int fd, atom_header_t *atom_header)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclamav/vba_extract.c:1837,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1838,1
    - Dst: open
      Src: /src/clamav/libclamav/vba_extract.c:1840,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:1843,1
    - Dst: memset
      Src: /src/clamav/libclamav/vba_extract.c:1847,1
    - Dst: MIN
      Src: /src/clamav/libclamav/vba_extract.c:1855,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1857,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1858,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/vba_extract.c:1859,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/vba_extract.c:1864,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1865,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/vba_extract.c:1866,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:1867,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/vba_extract.c:1873,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1874,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/vba_extract.c:1875,1
    - Dst: MIN
      Src: /src/clamav/libclamav/vba_extract.c:1883,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:1884,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1885,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/vba_extract.c:1886,1
    - Dst: inflate
      Src: /src/clamav/libclamav/vba_extract.c:1891,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/vba_extract.c:1893,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1894,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/vba_extract.c:1895,1
    - Dst: close
      Src: /src/clamav/libclamav/vba_extract.c:1898,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/vba_extract.c:1899,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 3
    argNames:
    - dir
    - fd
    - length
    argTypes:
    - char*
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1900
      start: 1829
    functionDepth: 3
    functionLinenumber: 1829
    functionLinenumberEnd: 1900
    functionName: ppt_unlzw
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - lseek
    - memset
    - snprintf
    - close
    - cli_warnmsg
    - cli_unlink
    - open
    - inflateInit
    - inflate
    - MIN
    - inflateEnd
    - cli_writen
    - cli_readn
    linkageType: ''
    returnType: int
    signature: int ppt_unlzw(const char *dir, int fd, uint32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ppt_read_atom_header
      Src: /src/clamav/libclamav/vba_extract.c:1907,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1915,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1916,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1920,1
    - Dst: ppt_unlzw
      Src: /src/clamav/libclamav/vba_extract.c:1921,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1922,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1926,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:1932,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - fd
    - dir
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1938
      start: 1902
    functionDepth: 4
    functionLinenumber: 1902
    functionLinenumberEnd: 1938
    functionName: ppt_stream_iter
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - ppt_unlzw
    - lseek
    - cli_dbgmsg
    - ppt_read_atom_header
    linkageType: ''
    returnType: char
    signature: 'char *

      ppt_stream_iter(int fd, const char *dir)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/vba_extract.c:1947,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/vba_extract.c:1950,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:1951,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1952,1
    - Dst: ppt_stream_iter
      Src: /src/clamav/libclamav/vba_extract.c:1955,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/vba_extract.c:1957,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:1958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ifd
    - ctx
    argTypes:
    - int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1962
      start: 1940
    functionDepth: 6
    functionLinenumber: 1940
    functionLinenumberEnd: 1962
    functionName: cli_ppt_vba_read
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_rmdirs
    - mkdir
    - ppt_stream_iter
    - free
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      cli_ppt_vba_read(int ifd, cli_ctx *ctx)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seekandread
      Src: /src/clamav/libclamav/vba_extract.c:1992,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:1993,1
    - Dst: vba_endian_convert_32
      Src: /src/clamav/libclamav/vba_extract.c:1996,1
    - Dst: vba_endian_convert_32
      Src: /src/clamav/libclamav/vba_extract.c:1997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - fib
    argTypes:
    - int
    - mso_fib_t*
    constantsTouched: []
    func_position:
      end: 2000
      start: 1984
    functionDepth: 2
    functionLinenumber: 1984
    functionLinenumberEnd: 2000
    functionName: word_read_fib
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - seekandread
    - vba_endian_convert_32
    linkageType: ''
    returnType: int
    signature: int word_read_fib(int fd, mso_fib_t *fib)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2035,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:2037,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2041,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2042,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/vba_extract.c:2043,1
    - Dst: vba_endian_convert_32
      Src: /src/clamav/libclamav/vba_extract.c:2050,1
    - Dst: vba_endian_convert_32
      Src: /src/clamav/libclamav/vba_extract.c:2051,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - fd
    - macro_info
    argTypes:
    - int
    - macro_info_t*
    constantsTouched: []
    func_position:
      end: 2057
      start: 2002
    functionDepth: 3
    functionLinenumber: 2002
    functionLinenumberEnd: 2057
    functionName: word_read_macro_entry
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - vba_endian_convert_32
    - cli_readn
    - cli_warnmsg
    - cli_max_malloc
    - free
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int word_read_macro_entry(int fd, macro_info_t *macro_info)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:2062,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2063,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2067,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2070,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:2073,1
    - Dst: word_read_macro_entry
      Src: /src/clamav/libclamav/vba_extract.c:2076,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - macro_info
    argTypes:
    - int
    - macro_info_t*
    constantsTouched: []
    func_position:
      end: 2082
      start: 2059
    functionDepth: 4
    functionLinenumber: 2059
    functionLinenumberEnd: 2082
    functionName: word_read_macro_info
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - read_uint16
    - cli_max_malloc
    - cli_dbgmsg
    - free
    - word_read_macro_entry
    - cli_errmsg
    linkageType: ''
    returnType: macro_info_t
    signature: 'macro_info_t *

      word_read_macro_info(int fd, macro_info_t *macro_info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2089,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2090,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2093,1
    - Dst: seekandread
      Src: /src/clamav/libclamav/vba_extract.c:2095,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2096,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2103,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2104,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2108,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2114,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2115,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2121
      start: 2084
    functionDepth: 3
    functionLinenumber: 2084
    functionLinenumberEnd: 2121
    functionName: word_skip_oxo3
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - seekandread
    - cli_dbgmsg
    - lseek
    - cli_readn
    linkageType: ''
    returnType: int
    signature: int word_skip_oxo3(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:2128,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2129,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2132,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2138
      start: 2123
    functionDepth: 2
    functionLinenumber: 2123
    functionLinenumberEnd: 2138
    functionName: word_skip_menu_info
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_dbgmsg
    - read_uint16
    linkageType: ''
    returnType: int
    signature: int word_skip_menu_info(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:2146,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2147,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:2151,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2152,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2159,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2166,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2167,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2184
      start: 2140
    functionDepth: 3
    functionLinenumber: 2140
    functionLinenumberEnd: 2184
    functionName: word_skip_macro_extnames
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_dbgmsg
    - cli_readn
    - read_uint16
    linkageType: ''
    returnType: int
    signature: int word_skip_macro_extnames(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/clamav/libclamav/vba_extract.c:2191,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2192,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2195,1
    - Dst: seekandread
      Src: /src/clamav/libclamav/vba_extract.c:2201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2202,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2207,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2213
      start: 2186
    functionDepth: 2
    functionLinenumber: 2186
    functionLinenumberEnd: 2213
    functionName: word_skip_macro_intnames
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_dbgmsg
    - seekandread
    - read_uint16
    linkageType: ''
    returnType: int
    signature: int word_skip_macro_intnames(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: word_read_fib
      Src: /src/clamav/libclamav/vba_extract.c:2225,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2229,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2234,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2237,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2238,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2247,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2248,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2249,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2255,1
    - Dst: word_read_macro_info
      Src: /src/clamav/libclamav/vba_extract.c:2256,1
    - Dst: word_skip_oxo3
      Src: /src/clamav/libclamav/vba_extract.c:2260,1
    - Dst: word_skip_menu_info
      Src: /src/clamav/libclamav/vba_extract.c:2264,1
    - Dst: word_skip_macro_extnames
      Src: /src/clamav/libclamav/vba_extract.c:2268,1
    - Dst: word_skip_macro_intnames
      Src: /src/clamav/libclamav/vba_extract.c:2272,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2280,1
    - Dst: create_vba_project
      Src: /src/clamav/libclamav/vba_extract.c:2288,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2291,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2292,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:2305,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2306,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2307,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2308,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2309,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2311,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2313,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2314,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2318,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2321
      start: 2215
    functionDepth: 5
    functionLinenumber: 2215
    functionLinenumberEnd: 2321
    functionName: cli_wm_readdir
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - lseek
    - word_read_fib
    - cli_readn
    - word_skip_macro_extnames
    - cli_errmsg
    - word_read_macro_info
    - cli_max_malloc
    - cli_dbgmsg
    - create_vba_project
    - word_skip_macro_intnames
    - word_skip_oxo3
    - word_skip_menu_info
    - free
    linkageType: ''
    returnType: vba_project_t
    signature: 'vba_project_t *

      cli_wm_readdir(int fd)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2334,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:2336,1
    - Dst: seekandread
      Src: /src/clamav/libclamav/vba_extract.c:2340,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - fd
    - offset
    - len
    - key
    argTypes:
    - int
    - off_t
    - uint32_t
    - unsigned char
    constantsTouched: []
    func_position:
      end: 2351
      start: 2323
    functionDepth: 3
    functionLinenumber: 2323
    functionLinenumberEnd: 2351
    functionName: cli_wm_decrypt_macro
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 0
    functionsReached:
    - cli_max_malloc
    - seekandread
    - cli_errmsg
    - free
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      cli_wm_decrypt_macro(int fd, off_t offset, uint32_t len, unsigned char key)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/clamav/libclamav/vba_extract.c:2368,1
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2375
      start: 2359
    functionDepth: 0
    functionLinenumber: 2359
    functionLinenumberEnd: 2375
    functionName: skip_past_nul
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 1
    functionsReached:
    - lseek
    - memchr
    linkageType: ''
    returnType: int
    signature: int skip_past_nul(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2383,1
    - Dst: vba_endian_convert_16
      Src: /src/clamav/libclamav/vba_extract.c:2386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - u
    - big_endian
    argTypes:
    - int
    - uint16_t*
    - int
    constantsTouched: []
    func_position:
      end: 2389
      start: 2380
    functionDepth: 3
    functionLinenumber: 2380
    functionLinenumberEnd: 2389
    functionName: read_uint16
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 7
    functionsReached:
    - cli_readn
    - vba_endian_convert_16
    linkageType: ''
    returnType: int
    signature: int read_uint16(int fd, uint16_t *u, int big_endian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2397,1
    - Dst: vba_endian_convert_32
      Src: /src/clamav/libclamav/vba_extract.c:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - u
    - big_endian
    argTypes:
    - int
    - uint32_t*
    - int
    constantsTouched: []
    func_position:
      end: 2403
      start: 2394
    functionDepth: 3
    functionLinenumber: 2394
    functionLinenumberEnd: 2403
    functionName: read_uint32
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 2
    functionsReached:
    - vba_endian_convert_32
    - cli_readn
    linkageType: ''
    returnType: int
    signature: int read_uint32(int fd, uint32_t *u, int big_endian)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/clamav/libclamav/vba_extract.c:2411,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/vba_extract.c:2412,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/vba_extract.c:2415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - fd
    - offset
    - whence
    - data
    - len
    argTypes:
    - int
    - off_t
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 2416
      start: 2408
    functionDepth: 3
    functionLinenumber: 2408
    functionLinenumberEnd: 2416
    functionName: seekandread
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 5
    functionsReached:
    - lseek
    - cli_dbgmsg
    - cli_readn
    linkageType: ''
    returnType: int
    signature: int seekandread(int fd, off_t offset, int whence, void *data, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/vba_extract.c:2426,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:2429,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2433,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2434,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/vba_extract.c:2435,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/vba_extract.c:2436,1
    - Dst: cli_free_vba_project
      Src: /src/clamav/libclamav/vba_extract.c:2439,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/vba_extract.c:2440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - record_count
    - dir
    - U
    argTypes:
    - int
    - char*
    - struct uniq*
    constantsTouched: []
    func_position:
      end: 2447
      start: 2421
    functionDepth: 3
    functionLinenumber: 2421
    functionLinenumberEnd: 2447
    functionName: create_vba_project
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 2
    functionsReached:
    - calloc
    - cli_free_vba_project
    - cli_max_malloc
    - cli_safer_strdup
    - cli_errmsg
    linkageType: ''
    returnType: vba_project_t
    signature: 'vba_project_t *

      create_vba_project(int record_count, const char *dir, struct uniq *U)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2461,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2463,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2465,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2467,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2469,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2471,1
    - Dst: free
      Src: /src/clamav/libclamav/vba_extract.c:2472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - vba_project
    argTypes:
    - vba_project_t*
    constantsTouched: []
    func_position:
      end: 2476
      start: 2457
    functionDepth: 0
    functionLinenumber: 2457
    functionLinenumberEnd: 2476
    functionName: cli_free_vba_project
    functionSourceFile: /src/clamav/libclamav/vba_extract.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cli_free_vba_project(vba_project_t *vba_project)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/filetypes.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: cli_ftcode
    functionSourceFile: /src/clamav/libclamav/filetypes.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: cli_file_t
    signature: cli_file_t cli_ftcode(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - code
    argTypes:
    - cli_file_t
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: cli_ftname
    functionSourceFile: /src/clamav/libclamav/filetypes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cli_ftname(cli_file_t code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/filetypes.c:179,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/filetypes.c:180,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/filetypes.c:181,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/filetypes.c:188,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/filetypes.c:189,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/filetypes.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: cli_ftfree
    functionSourceFile: /src/clamav/libclamav/filetypes.c
    functionUses: 0
    functionsReached:
    - MPOOL_FREE
    linkageType: ''
    returnType: void
    signature: void cli_ftfree(const struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/filetypes.c:200,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - buflen
    - engine
    argTypes:
    - unsigned char*
    - size_t
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: cli_compare_ftm_partition
    functionSourceFile: /src/clamav/libclamav/filetypes.c
    functionUses: 0
    functionsReached:
    - memcmp
    - cli_dbgmsg
    linkageType: ''
    returnType: cli_file_t
    signature: cli_file_t cli_compare_ftm_partition(const unsigned char *buf, size_t
      buflen, const struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/filetypes.c:218,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:219,1
    - Dst: cli_texttype
      Src: /src/clamav/libclamav/filetypes.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - buflen
    - engine
    argTypes:
    - unsigned char*
    - size_t
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: cli_compare_ftm_file
    functionSourceFile: /src/clamav/libclamav/filetypes.c
    functionUses: 3
    functionsReached:
    - memcmp
    - cli_dbgmsg
    - cli_texttype
    linkageType: ''
    returnType: cli_file_t
    signature: cli_file_t cli_compare_ftm_file(const unsigned char *buf, size_t buflen,
      const struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/filetypes.c:293,1
    - Dst: MIN
      Src: /src/clamav/libclamav/filetypes.c:298,1
    - Dst: MIN
      Src: /src/clamav/libclamav/filetypes.c:300,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/filetypes.c:307,1
    - Dst: cli_memcpy
      Src: /src/clamav/libclamav/filetypes.c:309,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/filetypes.c:310,1
    - Dst: cli_compare_ftm_partition
      Src: /src/clamav/libclamav/filetypes.c:318,1
    - Dst: cli_compare_ftm_file
      Src: /src/clamav/libclamav/filetypes.c:320,1
    - Dst: is_tar
      Src: /src/clamav/libclamav/filetypes.c:323,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:325,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:328,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/filetypes.c:343,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/filetypes.c:349,1
    - Dst: OOXML_FTIDENTIFIED
      Src: /src/clamav/libclamav/filetypes.c:351,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:363,1
    - Dst: cli_ooxml_filetype
      Src: /src/clamav/libclamav/filetypes.c:364,1
    - Dst: OOXML_FTIDENTIFIED
      Src: /src/clamav/libclamav/filetypes.c:366,1
    - Dst: MIN
      Src: /src/clamav/libclamav/filetypes.c:380,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/filetypes.c:381,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:383,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:398,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:405,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/filetypes.c:418,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/libclamav/filetypes.c:421,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/filetypes.c:423,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/filetypes.c:435,1
    - Dst: cli_utf16toascii
      Src: /src/clamav/libclamav/filetypes.c:438,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/libclamav/filetypes.c:440,1
    - Dst: free
      Src: /src/clamav/libclamav/filetypes.c:441,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/filetypes.c:445,1
    - Dst: encoding_detect_bom
      Src: /src/clamav/libclamav/filetypes.c:453,1
    - Dst: memset
      Src: /src/clamav/libclamav/filetypes.c:457,1
    - Dst: encoding_normalize_toascii
      Src: /src/clamav/libclamav/filetypes.c:470,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/filetypes.c:471,1
    - Dst: cli_ac_scanbuff
      Src: /src/clamav/libclamav/filetypes.c:475,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/filetypes.c:477,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/filetypes.c:483,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 142
    argCount: 3
    argNames:
    - map
    - engine
    - basetype
    argTypes:
    - fmap_t*
    - struct cl_engine*
    - cli_file_t
    constantsTouched: []
    func_position:
      end: 491
      start: 281
    functionDepth: 5
    functionLinenumber: 281
    functionLinenumberEnd: 491
    functionName: cli_determine_fmap_type
    functionSourceFile: /src/clamav/libclamav/filetypes.c
    functionUses: 0
    functionsReached:
    - encoding_detect_bom
    - cli_compare_ftm_partition
    - is_tar
    - cli_utf16toascii
    - cli_compare_ftm_file
    - encoding_normalize_toascii
    - memcmp
    - cli_ac_freedata
    - fmap_need_off_once
    - cli_dbgmsg
    - OOXML_FTIDENTIFIED
    - MIN
    - memset
    - cli_ooxml_filetype
    - cli_memcpy
    - cli_ac_scanbuff
    - cli_ac_initdata
    - free
    - cli_memstr
    - cli_errmsg
    linkageType: ''
    returnType: cli_file_t
    signature: cli_file_t cli_determine_fmap_type(fmap_t *map, const struct cl_engine
      *engine, cli_file_t basetype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:51,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:54,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tiff.c:61,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/tiff.c:67,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/tiff.c:69,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:76,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tiff.c:79,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:80,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/tiff.c:81,1
    - Dst: tiff32_to_host
      Src: /src/clamav/libclamav/tiff.c:85,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:87,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/tiff.c:90,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/tiff.c:91,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tiff.c:98,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:99,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/tiff.c:100,1
    - Dst: tiff16_to_host
      Src: /src/clamav/libclamav/tiff.c:104,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:106,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tiff.c:110,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:111,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/tiff.c:112,1
    - Dst: tiff16_to_host
      Src: /src/clamav/libclamav/tiff.c:117,1
    - Dst: tiff16_to_host
      Src: /src/clamav/libclamav/tiff.c:118,1
    - Dst: tiff32_to_host
      Src: /src/clamav/libclamav/tiff.c:119,1
    - Dst: tiff32_to_host
      Src: /src/clamav/libclamav/tiff.c:120,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/tiff.c:172,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/tiff.c:174,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tiff.c:185,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:186,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/tiff.c:187,1
    - Dst: tiff32_to_host
      Src: /src/clamav/libclamav/tiff.c:190,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:195,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/tiff.c:196,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tiff.c:202,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 134
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 209
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 209
    functionName: cli_parsetiff
    functionSourceFile: /src/clamav/libclamav/tiff.c
    functionUses: 0
    functionsReached:
    - tiff16_to_host
    - cli_warnmsg
    - cli_append_potentially_unwanted
    - tiff32_to_host
    - fmap_readn
    - cli_dbgmsg
    - memcmp
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_parsetiff(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/swf.c:138,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:139,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/swf.c:144,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:145,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:146,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:147,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:148,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:151,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/swf.c:156,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:157,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:158,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:159,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:160,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:163,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/swf.c:171,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:174,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/swf.c:179,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:181,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:182,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:183,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:184,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:187,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:192,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:193,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:194,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:195,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:198,1
    - Dst: memset
      Src: /src/clamav/libclamav/swf.c:203,1
    - Dst: cli_LzmaInit
      Src: /src/clamav/libclamav/swf.c:209,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:211,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:212,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:213,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:214,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:217,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/swf.c:225,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:227,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/swf.c:228,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:229,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:230,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:231,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:234,1
    - Dst: cli_LzmaDecode
      Src: /src/clamav/libclamav/swf.c:242,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/swf.c:245,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/swf.c:247,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:248,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/swf.c:249,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:250,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:251,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:252,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:255,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/swf.c:264,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/swf.c:269,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:270,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:271,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:272,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:275,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/swf.c:278,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:280,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/swf.c:284,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:287,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/swf.c:291,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:293,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:295,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:296,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:300,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 141
    argCount: 2
    argNames:
    - ctx
    - hdr
    argTypes:
    - cli_ctx*
    - struct swf_file_hdr*
    constantsTouched: []
    func_position:
      end: 302
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 302
    functionName: scanzws
    functionSourceFile: /src/clamav/libclamav/swf.c
    functionUses: 0
    functionsReached:
    - close
    - memset
    - cli_magic_scan_desc
    - cli_unlink
    - cli_warnmsg
    - cli_LzmaInit
    - cli_infomsg
    - fmap_readn
    - cli_LzmaDecode
    - cli_dbgmsg
    - cli_gentempfd
    - cli_checklimits
    - free
    - cli_LzmaShutdown
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scanzws(cli_ctx *ctx, struct swf_file_hdr *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/swf.c:318,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:319,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/swf.c:324,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:325,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:326,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:327,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:328,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:331,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/swf.c:343,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:345,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:346,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:347,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:348,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:351,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/swf.c:358,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:360,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:361,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/swf.c:362,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:363,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:364,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:367,1
    - Dst: inflate
      Src: /src/clamav/libclamav/swf.c:375,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/swf.c:378,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/swf.c:380,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/swf.c:381,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/swf.c:382,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:383,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:384,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:385,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:388,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/swf.c:397,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/swf.c:405,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:406,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:407,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:408,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:411,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/swf.c:414,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:416,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/swf.c:420,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:423,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/swf.c:427,1
    - Dst: close
      Src: /src/clamav/libclamav/swf.c:429,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/swf.c:431,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:432,1
    - Dst: free
      Src: /src/clamav/libclamav/swf.c:436,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 105
    argCount: 2
    argNames:
    - ctx
    - hdr
    argTypes:
    - cli_ctx*
    - struct swf_file_hdr*
    constantsTouched: []
    func_position:
      end: 438
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 438
    functionName: scancws
    functionSourceFile: /src/clamav/libclamav/swf.c
    functionUses: 0
    functionsReached:
    - close
    - cli_magic_scan_desc
    - cli_unlink
    - cli_warnmsg
    - cli_infomsg
    - fmap_readn
    - cli_dbgmsg
    - inflateInit
    - cli_gentempfd
    - cli_checklimits
    - inflate
    - free
    - inflateEnd
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scancws(cli_ctx *ctx, struct swf_file_hdr *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - tag_id
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: tagname
    functionSourceFile: /src/clamav/libclamav/swf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *tagname(tag_id id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:461,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/swf.c:463,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:464,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/swf.c:472,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:474,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:475,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/swf.c:477,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:478,1
    - Dst: scancws
      Src: /src/clamav/libclamav/swf.c:479,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/swf.c:480,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:481,1
    - Dst: scanzws
      Src: /src/clamav/libclamav/swf.c:482,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/swf.c:483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:484,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:486,1
    - Dst: GETBITS
      Src: /src/clamav/libclamav/swf.c:492,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:493,1
    - Dst: GETBITS
      Src: /src/clamav/libclamav/swf.c:496,1
    - Dst: GETBITS
      Src: /src/clamav/libclamav/swf.c:497,1
    - Dst: GETBITS
      Src: /src/clamav/libclamav/swf.c:498,1
    - Dst: GETBITS
      Src: /src/clamav/libclamav/swf.c:499,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:500,1
    - Dst: GETWORD
      Src: /src/clamav/libclamav/swf.c:504,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/swf.c:505,1
    - Dst: GETWORD
      Src: /src/clamav/libclamav/swf.c:507,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:508,1
    - Dst: GETWORD
      Src: /src/clamav/libclamav/swf.c:516,1
    - Dst: GETDWORD
      Src: /src/clamav/libclamav/swf.c:522,1
    - Dst: tagname
      Src: /src/clamav/libclamav/swf.c:524,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:525,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:526,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:528,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/swf.c:532,1
    - Dst: GETWORD
      Src: /src/clamav/libclamav/swf.c:543,1
    - Dst: GETWORD
      Src: /src/clamav/libclamav/swf.c:544,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:545,1
    - Dst: GETDWORD
      Src: /src/clamav/libclamav/swf.c:550,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:551,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:553,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:555,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:557,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:559,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:561,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:563,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/swf.c:565,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 94
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 575
      start: 450
    functionDepth: 4
    functionLinenumber: 450
    functionLinenumberEnd: 575
    functionName: cli_scanswf
    functionSourceFile: /src/clamav/libclamav/swf.c
    functionUses: 0
    functionsReached:
    - scanzws
    - le32_to_host
    - GETWORD
    - UNUSEDPARAM
    - cli_warnmsg
    - GETDWORD
    - fmap_readn
    - GETBITS
    - cli_dbgmsg
    - tagname
    - scancws
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanswf(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: td_isascii
    functionSourceFile: /src/clamav/libclamav/textdet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int td_isascii(const unsigned char *buf, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 147
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 147
    functionName: td_isutf8
    functionSourceFile: /src/clamav/libclamav/textdet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int td_isutf8(const unsigned char *buf, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 189
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 189
    functionName: td_isutf16
    functionSourceFile: /src/clamav/libclamav/textdet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int td_isutf16(const unsigned char *buf, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: td_isascii
      Src: /src/clamav/libclamav/textdet.c:200,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/textdet.c:201,1
    - Dst: td_isutf8
      Src: /src/clamav/libclamav/textdet.c:203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/textdet.c:204,1
    - Dst: td_isutf16
      Src: /src/clamav/libclamav/textdet.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/textdet.c:207,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/textdet.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 213
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 213
    functionName: cli_texttype
    functionSourceFile: /src/clamav/libclamav/textdet.c
    functionUses: 1
    functionsReached:
    - td_isutf8
    - cli_dbgmsg
    - td_isascii
    - td_isutf16
    linkageType: ''
    returnType: cli_file_t
    signature: cli_file_t cli_texttype(const unsigned char *buf, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - engine
    - real_url
    - display_url
    - pre_fixup
    - hostOnly
    argTypes:
    - struct cl_engine*
    - char*
    - char*
    - struct pre_fixup_info*
    - int
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: domain_list_match
    functionSourceFile: /src/clamav/libclamav/phish_domaincheck_db.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int domain_list_match(const struct cl_engine* engine, char* real_url,
      const char* display_url, const struct pre_fixup_info* pre_fixup, int hostOnly)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/phish_domaincheck_db.c:54,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/phish_domaincheck_db.c:56,1
    - Dst: init_regex_list
      Src: /src/clamav/libclamav/phish_domaincheck_db.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 65
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 65
    functionName: init_domain_list
    functionSourceFile: /src/clamav/libclamav/phish_domaincheck_db.c
    functionUses: 1
    functionsReached:
    - malloc
    - cli_errmsg
    - init_regex_list
    linkageType: ''
    returnType: int
    signature: int init_domain_list(struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_regex_ok
      Src: /src/clamav/libclamav/phish_domaincheck_db.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: is_domain_list_ok
    functionSourceFile: /src/clamav/libclamav/phish_domaincheck_db.c
    functionUses: 0
    functionsReached:
    - is_regex_ok
    linkageType: ''
    returnType: int
    signature: int is_domain_list_ok(const struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regex_list_done
      Src: /src/clamav/libclamav/phish_domaincheck_db.c:75,1
    - Dst: free
      Src: /src/clamav/libclamav/phish_domaincheck_db.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: domain_list_done
    functionSourceFile: /src/clamav/libclamav/phish_domaincheck_db.c
    functionUses: 1
    functionsReached:
    - free
    - regex_list_done
    linkageType: ''
    returnType: void
    signature: void domain_list_done(struct cl_engine* engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:101,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:104,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/png.c:110,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/png.c:111,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:115,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/png.c:117,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/png.c:122,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:123,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/png.c:125,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:135,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/png.c:138,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:140,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/png.c:142,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/png.c:149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:154,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/png.c:157,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/png.c:158,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:160,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:170,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:173,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:188,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:193,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:207,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:208,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:209,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:210,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:211,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:212,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:213,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/png.c:215,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:231,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:235,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/png.c:236,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:240,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/png.c:241,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/png.c:247,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:254,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/png.c:256,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/png.c:262,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:263,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/png.c:265,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/png.c:269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:282,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/png.c:290,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/png.c:291,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 166
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 299
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 299
    functionName: cli_parsepng
    functionSourceFile: /src/clamav/libclamav/png.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_append_potentially_unwanted
    - fmap_need_off_once
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - cli_dbgmsg
    - be32_to_host
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_parsepng(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: context_safe
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void context_safe(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:113,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:116,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:119,1
    - Dst: close
      Src: /src/clamav/libclamav/bytecode.c:123,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/bytecode.c:128,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:130,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/bytecode.c:141,1
    - Dst: open
      Src: /src/clamav/libclamav/bytecode.c:142,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/bytecode.c:144,1
    - Dst: lseek
      Src: /src/clamav/libclamav/bytecode.c:147,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:148,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/bytecode.c:150,1
    - Dst: close
      Src: /src/clamav/libclamav/bytecode.c:154,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/bytecode.c:159,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:162,1
    - Dst: mpool_destroy
      Src: /src/clamav/libclamav/bytecode.c:177,1
    - Dst: cli_bcapi_inflate_done
      Src: /src/clamav/libclamav/bytecode.c:184,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:185,1
    - Dst: cli_bcapi_lzma_done
      Src: /src/clamav/libclamav/bytecode.c:190,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:191,1
    - Dst: cli_bcapi_bzip2_done
      Src: /src/clamav/libclamav/bytecode.c:196,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:197,1
    - Dst: cli_bcapi_buffer_pipe_done
      Src: /src/clamav/libclamav/bytecode.c:202,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:203,1
    - Dst: cli_bcapi_hashset_done
      Src: /src/clamav/libclamav/bytecode.c:208,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:209,1
    - Dst: cli_bcapi_jsnorm_done
      Src: /src/clamav/libclamav/bytecode.c:214,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:215,1
    - Dst: cli_bcapi_map_done
      Src: /src/clamav/libclamav/bytecode.c:221,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:222,1
    - Dst: cli_bcapi_input_switch
      Src: /src/clamav/libclamav/bytecode.c:227,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:229,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 89
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 234
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 234
    functionName: bytecode_context_reset
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_bcapi_jsnorm_done
    - close
    - lseek
    - snprintf
    - cli_rmdirs
    - cli_unlink
    - open
    - cli_bcapi_bzip2_done
    - mpool_destroy
    - cli_bcapi_inflate_done
    - cli_bcapi_lzma_done
    - cli_bcapi_input_switch
    - cli_dbgmsg
    - cli_bcapi_map_done
    - cli_bcapi_buffer_pipe_done
    - cli_bcapi_hashset_done
    - cli_scan_desc
    - free
    linkageType: ''
    returnType: void
    signature: void bytecode_context_reset(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: bytecode_context_initialize
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void bytecode_context_initialize(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:249,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:251,1
    - Dst: bytecode_context_initialize
      Src: /src/clamav/libclamav/bytecode.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: cli_bytecode_context_alloc
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 5
    functionsReached:
    - bytecode_context_initialize
    - cli_errmsg
    - calloc
    linkageType: ''
    returnType: struct cli_bc_ctx
    signature: struct cli_bc_ctx *cli_bytecode_context_alloc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:262,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: cli_bytecode_context_destroy
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 5
    functionsReached:
    - bytecode_context_reset
    - free
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_context_destroy(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - tempfilename
    argTypes:
    - struct cli_bc_ctx*
    - char**
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: cli_bytecode_context_getresult_file
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_bytecode_context_getresult_file(struct cli_bc_ctx *ctx, char
      **tempfilename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:299,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:302,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:308,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - bc
    - type
    argTypes:
    - struct cli_bc*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 311
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 311
    functionName: typesize
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 3
    functionsReached:
    - cli_warnmsg
    - typesize
    linkageType: ''
    returnType: unsigned
    signature: unsigned typesize(const struct cli_bc *bc, uint16_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bc
    - type
    argTypes:
    - struct cli_bc*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: typealign
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned typealign(const struct cli_bc *bc, uint16_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:328,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:336,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:338,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:341,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:343,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:350,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:355,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - bc
    - funcid
    argTypes:
    - struct cli_bc_ctx*
    - struct cli_bc*
    - unsigned
    constantsTouched: []
    func_position:
      end: 361
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 361
    functionName: cli_bytecode_context_setfuncid
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - malloc
    - typesize
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_context_setfuncid(struct cli_bc_ctx *ctx, const
      struct cli_bc *bc, unsigned funcid)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: type_isint
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool type_isint(uint16_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:371,1
    - Dst: type_isint
      Src: /src/clamav/libclamav/bytecode.c:374,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - i
    - c
    argTypes:
    - struct cli_bc_ctx*
    - unsigned
    - uint64_t
    constantsTouched: []
    func_position:
      end: 393
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 393
    functionName: cli_bytecode_context_setparam_int
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - type_isint
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_context_setparam_int(struct cli_bc_ctx *ctx,
      unsigned i, uint64_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode.c:397,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode.c:398,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode.c:399,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/bytecode.c:400,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - i
    - data
    - datalen
    argTypes:
    - struct cli_bc_ctx*
    - unsigned
    - void*
    - unsigned
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: cli_bytecode_context_setparam_ptr
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_context_setparam_ptr(struct cli_bc_ctx *ctx,
      unsigned i, void *data, unsigned datalen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:412,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:418,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/bytecode.c:430,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - p
    - 'off'
    - len
    - ok
    argTypes:
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 442
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 442
    functionName: readNumber
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - cli_errmsg
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t readNumber(const unsigned char *p, unsigned *off, unsigned
      len, bool *ok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:447,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - bc
    - p
    - 'off'
    - len
    - ok
    argTypes:
    - struct cli_bc*
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: readFuncID
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - readNumber
    linkageType: ''
    returnType: funcid_t
    signature: "funcid_t readFuncID(struct cli_bc *bc, unsigned char *p,\n                                  unsigned
      *off, unsigned len, bool *ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:459,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/bytecode.c:460,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - bc
    - p
    - 'off'
    - len
    - ok
    argTypes:
    - struct cli_bc*
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 466
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 466
    functionName: readAPIFuncID
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - cli_bitset_test
    - readNumber
    linkageType: ''
    returnType: funcid_t
    signature: "funcid_t readAPIFuncID(struct cli_bc *bc, unsigned char *p,\n                                     unsigned
      *off, unsigned len, bool *ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:474,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/bytecode.c:480,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - p
    - 'off'
    - len
    - ok
    - width
    argTypes:
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    - unsigned
    constantsTouched: []
    func_position:
      end: 492
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 492
    functionName: readFixedNumber
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - cli_errmsg
    linkageType: ''
    returnType: unsigned
    signature: "unsigned readFixedNumber(const unsigned char *p, unsigned *off,\n
      \                                      unsigned len, bool *ok, unsigned width)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_realloc_or_free
      Src: /src/clamav/libclamav/bytecode.c:503,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:508,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:514,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:529,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:533,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - func
    - p
    - 'off'
    - len
    - ok
    argTypes:
    - struct cli_bc_func*
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 538
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 538
    functionName: readOperand
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - cli_safer_realloc_or_free
    - readNumber
    - readFixedNumber
    linkageType: ''
    returnType: operand_t
    signature: "operand_t readOperand(struct cli_bc_func *func, unsigned char *p,\n
      \                                   unsigned *off, unsigned len, bool *ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:545,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:550,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:557,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:561,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:563,1
    - Dst: UNLIKELY
      Src: /src/clamav/libclamav/bytecode.c:571,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:572,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:574,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - p
    - 'off'
    - len
    - ok
    - datalen
    argTypes:
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    - unsigned*
    constantsTouched: []
    func_position:
      end: 582
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 582
    functionName: readData
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 2
    functionsReached:
    - UNLIKELY
    - cli_errmsg
    - readNumber
    - malloc
    - free
    linkageType: ''
    returnType: char
    signature: char *readData(const unsigned char *p, unsigned *off, unsigned len,
      bool *ok, unsigned *datalen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:590,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - p
    - 'off'
    - len
    - ok
    argTypes:
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 596
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 596
    functionName: readString
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - free
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char *readString(const unsigned char *p, unsigned *off, unsigned len,
      bool *ok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/bytecode.c:606,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:607,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode.c:611,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:612,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:614,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:620,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:625,1
    - Dst: readString
      Src: /src/clamav/libclamav/bytecode.c:626,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:627,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:628,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:629,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:630,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/bytecode.c:631,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:640,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:644,1
    - Dst: readString
      Src: /src/clamav/libclamav/bytecode.c:645,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:646,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:647,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:653,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:656,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:657,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:661,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:665,1
    - Dst: strtol
      Src: /src/clamav/libclamav/bytecode.c:669,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:671,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:675,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:677,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:680,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:682,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 3
    argNames:
    - bc
    - buffer
    - linelength
    argTypes:
    - struct cli_bc*
    - unsigned char*
    - unsigned*
    constantsTouched: []
    func_position:
      end: 686
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 686
    functionName: parseHeader
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - readFixedNumber
    - calloc
    - strlen
    - cl_retflevel
    - readNumber
    - cli_dbgmsg
    - readString
    - strtol
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseHeader(struct cli_bc *bc, unsigned char *buffer, unsigned
      *linelength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/bytecode.c:694,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/bytecode.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - bc
    - buffer
    argTypes:
    - struct cli_bc*
    - char*
    constantsTouched: []
    func_position:
      end: 705
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 705
    functionName: parseLSig
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_safer_strdup
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseLSig(struct cli_bc *bc, char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - bc
    - buffer
    - offset
    - len
    - ok
    argTypes:
    - struct cli_bc*
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 719
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 719
    functionName: readTypeID
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t readTypeID(struct cli_bc *bc, unsigned char *buffer,\n                           unsigned
      *offset, unsigned len, bool *ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:727,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:729,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:733,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:735,1
    - Dst: readTypeID
      Src: /src/clamav/libclamav/bytecode.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - bc
    - ty
    - buffer
    - 'off'
    - len
    - ok
    argTypes:
    - struct cli_bc*
    - struct cli_bc_type*
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 742
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 742
    functionName: parseType
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - malloc
    - cli_errmsg
    - readTypeID
    - readNumber
    linkageType: ''
    returnType: void
    signature: "void parseType(struct cli_bc *bc, struct cli_bc_type *ty,\n                      unsigned
      char *buffer, unsigned *off, unsigned len,\n                      bool *ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bc
    argTypes:
    - struct cli_bc*
    constantsTouched: []
    func_position:
      end: 756
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 756
    functionName: add_static_types
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_static_types(struct cli_bc *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:764,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:767,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:769,1
    - Dst: add_static_types
      Src: /src/clamav/libclamav/bytecode.c:773,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:778,1
    - Dst: parseType
      Src: /src/clamav/libclamav/bytecode.c:785,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:787,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:791,1
    - Dst: parseType
      Src: /src/clamav/libclamav/bytecode.c:800,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:802,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:809,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:811,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:820,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:822,1
    - Dst: readTypeID
      Src: /src/clamav/libclamav/bytecode.c:825,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:827,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:834,1
    - Dst: typealign
      Src: /src/clamav/libclamav/bytecode.c:835,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:839,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:846,1
    - Dst: typealign
      Src: /src/clamav/libclamav/bytecode.c:847,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 82
    argCount: 2
    argNames:
    - bc
    - buffer
    argTypes:
    - struct cli_bc*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 851
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 851
    functionName: parseTypes
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - cli_errmsg
    - typesize
    - readTypeID
    - readNumber
    - add_static_types
    - typealign
    - malloc
    - parseType
    - readFixedNumber
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseTypes(struct cli_bc *bc, unsigned char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:870,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:874,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:880,1
    - Dst: types_equal
      Src: /src/clamav/libclamav/bytecode.c:884,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - bc
    - apity2ty
    - tid
    - apitid
    argTypes:
    - struct cli_bc*
    - uint16_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 890
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 890
    functionName: types_equal
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - types_equal
    - cli_dbgmsg
    linkageType: ''
    returnType: bool
    signature: bool types_equal(const struct cli_bc *bc, uint16_t *apity2ty, uint16_t
      tid, uint16_t apitid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:899,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:903,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:907,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:910,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:914,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/bytecode.c:917,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:919,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:922,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:924,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:934,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/bytecode.c:939,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:940,1
    - Dst: types_equal
      Src: /src/clamav/libclamav/bytecode.c:943,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:944,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:948,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:950,1
    - Dst: cli_bitset_set
      Src: /src/clamav/libclamav/bytecode.c:955,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:957,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:958,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 2
    argNames:
    - bc
    - buffer
    argTypes:
    - struct cli_bc*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 960
      start: 892
    functionDepth: 3
    functionLinenumber: 892
    functionLinenumberEnd: 960
    functionName: parseApis
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - calloc
    - strcmp
    - readNumber
    - cli_bitset_init
    - cli_dbgmsg
    - cli_bitset_set
    - free
    - types_equal
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseApis(struct cli_bc *bc, unsigned char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:972,1
    - Dst: type_components
      Src: /src/clamav/libclamav/bytecode.c:981,1
    - Dst: type_components
      Src: /src/clamav/libclamav/bytecode.c:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - bc
    - id
    - ok
    argTypes:
    - struct cli_bc*
    - uint16_t
    - bool*
    constantsTouched: []
    func_position:
      end: 990
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 990
    functionName: type_components
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - type_components
    - cli_errmsg
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t type_components(struct cli_bc *bc, uint16_t id, bool *ok)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:1000,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1006,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1011,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1014,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 7
    argNames:
    - bc
    - i
    - comp
    - buffer
    - offset
    - len
    - ok
    argTypes:
    - struct cli_bc*
    - unsigned
    - unsigned
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 1018
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1018
    functionName: readConstant
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - memset
    - readNumber
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: "void readConstant(struct cli_bc *bc, unsigned i, unsigned comp,\n
      \                        unsigned char *buffer, unsigned *offset,\n                         unsigned
      len, bool *ok)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1028,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1031,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1033,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1036,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1037,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1039,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1042,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1044,1
    - Dst: readTypeID
      Src: /src/clamav/libclamav/bytecode.c:1052,1
    - Dst: type_components
      Src: /src/clamav/libclamav/bytecode.c:1053,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:1056,1
    - Dst: readConstant
      Src: /src/clamav/libclamav/bytecode.c:1059,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1064,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - bc
    - buffer
    argTypes:
    - struct cli_bc*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1069
      start: 1021
    functionDepth: 4
    functionLinenumber: 1021
    functionLinenumberEnd: 1069
    functionName: parseGlobals
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - calloc
    - readTypeID
    - readNumber
    - type_components
    - cli_dbgmsg
    - malloc
    - readConstant
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseGlobals(struct cli_bc *bc, unsigned char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1078,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1080,1
    - Dst: cli_safer_realloc
      Src: /src/clamav/libclamav/bytecode.c:1085,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1093,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1097,1
    - Dst: readData
      Src: /src/clamav/libclamav/bytecode.c:1102,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1106,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1110,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1112,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1118,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - bc
    - buffer
    argTypes:
    - struct cli_bc*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1120
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1120
    functionName: parseMD
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - calloc
    - cli_errmsg
    - readNumber
    - readData
    - cli_dbgmsg
    - cli_safer_realloc
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseMD(struct cli_bc *bc, unsigned char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1129,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode.c:1134,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1137,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:1141,1
    - Dst: readTypeID
      Src: /src/clamav/libclamav/bytecode.c:1142,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1144,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1148,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1150,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1157,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1159,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1164,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:1165,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1169,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1173,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1177,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1179,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1185,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1187,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1190,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1192,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1195,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1197,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 72
    argCount: 3
    argNames:
    - bc
    - fn
    - buffer
    argTypes:
    - struct cli_bc*
    - unsigned
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1201
      start: 1122
    functionDepth: 3
    functionLinenumber: 1122
    functionLinenumberEnd: 1201
    functionName: parseFunctionHeader
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - calloc
    - strlen
    - readTypeID
    - readNumber
    - cli_errmsg
    - readFixedNumber
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseFunctionHeader(struct cli_bc *bc, unsigned fn, unsigned
      char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - func
    - buffer
    - 'off'
    - len
    - ok
    argTypes:
    - struct cli_bc_func*
    - unsigned char*
    - unsigned*
    - unsigned
    - bool*
    constantsTouched: []
    func_position:
      end: 1213
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1213
    functionName: readBBID
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: bbid_t
    signature: bbid_t readBBID(struct cli_bc_func *func, const unsigned char *buffer,
      unsigned *off, unsigned len, bool *ok)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bcfunc
    - op
    argTypes:
    - struct cli_bc_func*
    - operand_t
    constantsTouched: []
    func_position:
      end: 1227
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1227
    functionName: get_optype
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t get_optype(const struct cli_bc_func *bcfunc, operand_t op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1238,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode.c:1243,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1245,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:1255,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1264,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1265,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:1267,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1269,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1273,1
    - Dst: readBBID
      Src: /src/clamav/libclamav/bytecode.c:1279,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1282,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1283,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1286,1
    - Dst: readBBID
      Src: /src/clamav/libclamav/bytecode.c:1287,1
    - Dst: readBBID
      Src: /src/clamav/libclamav/bytecode.c:1288,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:1292,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1299,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1301,1
    - Dst: readFuncID
      Src: /src/clamav/libclamav/bytecode.c:1306,1
    - Dst: readAPIFuncID
      Src: /src/clamav/libclamav/bytecode.c:1308,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1310,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1317,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1335,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1336,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1337,1
    - Dst: readFixedNumber
      Src: /src/clamav/libclamav/bytecode.c:1340,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:1344,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1346,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1349,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1351,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1358,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1361,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1362,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1373,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1376,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1377,1
    - Dst: get_optype
      Src: /src/clamav/libclamav/bytecode.c:1379,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1392,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1400,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1403,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1404,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1407,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1408,1
    - Dst: readOperand
      Src: /src/clamav/libclamav/bytecode.c:1409,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1412,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1419,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1424,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1440,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1447,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1457,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1461,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:1464,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1466,1
    - Dst: readNumber
      Src: /src/clamav/libclamav/bytecode.c:1470,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1476,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 224
    argCount: 4
    argNames:
    - bc
    - func
    - bb
    - buffer
    argTypes:
    - struct cli_bc*
    - unsigned
    - unsigned
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1483
      start: 1229
    functionDepth: 4
    functionLinenumber: 1229
    functionLinenumberEnd: 1483
    functionName: parseBB
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - get_optype
    - memset
    - calloc
    - strlen
    - readNumber
    - readOperand
    - cli_dbgmsg
    - readFuncID
    - readBBID
    - malloc
    - readAPIFuncID
    - cli_errmsg
    - readFixedNumber
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parseBB(struct cli_bc *bc, unsigned func, unsigned bb, unsigned
      char *buffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1508
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1508
    functionName: sigelem_comp
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigelem_comp(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:1516,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:1520,1
    - Dst: cli_event_get
      Src: /src/clamav/libclamav/bytecode.c:1525,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1528,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode.c:1532,1
    - Dst: cli_event_get
      Src: /src/clamav/libclamav/bytecode.c:1540,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode.c:1545,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode.c:1546,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/bytecode.c:1548,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/bytecode.c:1552,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/bytecode.c:1554,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/bytecode.c:1557,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1510
    functionDepth: 3
    functionLinenumber: 1510
    functionLinenumberEnd: 1562
    functionName: cli_sigperf_print
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - memset
    - cli_warnmsg
    - strlen
    - cli_infomsg
    - cli_event_get
    - cli_qsort
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void cli_sigperf_print()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_events_new
      Src: /src/clamav/libclamav/bytecode.c:1570,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1573,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1578,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1584,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1589,1
    - Dst: cli_event_define
      Src: /src/clamav/libclamav/bytecode.c:1593,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1595,1
    - Dst: cli_event_define
      Src: /src/clamav/libclamav/bytecode.c:1602,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1604,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - bc
    argTypes:
    - struct cli_bc*
    constantsTouched: []
    func_position:
      end: 1608
      start: 1564
    functionDepth: 2
    functionLinenumber: 1564
    functionLinenumberEnd: 1608
    functionName: sigperf_events_init
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_events_new
    - cli_dbgmsg
    - cli_errmsg
    - cli_event_define
    linkageType: ''
    returnType: void
    signature: void sigperf_events_init(struct cli_bc *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1613
    functionName: cli_sigperf_events_destroy
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cli_events_free
    linkageType: ''
    returnType: void
    signature: void cli_sigperf_events_destroy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:1625,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1626,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1629,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/bytecode.c:1632,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1633,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/bytecode.c:1636,1
    - Dst: parseHeader
      Src: /src/clamav/libclamav/bytecode.c:1637,1
    - Dst: atoi
      Src: /src/clamav/libclamav/bytecode.c:1643,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1647,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1652,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:1655,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1657,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/bytecode.c:1660,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/bytecode.c:1661,1
    - Dst: parseLSig
      Src: /src/clamav/libclamav/bytecode.c:1665,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1674,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1675,1
    - Dst: parseTypes
      Src: /src/clamav/libclamav/bytecode.c:1682,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1684,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1685,1
    - Dst: parseApis
      Src: /src/clamav/libclamav/bytecode.c:1691,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1698,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1699,1
    - Dst: parseGlobals
      Src: /src/clamav/libclamav/bytecode.c:1705,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1712,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1713,1
    - Dst: parseMD
      Src: /src/clamav/libclamav/bytecode.c:1720,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1722,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1723,1
    - Dst: parseFunctionHeader
      Src: /src/clamav/libclamav/bytecode.c:1734,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1736,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1737,1
    - Dst: parseBB
      Src: /src/clamav/libclamav/bytecode.c:1744,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1746,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1747,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1752,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1754,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1757,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1773,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1774,1
    - Dst: sigperf_events_init
      Src: /src/clamav/libclamav/bytecode.c:1776,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1778,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 146
    argCount: 5
    argNames:
    - bc
    - f
    - dbio
    - trust
    - sigperf
    argTypes:
    - struct cli_bc*
    - FILE*
    - struct cli_dbio*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1783
      start: 1615
    functionDepth: 5
    functionLinenumber: 1615
    functionLinenumberEnd: 1783
    functionName: cli_bytecode_load
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cli_chomp
    - memset
    - parseFunctionHeader
    - cli_dbgets
    - parseLSig
    - parseTypes
    - parseGlobals
    - parseBB
    - parseApis
    - sigperf_events_init
    - cli_dbgmsg
    - parseHeader
    - free
    - malloc
    - parseMD
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_load(struct cli_bc *bc, FILE *f, struct cli_dbio
      *dbio, int trust, int sigperf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_define
      Src: /src/clamav/libclamav/bytecode.c:1811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ev
    argTypes:
    - cli_events_t*
    constantsTouched: []
    func_position:
      end: 1816
      start: 1807
    functionDepth: 2
    functionLinenumber: 1807
    functionLinenumberEnd: 1816
    functionName: register_events
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_event_define
    linkageType: ''
    returnType: int
    signature: int register_events(cli_events_t *ev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:1837,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1841,1
    - Dst: cli_event_time_start
      Src: /src/clamav/libclamav/bytecode.c:1845,1
    - Dst: context_safe
      Src: /src/clamav/libclamav/bytecode.c:1847,1
    - Dst: cli_events_new
      Src: /src/clamav/libclamav/bytecode.c:1849,1
    - Dst: cli_events_new
      Src: /src/clamav/libclamav/bytecode.c:1850,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1852,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1853,1
    - Dst: register_events
      Src: /src/clamav/libclamav/bytecode.c:1856,1
    - Dst: register_events
      Src: /src/clamav/libclamav/bytecode.c:1857,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1858,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1859,1
    - Dst: cli_event_time_start
      Src: /src/clamav/libclamav/bytecode.c:1863,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:1866,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:1871,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1881,1
    - Dst: cli_event_time_start
      Src: /src/clamav/libclamav/bytecode.c:1885,1
    - Dst: cli_vm_execute
      Src: /src/clamav/libclamav/bytecode.c:1886,1
    - Dst: cli_event_time_stop
      Src: /src/clamav/libclamav/bytecode.c:1887,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode.c:1889,1
    - Dst: cli_event_string
      Src: /src/clamav/libclamav/bytecode.c:1890,1
    - Dst: cli_bcapi_extract_new
      Src: /src/clamav/libclamav/bytecode.c:1894,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:1901,1
    - Dst: cli_event_time_start
      Src: /src/clamav/libclamav/bytecode.c:1904,1
    - Dst: cli_vm_execute_jit
      Src: /src/clamav/libclamav/bytecode.c:1905,1
    - Dst: cli_event_time_stop
      Src: /src/clamav/libclamav/bytecode.c:1906,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/bytecode.c:1908,1
    - Dst: cli_event_string
      Src: /src/clamav/libclamav/bytecode.c:1909,1
    - Dst: cli_bcapi_extract_new
      Src: /src/clamav/libclamav/bytecode.c:1913,1
    - Dst: cli_event_time_stop
      Src: /src/clamav/libclamav/bytecode.c:1915,1
    - Dst: cli_event_count
      Src: /src/clamav/libclamav/bytecode.c:1917,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/bytecode.c:1927,1
    - Dst: cli_event_diff_all
      Src: /src/clamav/libclamav/bytecode.c:1931,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/bytecode.c:1932,1
    - Dst: cli_event_get
      Src: /src/clamav/libclamav/bytecode.c:1939,1
    - Dst: cli_event_get
      Src: /src/clamav/libclamav/bytecode.c:1942,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/bytecode.c:1946,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1954,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1955,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1959,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/bytecode.c:1960,1
    - Dst: cli_event_time_stop
      Src: /src/clamav/libclamav/bytecode.c:1962,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 109
    argCount: 3
    argNames:
    - bcs
    - bc
    - ctx
    argTypes:
    - struct cli_all_bc*
    - struct cli_bc*
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1964
      start: 1818
    functionDepth: 6
    functionLinenumber: 1818
    functionLinenumberEnd: 1964
    functionName: cli_bytecode_run
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cli_event_diff_all
    - cli_events_new
    - cli_vm_execute_jit
    - memset
    - cli_bcapi_extract_new
    - cli_event_count
    - cli_event_int
    - cli_events_free
    - cli_infomsg
    - cli_event_get
    - cli_vm_execute
    - register_events
    - cli_dbgmsg
    - cli_event_time_start
    - cli_event_time_stop
    - cli_event_string
    - context_safe
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_run(const struct cli_all_bc *bcs, const struct
      cli_bc *bc, struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 1969
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1969
    functionName: cli_bytecode_context_getresult_int
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cli_bytecode_context_getresult_int(struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1974,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1975,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1982,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1990,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1991,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1995,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1996,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1997,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:1999,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2004,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2006,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2011,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2013,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2020,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2023,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2025,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/bytecode.c:2027,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2028,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2029,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2030,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:2031,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 1
    argNames:
    - bc
    argTypes:
    - struct cli_bc*
    constantsTouched: []
    func_position:
      end: 2032
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 2032
    functionName: cli_bytecode_destroy
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - memset
    - free
    - cli_bitset_free
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_destroy(struct cli_bc *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - offset
    argTypes:
    - int32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2070
      start: 2066
    functionDepth: 0
    functionLinenumber: 2066
    functionLinenumberEnd: 2070
    functionName: ptr_compose
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t ptr_compose(int32_t id, uint32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2076,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2080,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2085,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:2088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - bc
    - tid
    argTypes:
    - struct cli_bc*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2089
      start: 2072
    functionDepth: 3
    functionLinenumber: 2072
    functionLinenumberEnd: 2089
    functionName: get_geptypesize
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - typesize
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int get_geptypesize(const struct cli_bc *bc, uint16_t tid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2097,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2101,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2106,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2114,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:2118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - bc
    - func
    - tid
    - op
    argTypes:
    - struct cli_bc*
    - struct cli_bc_func*
    - uint16_t
    - operand_t
    constantsTouched: []
    func_position:
      end: 2122
      start: 2091
    functionDepth: 3
    functionLinenumber: 2091
    functionLinenumberEnd: 2122
    functionName: calc_gepz
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - typesize
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int calc_gepz(struct cli_bc *bc, struct cli_bc_func *func, uint16_t
      tid, operand_t op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:2131,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2133,1
    - Dst: assert
      Src: /src/clamav/libclamav/bytecode.c:2139,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:2142,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2145,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2147,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2148,1
    - Dst: ptr_compose
      Src: /src/clamav/libclamav/bytecode.c:2163,1
    - Dst: ptr_compose
      Src: /src/clamav/libclamav/bytecode.c:2168,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:2177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2196,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2213,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2214,1
    - Dst: typealign
      Src: /src/clamav/libclamav/bytecode.c:2221,1
    - Dst: assert
      Src: /src/clamav/libclamav/bytecode.c:2222,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:2222,1
    - Dst: assert
      Src: /src/clamav/libclamav/bytecode.c:2223,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:2227,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2264,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2265,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2270,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2273,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2278,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2281,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2282,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2283,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2291,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2294,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2300,1
    - Dst: malloc
      Src: /src/clamav/libclamav/bytecode.c:2307,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2309,1
    - Dst: MAPPTR
      Src: /src/clamav/libclamav/bytecode.c:2318,1
    - Dst: typesize
      Src: /src/clamav/libclamav/bytecode.c:2320,1
    - Dst: MAPPTR
      Src: /src/clamav/libclamav/bytecode.c:2327,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2332,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2337,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2338,1
    - Dst: get_geptypesize
      Src: /src/clamav/libclamav/bytecode.c:2339,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2350,1
    - Dst: calc_gepz
      Src: /src/clamav/libclamav/bytecode.c:2351,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2354,1
    - Dst: MAPPTR
      Src: /src/clamav/libclamav/bytecode.c:2363,1
    - Dst: MAPPTR
      Src: /src/clamav/libclamav/bytecode.c:2364,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2365,1
    - Dst: MAP
      Src: /src/clamav/libclamav/bytecode.c:2375,1
    - Dst: MAPPTR
      Src: /src/clamav/libclamav/bytecode.c:2378,1
    - Dst: MAPPTR
      Src: /src/clamav/libclamav/bytecode.c:2379,1
    - Dst: MAPPTR
      Src: /src/clamav/libclamav/bytecode.c:2382,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:2385,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2390,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2392,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 237
    argCount: 1
    argNames:
    - bc
    argTypes:
    - struct cli_bc*
    constantsTouched: []
    func_position:
      end: 2395
      start: 2124
    functionDepth: 4
    functionLinenumber: 2124
    functionLinenumberEnd: 2395
    functionName: cli_bytecode_prepare_interpreter
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - ptr_compose
    - MAP
    - calloc
    - cli_warnmsg
    - typesize
    - calc_gepz
    - cli_dbgmsg
    - typealign
    - MAPPTR
    - free
    - malloc
    - assert
    - cli_errmsg
    - get_geptypesize
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_prepare_interpreter(struct cli_bc *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_realloc_or_free
      Src: /src/clamav/libclamav/bytecode.c:2403,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2405,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:2409,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2413,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2415,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2418,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2420,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2423,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2425,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2434,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2436,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2446,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2448,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2452,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2454,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2457,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2459,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2464,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2466,1
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2475,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2477,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 1
    argNames:
    - bcs
    argTypes:
    - struct cli_all_bc*
    constantsTouched: []
    func_position:
      end: 2494
      start: 2397
    functionDepth: 3
    functionLinenumber: 2397
    functionLinenumberEnd: 2494
    functionName: add_selfcheck
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - calloc
    - cli_safer_realloc_or_free
    - memset
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t add_selfcheck(struct cli_all_bc *bcs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2502,1
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/libclamav/bytecode.c:2505,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2507,1
    - Dst: cli_bytecode_context_setfuncid
      Src: /src/clamav/libclamav/bytecode.c:2510,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2512,1
    - Dst: cli_bytecode_run
      Src: /src/clamav/libclamav/bytecode.c:2514,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/bytecode.c:2515,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2517,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/bytecode.c:2518,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - bcs
    argTypes:
    - struct cli_all_bc*
    constantsTouched: []
    func_position:
      end: 2523
      start: 2496
    functionDepth: 7
    functionLinenumber: 2496
    functionLinenumberEnd: 2523
    functionName: run_selfcheck
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - cli_bytecode_run
    - cli_bytecode_context_destroy
    - cli_dbgmsg
    - cli_bytecode_context_alloc
    - cli_bytecode_context_setfuncid
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t run_selfcheck(struct cli_all_bc *bcs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:2530,1
    - Dst: add_selfcheck
      Src: /src/clamav/libclamav/bytecode.c:2534,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2538,1
    - Dst: cli_bytecode_prepare_jit
      Src: /src/clamav/libclamav/bytecode.c:2541,1
    - Dst: cli_bytecode_prepare_interpreter
      Src: /src/clamav/libclamav/bytecode.c:2544,1
    - Dst: run_selfcheck
      Src: /src/clamav/libclamav/bytecode.c:2547,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/libclamav/bytecode.c:2551,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2552,1
    - Dst: cli_bytecode_done_jit
      Src: /src/clamav/libclamav/bytecode.c:2553,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2555,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/bytecode.c:2556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - jit
    - engine
    argTypes:
    - bool
    - struct cli_bcengine*
    constantsTouched: []
    func_position:
      end: 2559
      start: 2525
    functionDepth: 8
    functionLinenumber: 2525
    functionLinenumberEnd: 2559
    functionName: selfcheck
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cl_strerror
    - memset
    - run_selfcheck
    - cli_errmsg
    - cli_bytecode_prepare_interpreter
    - cli_bytecode_done_jit
    - add_selfcheck
    - cli_dbgmsg
    - cli_bytecode_destroy
    - free
    - cli_bytecode_prepare_jit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t selfcheck(bool jit, struct cli_bcengine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2566,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2569,1
    - Dst: have_clamjit
      Src: /src/clamav/libclamav/bytecode.c:2571,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2572,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - engine
    - mode
    argTypes:
    - struct cl_engine*
    - enum bytecode_mode
    constantsTouched: []
    func_position:
      end: 2585
      start: 2561
    functionDepth: 2
    functionLinenumber: 2561
    functionLinenumberEnd: 2585
    functionName: set_mode
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - cli_errmsg
    - have_clamjit
    linkageType: ''
    returnType: int
    signature: int set_mode(struct cl_engine *engine, enum bytecode_mode mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/bytecode.c:2604,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2606,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:2611,1
    - Dst: strlen
      Src: /src/clamav/libclamav/bytecode.c:2614,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2616,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2617,1
    - Dst: cli_bytecode_load
      Src: /src/clamav/libclamav/bytecode.c:2621,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2623,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2624,1
    - Dst: cli_bytecode_prepare_interpreter
      Src: /src/clamav/libclamav/bytecode.c:2628,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2630,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/bytecode.c:2631,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2634,1
    - Dst: cli_bytecode_context_setfuncid
      Src: /src/clamav/libclamav/bytecode.c:2639,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2640,1
    - Dst: cli_bytecode_run
      Src: /src/clamav/libclamav/bytecode.c:2642,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2645,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/bytecode.c:2646,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/libclamav/bytecode.c:2649,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2650,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 5
    argNames:
    - bcs
    - kind
    - builtin_cbc
    - ctx
    - desc
    argTypes:
    - struct cli_all_bc*
    - uint8_t
    - char*
    - struct cli_bc_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 2653
      start: 2589
    functionDepth: 7
    functionLinenumber: 2589
    functionLinenumberEnd: 2653
    functionName: run_builtin_or_loaded
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - cli_bytecode_run
    - memset
    - calloc
    - strlen
    - cli_bytecode_load
    - cli_bytecode_prepare_interpreter
    - cli_dbgmsg
    - cli_bytecode_destroy
    - free
    - cli_bytecode_context_setfuncid
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t run_builtin_or_loaded(struct cli_all_bc *bcs, uint8_t kind,
      const char *builtin_cbc, struct cli_bc_ctx *ctx, const char *desc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2662,1
    - Dst: cli_detect_environment
      Src: /src/clamav/libclamav/bytecode.c:2667,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2672,1
    - Dst: set_mode
      Src: /src/clamav/libclamav/bytecode.c:2673,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2680,1
    - Dst: set_mode
      Src: /src/clamav/libclamav/bytecode.c:2681,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2687,1
    - Dst: set_mode
      Src: /src/clamav/libclamav/bytecode.c:2688,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2693,1
    - Dst: set_mode
      Src: /src/clamav/libclamav/bytecode.c:2694,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2698,1
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/libclamav/bytecode.c:2700,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2702,1
    - Dst: run_builtin_or_loaded
      Src: /src/clamav/libclamav/bytecode.c:2705,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:2707,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2712,1
    - Dst: cli_bytecode_context_getresult_int
      Src: /src/clamav/libclamav/bytecode.c:2713,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:2717,1
    - Dst: set_mode
      Src: /src/clamav/libclamav/bytecode.c:2725,1
    - Dst: set_mode
      Src: /src/clamav/libclamav/bytecode.c:2729,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/libclamav/bytecode.c:2735,1
    - Dst: selfcheck
      Src: /src/clamav/libclamav/bytecode.c:2739,1
    - Dst: cli_bytecode_prepare_jit
      Src: /src/clamav/libclamav/bytecode.c:2740,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2742,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2747,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/bytecode.c:2751,1
    - Dst: cli_bytecode_done_jit
      Src: /src/clamav/libclamav/bytecode.c:2755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2759,1
    - Dst: set_mode
      Src: /src/clamav/libclamav/bytecode.c:2760,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2767,1
    - Dst: cli_bytecode_prepare_interpreter
      Src: /src/clamav/libclamav/bytecode.c:2782,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:2785,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2790,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 119
    argCount: 3
    argNames:
    - engine
    - bcs
    - dconfmask
    argTypes:
    - struct cl_engine*
    - struct cli_all_bc*
    - unsigned
    constantsTouched: []
    func_position:
      end: 2794
      start: 2655
    functionDepth: 9
    functionLinenumber: 2655
    functionLinenumberEnd: 2794
    functionName: cli_bytecode_prepare2
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 2
    functionsReached:
    - cli_bytecode_context_alloc
    - cli_bytecode_context_destroy
    - cli_warnmsg
    - cli_bytecode_prepare_interpreter
    - set_mode
    - selfcheck
    - cli_bytecode_done_jit
    - cli_dbgmsg
    - cli_bytecode_context_getresult_int
    - cli_detect_environment
    - run_builtin_or_loaded
    - cli_errmsg
    - cli_bytecode_prepare_jit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_prepare2(struct cl_engine *engine, struct cli_all_bc
      *bcs, unsigned dconfmask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:2799,1
    - Dst: cli_bytecode_init_jit
      Src: /src/clamav/libclamav/bytecode.c:2800,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - allbc
    argTypes:
    - struct cli_all_bc*
    constantsTouched: []
    func_position:
      end: 2805
      start: 2796
    functionDepth: 2
    functionLinenumber: 2796
    functionLinenumberEnd: 2805
    functionName: cli_bytecode_init
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cli_bytecode_init_jit
    - memset
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_init(struct cli_all_bc *allbc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_bytecode_done_jit
      Src: /src/clamav/libclamav/bytecode.c:2809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allbc
    argTypes:
    - struct cli_all_bc*
    constantsTouched: []
    func_position:
      end: 2810
      start: 2807
    functionDepth: 0
    functionLinenumber: 2807
    functionLinenumberEnd: 2810
    functionName: cli_bytecode_done
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cli_bytecode_done_jit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_done(struct cli_all_bc *allbc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - map
    argTypes:
    - struct cli_bc_ctx*
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 2818
      start: 2812
    functionDepth: 0
    functionLinenumber: 2812
    functionLinenumberEnd: 2818
    functionName: cli_bytecode_context_setfile
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_context_setfile(struct cli_bc_ctx *ctx, fmap_t
      *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytecode_context_initialize
      Src: /src/clamav/libclamav/bytecode.c:2840,1
    - Dst: cli_bytecode_context_setfuncid
      Src: /src/clamav/libclamav/bytecode.c:2841,1
    - Dst: cli_bytecode_context_setctx
      Src: /src/clamav/libclamav/bytecode.c:2844,1
    - Dst: cli_bytecode_context_setfile
      Src: /src/clamav/libclamav/bytecode.c:2845,1
    - Dst: memset
      Src: /src/clamav/libclamav/bytecode.c:2848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2857,1
    - Dst: cli_bitset_set
      Src: /src/clamav/libclamav/bytecode.c:2861,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/bytecode.c:2863,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/bytecode.c:2864,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2865,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2869,1
    - Dst: cli_bytecode_run
      Src: /src/clamav/libclamav/bytecode.c:2870,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:2872,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/bytecode.c:2872,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2873,1
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/bytecode.c:2875,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2876,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2884,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/bytecode.c:2886,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2888,1
    - Dst: cli_bytecode_context_getresult_int
      Src: /src/clamav/libclamav/bytecode.c:2891,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2892,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2893,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 7
    argNames:
    - cctx
    - tinfo
    - bcs
    - bc_idx
    - lsigcnt
    - lsigsuboff
    - map
    argTypes:
    - cli_ctx*
    - struct cli_target_info*
    - struct cli_all_bc*
    - unsigned
    - uint32_t*
    - uint32_t*
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 2895
      start: 2820
    functionDepth: 7
    functionLinenumber: 2820
    functionLinenumberEnd: 2895
    functionName: cli_bytecode_runlsig
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cl_strerror
    - bytecode_context_reset
    - memset
    - cli_bytecode_run
    - cli_append_virus
    - bytecode_context_initialize
    - cli_bytecode_context_setctx
    - cli_warnmsg
    - cli_checktimelimit
    - cli_dbgmsg
    - cli_bitset_set
    - cli_bytecode_context_getresult_int
    - memcpy
    - cli_bytecode_context_setfile
    - cli_bytecode_context_setfuncid
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_bytecode_runlsig(cli_ctx *cctx, struct cli_target_info
      *tinfo,\n                                const struct cli_all_bc *bcs, unsigned
      bc_idx,\n                                const uint32_t *lsigcnt,\n                                const
      uint32_t *lsigsuboff, fmap_t *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2908,1
    - Dst: cli_bytecode_context_setfile
      Src: /src/clamav/libclamav/bytecode.c:2910,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/bytecode.c:2917,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2919,1
    - Dst: cli_bytecode_context_setfuncid
      Src: /src/clamav/libclamav/bytecode.c:2921,1
    - Dst: cli_bytecode_run
      Src: /src/clamav/libclamav/bytecode.c:2922,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/bytecode.c:2925,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/bytecode.c:2925,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2930,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/bytecode.c:2932,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/bytecode.c:2933,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/bytecode.c:2935,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2938,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2941,1
    - Dst: cli_bytecode_context_getresult_int
      Src: /src/clamav/libclamav/bytecode.c:2944,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2946,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2948,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2957,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2960,1
    - Dst: lseek
      Src: /src/clamav/libclamav/bytecode.c:2963,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2964,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/bytecode.c:2966,1
    - Dst: ftruncate
      Src: /src/clamav/libclamav/bytecode.c:2969,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2970,1
    - Dst: close
      Src: /src/clamav/libclamav/bytecode.c:2974,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/bytecode.c:2977,1
    - Dst: free
      Src: /src/clamav/libclamav/bytecode.c:2982,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2985,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/bytecode.c:2985,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2986,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2990,1
    - Dst: bytecode_context_reset
      Src: /src/clamav/libclamav/bytecode.c:2994,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2997,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/bytecode.c:2999,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 5
    argNames:
    - cctx
    - engine
    - ctx
    - id
    - map
    argTypes:
    - cli_ctx*
    - struct cl_engine*
    - struct cli_bc_ctx*
    - unsigned
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 3005
      start: 2897
    functionDepth: 7
    functionLinenumber: 2897
    functionLinenumberEnd: 3005
    functionName: cli_bytecode_runhook
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 4
    functionsReached:
    - cl_strerror
    - cli_bytecode_run
    - bytecode_context_reset
    - lseek
    - cli_append_virus
    - cli_magic_scan_desc
    - ftruncate
    - cli_warnmsg
    - close
    - cli_append_potentially_unwanted
    - cli_bitset_test
    - cli_unlink
    - cli_dbgmsg
    - cli_bytecode_context_getresult_int
    - cli_bytecode_context_setfile
    - cli_bytecode_context_setfuncid
    - free
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_bytecode_runhook(cli_ctx *cctx, const struct cl_engine
      *engine, struct cli_bc_ctx *ctx,\n                                unsigned id,
      fmap_t *map)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - sections
    argTypes:
    - struct cli_bc_ctx*
    - struct cli_pe_hook_data*
    - struct cli_exe_section*
    constantsTouched: []
    func_position:
      end: 3012
      start: 3007
    functionDepth: 0
    functionLinenumber: 3007
    functionLinenumberEnd: 3012
    functionName: cli_bytecode_context_setpe
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_context_setpe(struct cli_bc_ctx *ctx, const
      struct cli_pe_hook_data *data, const struct cli_exe_section *sections)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - ctx
    - phase
    - nobjs
    - objs
    - pdf_flags
    - pdfsize
    - pdfstartoff
    argTypes:
    - struct cli_bc_ctx*
    - unsigned
    - unsigned
    - struct pdf_obj**
    - uint32_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3026
      start: 3014
    functionDepth: 0
    functionLinenumber: 3014
    functionLinenumberEnd: 3026
    functionName: cli_bytecode_context_setpdf
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_bytecode_context_setpdf(struct cli_bc_ctx *ctx, unsigned
      phase,\n                                       unsigned nobjs,\n                                       struct
      pdf_obj **objs, uint32_t *pdf_flags,\n                                       uint32_t
      pdfsize, uint32_t pdfstartoff)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cctx
    argTypes:
    - struct cli_bc_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 3032
      start: 3028
    functionDepth: 0
    functionLinenumber: 3028
    functionLinenumberEnd: 3032
    functionName: cli_bytecode_context_setctx
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_context_setctx(struct cli_bc_ctx *ctx, void *cctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3043,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3048,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3049,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3051,1
    - Dst: cli_ctime
      Src: /src/clamav/libclamav/bytecode.c:3053,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3054,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3057,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3058,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3061,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3064,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3067,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3070,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3073,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3076,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3079,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3082,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3085,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3089,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3091,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3093,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3095,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3096,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3099,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3102,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3106,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3108,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3111,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3115,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3117,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3121,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3123,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3127,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3129,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3133,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3135,1
    - Dst: puts
      Src: /src/clamav/libclamav/bytecode.c:3138,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3141,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3143,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3144,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3145,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/bytecode.c:3149,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3152,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3154,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3157,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3162,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 105
    argCount: 1
    argNames:
    - bc
    argTypes:
    - struct cli_bc*
    constantsTouched: []
    func_position:
      end: 3163
      start: 3034
    functionDepth: 3
    functionLinenumber: 3034
    functionLinenumberEnd: 3163
    functionName: cli_bytecode_describe
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_ctime
    - puts
    - cli_bitset_test
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_describe(const struct cli_bc *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3237,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3242,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3248,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3255,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3256,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3258,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3259,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3261,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3264,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3265,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3269,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3271,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3272,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3274,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3277,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3278,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3279,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3280,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3283,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 2
    argNames:
    - bc
    - tid
    argTypes:
    - struct cli_bc*
    - unsigned
    constantsTouched: []
    func_position:
      end: 3286
      start: 3231
    functionDepth: 1
    functionLinenumber: 3231
    functionLinenumberEnd: 3286
    functionName: cli_bytetype_helper
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 1
    functionsReached:
    - cli_bytetype_helper
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_bytetype_helper(const struct cli_bc *bc, unsigned tid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3292,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3295,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3296,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3298,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3299,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3300,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bc
    argTypes:
    - struct cli_bc*
    constantsTouched: []
    func_position:
      end: 3303
      start: 3288
    functionDepth: 2
    functionLinenumber: 3288
    functionLinenumberEnd: 3303
    functionName: cli_bytetype_describe
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_bytetype_helper
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_bytetype_describe(const struct cli_bc *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3311,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3316,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3317,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3318,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3320,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3321,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3322,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3324,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3328,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3330,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3331,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3333,1
    - Dst: cli_bytetype_helper
      Src: /src/clamav/libclamav/bytecode.c:3334,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3336,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3337,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3339,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3342,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3343,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3344,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3346,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3348,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3349,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - bc
    - funcid
    argTypes:
    - struct cli_bc*
    - unsigned
    constantsTouched: []
    func_position:
      end: 3352
      start: 3305
    functionDepth: 2
    functionLinenumber: 3305
    functionLinenumberEnd: 3352
    functionName: cli_bytevalue_describe
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_bytetype_helper
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_bytevalue_describe(const struct cli_bc *bc, unsigned funcid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3361,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/bytecode.c:3366,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3368,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3372,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3375,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3378,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3381,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3384,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3387,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3390,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3393,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3396,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3399,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3402,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3405,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3408,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3413,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3416,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3419,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3424,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3429,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3433,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3437,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3443,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3446,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3449,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3452,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3455,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3458,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3461,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3464,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3467,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3470,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3473,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3479,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3482,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3484,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3487,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3491,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3497,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3501,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3505,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3509,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3513,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3518,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3522,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3526,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3531,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3536,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3541,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3548,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3551,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3555,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3559,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3562,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3565,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3570,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3574,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3578,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3582,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3588,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3591,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3594,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3597,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3600,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3603,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3606,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3609,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3614,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 217
    argCount: 2
    argNames:
    - inst
    - bbnum
    argTypes:
    - struct cli_bc_inst*
    - unsigned*
    constantsTouched: []
    func_position:
      end: 3618
      start: 3354
    functionDepth: 1
    functionLinenumber: 3354
    functionLinenumberEnd: 3618
    functionName: cli_byteinst_describe
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - snprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_byteinst_describe(const struct cli_bc_inst *inst, unsigned
      *bbnum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3626,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3633,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3634,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3635,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3640,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3644,1
    - Dst: cli_byteinst_describe
      Src: /src/clamav/libclamav/bytecode.c:3645,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3646,1
    - Dst: printf
      Src: /src/clamav/libclamav/bytecode.c:3648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - bc
    - funcid
    argTypes:
    - struct cli_bc*
    - unsigned
    constantsTouched: []
    func_position:
      end: 3649
      start: 3620
    functionDepth: 2
    functionLinenumber: 3620
    functionLinenumberEnd: 3649
    functionName: cli_bytefunc_describe
    functionSourceFile: /src/clamav/libclamav/bytecode.c
    functionUses: 0
    functionsReached:
    - cli_byteinst_describe
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_bytefunc_describe(const struct cli_bc *bc, unsigned funcid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:75,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:79,1
    - Dst: host32
      Src: /src/clamav/libclamav/tnef.c:85,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:89,1
    - Dst: tnef_header
      Src: /src/clamav/libclamav/tnef.c:104,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/tnef.c:114,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/tnef.c:122,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:131,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/tnef.c:133,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/tnef.c:136,1
    - Dst: tnef_message
      Src: /src/clamav/libclamav/tnef.c:137,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:138,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:144,1
    - Dst: tnef_attachment
      Src: /src/clamav/libclamav/tnef.c:145,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:146,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/tnef.c:154,1
    - Dst: open
      Src: /src/clamav/libclamav/tnef.c:166,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/tnef.c:171,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:174,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/tnef.c:176,1
    - Dst: close
      Src: /src/clamav/libclamav/tnef.c:178,1
    - Dst: free
      Src: /src/clamav/libclamav/tnef.c:180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:189,1
    - Dst: fileblobGetFilename
      Src: /src/clamav/libclamav/tnef.c:190,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:191,1
    - Dst: fileblobSetFilename
      Src: /src/clamav/libclamav/tnef.c:192,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/tnef.c:194,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:198,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 98
    argCount: 2
    argNames:
    - dir
    - ctx
    argTypes:
    - char*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 200
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 200
    functionName: cli_tnef
    functionSourceFile: /src/clamav/libclamav/tnef.c
    functionUses: 0
    functionsReached:
    - close
    - tnef_message
    - fileblobCreate
    - cli_warnmsg
    - fileblobSetFilename
    - open
    - fmap_readn
    - host32
    - cli_dbgmsg
    - tnef_attachment
    - fileblobGetFilename
    - fileblobDestroy
    - tnef_header
    - cli_writen
    - free
    linkageType: ''
    returnType: int
    signature: int cli_tnef(const char *dir, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/tnef.c:210,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:213,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/tnef.c:223,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:228,1
    - Dst: host32
      Src: /src/clamav/libclamav/tnef.c:231,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:232,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:237,1
    - Dst: host32
      Src: /src/clamav/libclamav/tnef.c:240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:241,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/tnef.c:249,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/tnef.c:251,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:254,1
    - Dst: free
      Src: /src/clamav/libclamav/tnef.c:255,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:260,1
    - Dst: free
      Src: /src/clamav/libclamav/tnef.c:261,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:264,1
    - Dst: CLI_ISCONTAINED_2_0_TO
      Src: /src/clamav/libclamav/tnef.c:271,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:272,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 6
    argNames:
    - map
    - pos
    - type
    - tag
    - length
    - fsize
    argTypes:
    - fmap_t*
    - off_t*
    - uint16_t
    - uint16_t
    - int32_t
    - off_t
    constantsTouched: []
    func_position:
      end: 281
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 281
    functionName: tnef_message
    functionSourceFile: /src/clamav/libclamav/tnef.c
    functionUses: 1
    functionsReached:
    - UNUSEDPARAM
    - cli_warnmsg
    - CLI_ISCONTAINED_2_0_TO
    - fmap_readn
    - cli_max_malloc
    - host32
    - cli_dbgmsg
    - free
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int tnef_message(fmap_t *map, off_t *pos, uint16_t type, uint16_t tag,
      int32_t length, off_t fsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:290,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/tnef.c:299,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/tnef.c:301,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:304,1
    - Dst: free
      Src: /src/clamav/libclamav/tnef.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:310,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/tnef.c:312,1
    - Dst: free
      Src: /src/clamav/libclamav/tnef.c:314,1
    - Dst: fileblobSetFilename
      Src: /src/clamav/libclamav/tnef.c:318,1
    - Dst: free
      Src: /src/clamav/libclamav/tnef.c:319,1
    - Dst: fileblobCreate
      Src: /src/clamav/libclamav/tnef.c:323,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/tnef.c:335,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:340,1
    - Dst: CLI_ISCONTAINED_2_0_TO
      Src: /src/clamav/libclamav/tnef.c:347,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:348,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 8
    argNames:
    - map
    - pos
    - type
    - tag
    - length
    - dir
    - fbref
    - fsize
    argTypes:
    - fmap_t*
    - off_t*
    - uint16_t
    - uint16_t
    - int32_t
    - char*
    - fileblob**
    - off_t
    constantsTouched: []
    func_position:
      end: 356
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 356
    functionName: tnef_attachment
    functionSourceFile: /src/clamav/libclamav/tnef.c
    functionUses: 1
    functionsReached:
    - fileblobCreate
    - fileblobAddData
    - fileblobSetFilename
    - CLI_ISCONTAINED_2_0_TO
    - fmap_readn
    - cli_max_malloc
    - cli_dbgmsg
    - free
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int tnef_attachment(fmap_t *map, off_t *pos, uint16_t type, uint16_t
      tag, int32_t length, const char *dir, fileblob **fbref, off_t fsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:364,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:371,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:379,1
    - Dst: host32
      Src: /src/clamav/libclamav/tnef.c:386,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/tnef.c:390,1
    - Dst: host32
      Src: /src/clamav/libclamav/tnef.c:393,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/tnef.c:395,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - map
    - pos
    - part
    - type
    - tag
    - length
    argTypes:
    - fmap_t*
    - off_t*
    - uint8_t*
    - uint16_t*
    - uint16_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 399
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 399
    functionName: tnef_header
    functionSourceFile: /src/clamav/libclamav/tnef.c
    functionUses: 1
    functionsReached:
    - host32
    - cli_dbgmsg
    - fmap_readn
    linkageType: ''
    returnType: int
    signature: int tnef_header(fmap_t *map, off_t *pos, uint8_t *part, uint16_t *type,
      uint16_t *tag, int32_t *length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:3806,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:3810,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:3811,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3813,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3814,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3815,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3816,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - data
    - data_len
    - unpacked_header
    argTypes:
    - unsigned char*
    - size_t
    - struct OfficeArtRecordHeader_Unpacked*
    constantsTouched: []
    func_position:
      end: 3823
      start: 3790
    functionDepth: 2
    functionLinenumber: 3790
    functionLinenumberEnd: 3823
    functionName: read_office_art_record_header
    functionSourceFile: /src/clamav/libclamav/xlm_extract.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - le16_to_host
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t read_office_art_record_header(const unsigned char *data,
      size_t data_len, struct OfficeArtRecordHeader_Unpacked *unpacked_header)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - index
    argTypes:
    - unsigned
    constantsTouched: []
    func_position:
      end: 3835
      start: 3825
    functionDepth: 0
    functionLinenumber: 3825
    functionLinenumberEnd: 3835
    functionName: get_function_name
    functionSourceFile: /src/clamav/libclamav/xlm_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_function_name(unsigned index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:3848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3873,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/xlm_extract.c:3885,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/xlm_extract.c:3887,1
    - Dst: free
      Src: /src/clamav/libclamav/xlm_extract.c:3888,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3890,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3895,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:3896,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3898,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/xlm_extract.c:3909,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3911,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3917,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3923,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3931,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:3937,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3939,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3950,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:3954,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3956,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3964,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:3968,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3970,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3980,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:3987,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:3989,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4000,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4007,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4014,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4026,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4032,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4034,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4043,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4049,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4051,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4060,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4064,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4066,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4075,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4081,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4083,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4093,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4100,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4108,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4116,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4125,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4137,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4147,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4162,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4171,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4182,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4191,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4193,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 301
    argCount: 3
    argNames:
    - out_file
    - data
    - data_size
    argTypes:
    - FILE*
    - char[]
    - unsigned
    constantsTouched: []
    func_position:
      end: 4203
      start: 3837
    functionDepth: 4
    functionLinenumber: 3837
    functionLinenumberEnd: 4203
    functionName: parse_formula
    functionSourceFile: /src/clamav/libclamav/xlm_extract.c
    functionUses: 0
    functionsReached:
    - cli_codepage_to_utf8
    - fwrite
    - fprintf
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parse_formula(FILE *out_file, char data[], unsigned data_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4228,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4239,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4245,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4251,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4257,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4276,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4282,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4288,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4294,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4300,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4306,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4312,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4318,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4323,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4326,1
    - Dst: MIN
      Src: /src/clamav/libclamav/xlm_extract.c:4330,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4332,1
    - Dst: cli_gentempfd_with_prefix
      Src: /src/clamav/libclamav/xlm_extract.c:4336,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4341,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/xlm_extract.c:4346,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4347,1
    - Dst: cli_magic_scan_desc_type
      Src: /src/clamav/libclamav/xlm_extract.c:4352,1
    - Dst: cli_magic_scan_buff
      Src: /src/clamav/libclamav/xlm_extract.c:4356,1
    - Dst: close
      Src: /src/clamav/libclamav/xlm_extract.c:4375,1
    - Dst: free
      Src: /src/clamav/libclamav/xlm_extract.c:4378,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 149
    argCount: 4
    argNames:
    - rh
    - index
    - remaining
    - ctx
    argTypes:
    - struct OfficeArtRecordHeader_Unpacked*
    - unsigned char*
    - size_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 4382
      start: 4214
    functionDepth: 8
    functionLinenumber: 4214
    functionLinenumberEnd: 4382
    functionName: process_blip_record
    functionSourceFile: /src/clamav/libclamav/xlm_extract.c
    functionUses: 0
    functionsReached:
    - close
    - free
    - cli_warnmsg
    - cli_magic_scan_buff
    - cli_dbgmsg
    - MIN
    - cli_writen
    - cli_gentempfd_with_prefix
    - cli_errmsg
    - cli_magic_scan_desc_type
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t process_blip_record(struct OfficeArtRecordHeader_Unpacked
      *rh, const unsigned char *index, size_t remaining, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_office_art_record_header
      Src: /src/clamav/libclamav/xlm_extract.c:4402,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4404,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4409,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4418,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4421,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4430,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/xlm_extract.c:4439,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4447,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:4460,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4461,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4462,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:4462,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:4465,1
    - Dst: read_office_art_record_header
      Src: /src/clamav/libclamav/xlm_extract.c:4468,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4470,1
    - Dst: process_blip_record
      Src: /src/clamav/libclamav/xlm_extract.c:4473,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4482,1
    - Dst: process_blip_record
      Src: /src/clamav/libclamav/xlm_extract.c:4483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4490,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 3
    argNames:
    - blip_store_container
    - blip_store_container_len
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 4506
      start: 4392
    functionDepth: 9
    functionLinenumber: 4392
    functionLinenumberEnd: 4506
    functionName: process_blip_store_container
    functionSourceFile: /src/clamav/libclamav/xlm_extract.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - cli_dbgmsg
    - process_blip_record
    - memcpy
    - read_office_art_record_header
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t process_blip_store_container(const unsigned char *blip_store_container,
      size_t blip_store_container_len, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4517,1
    - Dst: read_office_art_record_header
      Src: /src/clamav/libclamav/xlm_extract.c:4521,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4523,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4531,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4537,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4538,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4544,1
    - Dst: read_office_art_record_header
      Src: /src/clamav/libclamav/xlm_extract.c:4555,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4557,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4562,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4574,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4575,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4579,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4580,1
    - Dst: process_blip_store_container
      Src: /src/clamav/libclamav/xlm_extract.c:4586,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 3
    argNames:
    - drawinggroup
    - drawinggroup_len
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 4605
      start: 4508
    functionDepth: 10
    functionLinenumber: 4508
    functionLinenumberEnd: 4605
    functionName: cli_extract_images_from_drawing_group
    functionSourceFile: /src/clamav/libclamav/xlm_extract.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - read_office_art_record_header
    - process_blip_store_container
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_extract_images_from_drawing_group(const unsigned char
      *drawinggroup, size_t drawinggroup_len, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4633,1
    - Dst: open
      Src: /src/clamav/libclamav/xlm_extract.c:4635,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4638,1
    - Dst: cli_gentempfd_with_prefix
      Src: /src/clamav/libclamav/xlm_extract.c:4645,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4646,1
    - Dst: fdopen
      Src: /src/clamav/libclamav/xlm_extract.c:4651,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4653,1
    - Dst: malloc
      Src: /src/clamav/libclamav/xlm_extract.c:4657,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4658,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/xlm_extract.c:4663,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4664,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4669,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/xlm_extract.c:4671,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:4672,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/xlm_extract.c:4673,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4681,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4690,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/xlm_extract.c:4695,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4696,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4714,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4721,1
    - Dst: parse_formula
      Src: /src/clamav/libclamav/xlm_extract.c:4727,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4729,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4757,1
    - Dst: min
      Src: /src/clamav/libclamav/xlm_extract.c:4761,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4763,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4766,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4774,1
    - Dst: malloc
      Src: /src/clamav/libclamav/xlm_extract.c:4786,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/xlm_extract.c:4787,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/xlm_extract.c:4793,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/xlm_extract.c:4794,1
    - Dst: CLI_MAX_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/xlm_extract.c:4804,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/xlm_extract.c:4805,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4847,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4849,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4856,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4868,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4872,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4877,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4879,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4888,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4890,1
    - Dst: cli_codepage_to_utf8
      Src: /src/clamav/libclamav/xlm_extract.c:4900,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/xlm_extract.c:4902,1
    - Dst: free
      Src: /src/clamav/libclamav/xlm_extract.c:4903,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4905,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4910,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/xlm_extract.c:4911,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4913,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4919,1
    - Dst: fputc
      Src: /src/clamav/libclamav/xlm_extract.c:4933,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4935,1
    - Dst: lseek
      Src: /src/clamav/libclamav/xlm_extract.c:4946,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4947,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/xlm_extract.c:4952,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/xlm_extract.c:4960,1
    - Dst: cli_extract_images_from_drawing_group
      Src: /src/clamav/libclamav/xlm_extract.c:4970,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/xlm_extract.c:4980,1
    - Dst: close
      Src: /src/clamav/libclamav/xlm_extract.c:4983,1
    - Dst: fclose
      Src: /src/clamav/libclamav/xlm_extract.c:4988,1
    - Dst: close
      Src: /src/clamav/libclamav/xlm_extract.c:4991,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/xlm_extract.c:4995,1
    - Dst: remove
      Src: /src/clamav/libclamav/xlm_extract.c:4998,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/xlm_extract.c:5000,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 282
    argCount: 4
    argNames:
    - dir
    - ctx
    - hash
    - which
    argTypes:
    - char*
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 5003
      start: 4607
    functionDepth: 11
    functionLinenumber: 4607
    functionLinenumberEnd: 5003
    functionName: cli_extract_xlm_macros_and_images
    functionSourceFile: /src/clamav/libclamav/xlm_extract.c
    functionUses: 0
    functionsReached:
    - snprintf
    - le16_to_host
    - fdopen
    - remove
    - cli_scan_desc
    - lseek
    - min
    - fputc
    - cli_dbgmsg
    - CLI_FREE_AND_SET_NULL
    - cli_writen
    - cli_gentempfd_with_prefix
    - close
    - fwrite
    - cli_extract_images_from_drawing_group
    - open
    - fprintf
    - parse_formula
    - malloc
    - fclose
    - CLI_MAX_REALLOC_OR_GOTO_DONE
    - free
    - cli_codepage_to_utf8
    - memcpy
    - cli_readn
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_extract_xlm_macros_and_images(const char *dir, cli_ctx
      *ctx, char *hash, uint32_t which)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 61
    functionName: base64_len
    functionSourceFile: /src/clamav/libclamav/conv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t base64_len(const char *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/conv.c:75,1
    - Dst: base64_len
      Src: /src/clamav/libclamav/conv.c:75,1
    - Dst: BIO_new
      Src: /src/clamav/libclamav/conv.c:79,1
    - Dst: BIO_f_base64
      Src: /src/clamav/libclamav/conv.c:79,1
    - Dst: free
      Src: /src/clamav/libclamav/conv.c:82,1
    - Dst: BIO_new_mem_buf
      Src: /src/clamav/libclamav/conv.c:87,1
    - Dst: BIO_free
      Src: /src/clamav/libclamav/conv.c:89,1
    - Dst: free
      Src: /src/clamav/libclamav/conv.c:91,1
    - Dst: BIO_push
      Src: /src/clamav/libclamav/conv.c:96,1
    - Dst: BIO_set_flags
      Src: /src/clamav/libclamav/conv.c:98,1
    - Dst: BIO_read
      Src: /src/clamav/libclamav/conv.c:100,1
    - Dst: base64_len
      Src: /src/clamav/libclamav/conv.c:100,1
    - Dst: BIO_free_all
      Src: /src/clamav/libclamav/conv.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - data
    - len
    - obuf
    - olen
    - oneline
    argTypes:
    - char*
    - size_t
    - void*
    - size_t*
    - int
    constantsTouched: []
    func_position:
      end: 105
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 105
    functionName: cl_base64_decode
    functionSourceFile: /src/clamav/libclamav/conv.c
    functionUses: 2
    functionsReached:
    - BIO_free
    - BIO_new_mem_buf
    - BIO_new
    - BIO_push
    - BIO_read
    - BIO_free_all
    - BIO_f_base64
    - BIO_set_flags
    - malloc
    - free
    - base64_len
    linkageType: ''
    returnType: void
    signature: void *cl_base64_decode(char *data, size_t len, void *obuf, size_t *olen,
      int oneline)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/clamav/libclamav/conv.c:118,1
    - Dst: BIO_f_base64
      Src: /src/clamav/libclamav/conv.c:118,1
    - Dst: BIO_new
      Src: /src/clamav/libclamav/conv.c:121,1
    - Dst: BIO_s_mem
      Src: /src/clamav/libclamav/conv.c:121,1
    - Dst: BIO_free
      Src: /src/clamav/libclamav/conv.c:123,1
    - Dst: BIO_push
      Src: /src/clamav/libclamav/conv.c:127,1
    - Dst: BIO_write
      Src: /src/clamav/libclamav/conv.c:128,1
    - Dst: BIO_flush
      Src: /src/clamav/libclamav/conv.c:130,1
    - Dst: BIO_get_mem_data
      Src: /src/clamav/libclamav/conv.c:131,1
    - Dst: malloc
      Src: /src/clamav/libclamav/conv.c:134,1
    - Dst: BIO_free
      Src: /src/clamav/libclamav/conv.c:136,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/conv.c:139,1
    - Dst: BIO_free_all
      Src: /src/clamav/libclamav/conv.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 146
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 146
    functionName: cl_base64_encode
    functionSourceFile: /src/clamav/libclamav/conv.c
    functionUses: 1
    functionsReached:
    - BIO_free
    - BIO_write
    - BIO_new
    - BIO_push
    - BIO_get_mem_data
    - BIO_free_all
    - BIO_f_base64
    - BIO_flush
    - memcpy
    - malloc
    - BIO_s_mem
    linkageType: ''
    returnType: char
    signature: char *cl_base64_encode(void *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: initialize_crypto
      Src: /src/clamav/libclamav/conv.c:158,1
    - Dst: sha256
      Src: /src/clamav/libclamav/conv.c:161,1
    - Dst: strlen
      Src: /src/clamav/libclamav/conv.c:161,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/conv.c:163,1
    - Dst: base64_encode
      Src: /src/clamav/libclamav/conv.c:167,1
    - Dst: strlen
      Src: /src/clamav/libclamav/conv.c:167,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/conv.c:169,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/conv.c:172,1
    - Dst: base64_decode
      Src: /src/clamav/libclamav/conv.c:174,1
    - Dst: strlen
      Src: /src/clamav/libclamav/conv.c:174,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/conv.c:176,1
    - Dst: sha256
      Src: /src/clamav/libclamav/conv.c:180,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/conv.c:182,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/conv.c:186,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/conv.c:187,1
    - Dst: free
      Src: /src/clamav/libclamav/conv.c:191,1
    - Dst: free
      Src: /src/clamav/libclamav/conv.c:192,1
    - Dst: free
      Src: /src/clamav/libclamav/conv.c:193,1
    - Dst: free
      Src: /src/clamav/libclamav/conv.c:194,1
    - Dst: cleanup_crypto
      Src: /src/clamav/libclamav/conv.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 199
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/clamav/libclamav/conv.c
    functionUses: 3
    functionsReached:
    - sha256
    - strlen
    - cleanup_crypto
    - fprintf
    - base64_encode
    - base64_decode
    - memcmp
    - initialize_crypto
    - free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:89,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:92,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:97,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:99,1
    - Dst: iconv_open
      Src: /src/clamav/libclamav/pdfng.c:108,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/pdfng.c:111,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfng.c:112,1
    - Dst: iconv
      Src: /src/clamav/libclamav/pdfng.c:116,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/pdfng.c:120,1
    - Dst: strdup
      Src: /src/clamav/libclamav/pdfng.c:126,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/pdfng.c:127,1
    - Dst: cli_utf16_to_utf8
      Src: /src/clamav/libclamav/pdfng.c:131,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:133,1
    - Dst: strdup
      Src: /src/clamav/libclamav/pdfng.c:137,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:139,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:140,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - begin
    - sz
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 143
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 143
    functionName: pdf_convert_utf
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - cli_strerror
    - strdup
    - iconv
    - cli_utf16_to_utf8
    - memcpy
    - iconv_close
    - cli_max_calloc
    - iconv_open
    - free
    linkageType: ''
    returnType: char
    signature: char *pdf_convert_utf(char *begin, size_t sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:162,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdfng.c:168,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:173,1
    - Dst: strtoul
      Src: /src/clamav/libclamav/pdfng.c:179,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:187,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdfng.c:193,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:198,1
    - Dst: strtoul
      Src: /src/clamav/libclamav/pdfng.c:204,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:212,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 44
    argCount: 3
    argNames:
    - begin
    - endchar
    - id
    argTypes:
    - char*
    - char**
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 227
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 227
    functionName: is_object_reference
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 0
    functionsReached:
    - strtoul
    - isspace
    - isdigit
    linkageType: ''
    returnType: int
    signature: int is_object_reference(char *begin, char **endchar, uint32_t *id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_enc_method
      Src: /src/clamav/libclamav/pdfng.c:246,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:249,1
    - Dst: CLI_MAX_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/pdfng.c:271,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/pdfng.c:273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:275,1
    - Dst: decrypt_any
      Src: /src/clamav/libclamav/pdfng.c:287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:289,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - pdf
    - obj
    - in
    - length
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 302
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 302
    functionName: pdf_decrypt_string
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 0
    functionsReached:
    - CLI_MAX_CALLOC_OR_GOTO_DONE
    - cli_hex2str_to
    - get_enc_method
    - decrypt_any
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: char
    signature: char *pdf_decrypt_string(struct pdf_struct *pdf, struct pdf_obj *obj,
      const char *in, size_t *length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:314,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:317,1
    - Dst: strchr
      Src: /src/clamav/libclamav/pdfng.c:323,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:324,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:326,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdfng.c:334,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdfng.c:334,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/pdfng.c:334,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:339,1
    - Dst: strtoul
      Src: /src/clamav/libclamav/pdfng.c:342,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:385,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:386,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:388,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:391,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:392,1
    - Dst: pdf_decrypt_string
      Src: /src/clamav/libclamav/pdfng.c:401,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:403,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:405,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:407,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:410,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:411,1
    - Dst: pdf_convert_utf
      Src: /src/clamav/libclamav/pdfng.c:429,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:430,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 97
    argCount: 4
    argNames:
    - pdf
    - obj
    - in
    - len
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 437
      start: 304
    functionDepth: 5
    functionLinenumber: 304
    functionLinenumberEnd: 437
    functionName: pdf_finalize_string
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 0
    functionsReached:
    - pdf_convert_utf
    - strtoul
    - strchr
    - memcpy
    - pdf_decrypt_string
    - cli_max_calloc
    - free
    - isdigit
    linkageType: ''
    returnType: char
    signature: char *pdf_finalize_string(struct pdf_struct *pdf, struct pdf_obj *obj,
      const char *in, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:448,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:455,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:461,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdfng.c:477,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdfng.c:479,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdfng.c:483,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:494,1
    - Dst: is_object_reference
      Src: /src/clamav/libclamav/pdfng.c:508,1
    - Dst: find_obj
      Src: /src/clamav/libclamav/pdfng.c:517,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/pdfng.c:521,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:522,1
    - Dst: pdf_parseobj
      Src: /src/clamav/libclamav/pdfng.c:534,1
    - Dst: pdf_extract_obj
      Src: /src/clamav/libclamav/pdfng.c:541,1
    - Dst: open
      Src: /src/clamav/libclamav/pdfng.c:552,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdfng.c:554,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:555,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/pdfng.c:560,1
    - Dst: close
      Src: /src/clamav/libclamav/pdfng.c:561,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdfng.c:562,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:563,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdfng.c:569,1
    - Dst: close
      Src: /src/clamav/libclamav/pdfng.c:571,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdfng.c:572,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:573,1
    - Dst: read
      Src: /src/clamav/libclamav/pdfng.c:578,1
    - Dst: close
      Src: /src/clamav/libclamav/pdfng.c:579,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdfng.c:580,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:581,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:583,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:589,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdfng.c:598,1
    - Dst: pdf_finalize_string
      Src: /src/clamav/libclamav/pdfng.c:602,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:604,1
    - Dst: close
      Src: /src/clamav/libclamav/pdfng.c:606,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdfng.c:607,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:608,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:610,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:613,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdfng.c:622,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:627,1
    - Dst: close
      Src: /src/clamav/libclamav/pdfng.c:630,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/pdfng.c:631,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:632,1
    - Dst: pdf_finalize_string
      Src: /src/clamav/libclamav/pdfng.c:652,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:654,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:657,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdfng.c:666,1
    - Dst: pdf_finalize_string
      Src: /src/clamav/libclamav/pdfng.c:709,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:711,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfng.c:714,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdfng.c:723,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 208
    argCount: 7
    argNames:
    - pdf
    - obj
    - objstart
    - objsize
    - str
    - endchar
    - meta
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - char*
    - size_t
    - char*
    - char**
    - struct pdf_stats_metadata*
    constantsTouched: []
    func_position:
      end: 732
      start: 439
    functionDepth: 6
    functionLinenumber: 439
    functionLinenumberEnd: 732
    functionName: pdf_parse_string
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 9
    functionsReached:
    - read
    - isspace
    - cli_max_calloc
    - pdf_finalize_string
    - CLI_ISCONTAINED
    - pdf_parseobj
    - cli_dbgmsg
    - close
    - calloc
    - cli_unlink
    - open
    - pdf_extract_obj
    - FSTAT
    - pdf_parse_string
    - is_object_reference
    - free
    - strlen
    - memcpy
    - find_obj
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *pdf_parse_string(struct pdf_struct *pdf, struct pdf_obj *obj,
      const char *objstart, size_t objsize, const char *str, char **endchar, struct
      pdf_stats_metadata *meta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:747,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdfng.c:807,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:820,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:828,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:864,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/pdfng.c:870,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/pdfng.c:875,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:887,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:891,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdfng.c:898,1
    - Dst: pdf_parse_array
      Src: /src/clamav/libclamav/pdfng.c:904,1
    - Dst: pdf_parse_dict
      Src: /src/clamav/libclamav/pdfng.c:912,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdfng.c:920,1
    - Dst: is_object_reference
      Src: /src/clamav/libclamav/pdfng.c:941,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:943,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/pdfng.c:947,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:959,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdfng.c:964,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:966,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdfng.c:968,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:970,1
    - Dst: pdf_free_array
      Src: /src/clamav/libclamav/pdfng.c:972,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdfng.c:976,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:978,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdfng.c:980,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:982,1
    - Dst: pdf_free_array
      Src: /src/clamav/libclamav/pdfng.c:984,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdfng.c:997,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 214
    argCount: 5
    argNames:
    - pdf
    - obj
    - objsize
    - begin
    - endchar
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - size_t
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1014
      start: 734
    functionDepth: 7
    functionLinenumber: 734
    functionLinenumberEnd: 1014
    functionName: pdf_parse_dict
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 2
    functionsReached:
    - pdf_parse_array
    - calloc
    - cli_hex2str_to
    - strlen
    - pdf_free_dict
    - strncpy
    - pdf_parse_string
    - pdf_free_array
    - is_object_reference
    - cli_dbgmsg
    - pdf_parse_dict
    - isspace
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: struct pdf_dict
    signature: struct pdf_dict *pdf_parse_dict(struct pdf_struct *pdf, struct pdf_obj
      *obj, size_t objsize, char *begin, char **endchar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfng.c:1029,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdfng.c:1083,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:1093,1
    - Dst: pdf_parse_dict
      Src: /src/clamav/libclamav/pdfng.c:1103,1
    - Dst: pdf_parse_string
      Src: /src/clamav/libclamav/pdfng.c:1113,1
    - Dst: pdf_parse_array
      Src: /src/clamav/libclamav/pdfng.c:1119,1
    - Dst: is_object_reference
      Src: /src/clamav/libclamav/pdfng.c:1125,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfng.c:1127,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfng.c:1131,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/pdfng.c:1135,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdfng.c:1147,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdfng.c:1150,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1152,1
    - Dst: pdf_free_array
      Src: /src/clamav/libclamav/pdfng.c:1154,1
    - Dst: calloc
      Src: /src/clamav/libclamav/pdfng.c:1159,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdfng.c:1162,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1164,1
    - Dst: pdf_free_array
      Src: /src/clamav/libclamav/pdfng.c:1166,1
    - Dst: strlen
      Src: /src/clamav/libclamav/pdfng.c:1180,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 135
    argCount: 5
    argNames:
    - pdf
    - obj
    - objsize
    - begin
    - endchar
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - size_t
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 1196
      start: 1016
    functionDepth: 8
    functionLinenumber: 1016
    functionLinenumberEnd: 1196
    functionName: pdf_parse_array
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 3
    functionsReached:
    - pdf_parse_array
    - calloc
    - strlen
    - pdf_free_dict
    - strncpy
    - pdf_parse_string
    - pdf_free_array
    - is_object_reference
    - cli_dbgmsg
    - pdf_parse_dict
    - isspace
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: struct pdf_array
    signature: struct pdf_array *pdf_parse_array(struct pdf_struct *pdf, struct pdf_obj
      *obj, size_t objsize, char *begin, char **endchar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1204,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1207,1
    - Dst: pdf_free_array
      Src: /src/clamav/libclamav/pdfng.c:1209,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdfng.c:1211,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1214,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - dict
    argTypes:
    - struct pdf_dict*
    constantsTouched: []
    func_position:
      end: 1219
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1219
    functionName: pdf_free_dict
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 4
    functionsReached:
    - pdf_free_dict
    - free
    - pdf_free_array
    linkageType: ''
    returnType: void
    signature: void pdf_free_dict(struct pdf_dict *dict)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pdf_free_array
      Src: /src/clamav/libclamav/pdfng.c:1231,1
    - Dst: pdf_free_dict
      Src: /src/clamav/libclamav/pdfng.c:1233,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1235,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1238,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfng.c:1242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - array
    argTypes:
    - struct pdf_array*
    constantsTouched: []
    func_position:
      end: 1243
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1243
    functionName: pdf_free_array
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 5
    functionsReached:
    - pdf_free_dict
    - free
    - pdf_free_array
    linkageType: ''
    returnType: void
    signature: void pdf_free_array(struct pdf_array *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfng.c:1252,1
    - Dst: pdf_print_array
      Src: /src/clamav/libclamav/pdfng.c:1254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - array
    - depth
    argTypes:
    - struct pdf_array*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1256
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1256
    functionName: pdf_print_array
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 1
    functionsReached:
    - cli_errmsg
    - pdf_print_array
    linkageType: ''
    returnType: void
    signature: void pdf_print_array(struct pdf_array *array, unsigned long depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfng.c:1264,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfng.c:1266,1
    - Dst: pdf_print_array
      Src: /src/clamav/libclamav/pdfng.c:1267,1
    - Dst: pdf_print_dict
      Src: /src/clamav/libclamav/pdfng.c:1269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - dict
    - depth
    argTypes:
    - struct pdf_dict*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 1272
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1272
    functionName: pdf_print_dict
    functionSourceFile: /src/clamav/libclamav/pdfng.c
    functionUses: 1
    functionsReached:
    - cli_errmsg
    - pdf_print_array
    - pdf_print_dict
    linkageType: ''
    returnType: void
    signature: void pdf_print_dict(struct pdf_dict *dict, unsigned long depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - buff
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 675
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 675
    functionName: cli_readint64
    functionSourceFile: /src/clamav/libclamav/others.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t cli_readint64(const void *buff)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buff
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: cli_readint32
    functionSourceFile: /src/clamav/libclamav/others.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t cli_readint32(const void *buff)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buff
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: cli_readint16
    functionSourceFile: /src/clamav/libclamav/others.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t cli_readint16(const void *buff)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - offset
    - value
    argTypes:
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 701
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 701
    functionName: cli_writeint32
    functionSourceFile: /src/clamav/libclamav/others.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_writeint32(void *offset, uint32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/clamav/libclamav/others.h:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 919
    functionName: cli_getpagesize
    functionSourceFile: /src/clamav/libclamav/others.h
    functionUses: 1
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: int cli_getpagesize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/clamav/libclamav/others.h:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 926
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 926
    functionName: cli_getpagesize
    functionSourceFile: /src/clamav/libclamav/others.h
    functionUses: 1
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: int
    signature: int cli_getpagesize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/clamav/libclamav/others.h:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 933
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 933
    functionName: cli_getpagesize
    functionSourceFile: /src/clamav/libclamav/others.h
    functionUses: 1
    functionsReached:
    - getpagesize
    linkageType: ''
    returnType: int
    signature: int cli_getpagesize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:126,1
    - Dst: pdf_print_dict
      Src: /src/clamav/libclamav/pdfdecode.c:135,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pdfdecode.c:138,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdfdecode.c:150,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfdecode.c:156,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:159,1
    - Dst: pdf_decodestream_internal
      Src: /src/clamav/libclamav/pdfdecode.c:161,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/pdfdecode.c:177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:178,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/pdfdecode.c:180,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:181,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:194,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:198,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 9
    argNames:
    - pdf
    - obj
    - params
    - stream
    - streamlen
    - xref
    - fout
    - status
    - objstm
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_dict*
    - char*
    - uint32_t
    - int
    - int
    - cl_error_t*
    - struct objstm_struct*
    constantsTouched: []
    func_position:
      end: 203
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 203
    functionName: pdf_decodestream
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - pdf_decodestream_internal
    - cli_max_malloc
    - cli_dbgmsg
    - cli_checklimits
    - pdf_print_dict
    - memcpy
    - malloc
    - cli_writen
    - cli_errmsg
    - free
    linkageType: ''
    returnType: size_t
    signature: "size_t pdf_decodestream(\n    struct pdf_struct *pdf, struct pdf_obj
      *obj, struct pdf_dict *params,\n    const char *stream, uint32_t streamlen,
      int xref, int fout, cl_error_t *status,\n    struct objstm_struct *objstm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:247,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:249,1
    - Dst: filter_decrypt
      Src: /src/clamav/libclamav/pdfdecode.c:250,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:261,1
    - Dst: filter_ascii85decode
      Src: /src/clamav/libclamav/pdfdecode.c:262,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:266,1
    - Dst: filter_rldecode
      Src: /src/clamav/libclamav/pdfdecode.c:267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:271,1
    - Dst: filter_flatedecode
      Src: /src/clamav/libclamav/pdfdecode.c:272,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:276,1
    - Dst: filter_asciihexdecode
      Src: /src/clamav/libclamav/pdfdecode.c:277,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:281,1
    - Dst: filter_decrypt
      Src: /src/clamav/libclamav/pdfdecode.c:282,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:286,1
    - Dst: filter_lzwdecode
      Src: /src/clamav/libclamav/pdfdecode.c:287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:302,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:314,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:336,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/pdfdecode.c:351,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/pdfdecode.c:352,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:353,1
    - Dst: pdf_find_and_parse_objs_in_objstm
      Src: /src/clamav/libclamav/pdfdecode.c:378,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:379,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:383,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:385,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 119
    argCount: 7
    argNames:
    - pdf
    - obj
    - params
    - token
    - fout
    - status
    - objstm
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_dict*
    - struct pdf_token*
    - int
    - cl_error_t*
    - struct objstm_struct*
    constantsTouched: []
    func_position:
      end: 392
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 392
    functionName: pdf_decodestream_internal
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - filter_ascii85decode
    - filter_lzwdecode
    - filter_asciihexdecode
    - cli_errmsg
    - pdf_find_and_parse_objs_in_objstm
    - filter_flatedecode
    - cli_dbgmsg
    - cli_checklimits
    - cli_writen
    - filter_decrypt
    - filter_rldecode
    linkageType: ''
    returnType: size_t
    signature: "size_t pdf_decodestream_internal(\n    struct pdf_struct *pdf, struct
      pdf_obj *obj, struct pdf_dict *params,\n    struct pdf_token *token, int fout,
      cl_error_t *status, struct objstm_struct *objstm)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/pdfdecode.c:409,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:410,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/pdfdecode.c:414,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:415,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:437,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:449,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:454,1
    - Dst: isspace
      Src: /src/clamav/libclamav/pdfdecode.c:471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:472,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:481,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:483,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:490,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:492,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:494,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 3
    argNames:
    - pdf
    - obj
    - token
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_token*
    constantsTouched: []
    func_position:
      end: 497
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 497
    functionName: filter_ascii85decode
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - cli_memstr
    - cli_max_malloc
    - cli_dbgmsg
    - isspace
    - free
    - cli_errmsg
    - pdfobj_flag
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t filter_ascii85decode(struct pdf_struct *pdf, struct pdf_obj
      *obj, struct pdf_token *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdfdecode.c:510,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pdfdecode.c:514,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:515,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:524,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/pdfdecode.c:531,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/pdfdecode.c:534,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:535,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/pdfdecode.c:543,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:549,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/pdfdecode.c:555,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:556,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/pdfdecode.c:560,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:561,1
    - Dst: memset
      Src: /src/clamav/libclamav/pdfdecode.c:569,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:574,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:582,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/pdfdecode.c:584,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:586,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:594,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:596,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:602,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:604,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 3
    argNames:
    - pdf
    - obj
    - token
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_token*
    constantsTouched: []
    func_position:
      end: 607
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 607
    functionName: filter_rldecode
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - memset
    - UNUSEDPARAM
    - cli_dbgmsg
    - cli_checklimits
    - memcpy
    - malloc
    - cli_max_realloc
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t filter_rldecode(struct pdf_struct *pdf, struct pdf_obj *obj,
      struct pdf_token *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - content
    - length
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 623
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 623
    functionName: decode_nextlinestart
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *decode_nextlinestart(uint8_t *content, uint32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/pdfdecode.c:635,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:640,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pdfdecode.c:651,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:652,1
    - Dst: memset
      Src: /src/clamav/libclamav/pdfdecode.c:656,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/pdfdecode.c:662,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdfdecode.c:664,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:665,1
    - Dst: inflate
      Src: /src/clamav/libclamav/pdfdecode.c:670,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/pdfdecode.c:677,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/pdfdecode.c:686,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdfdecode.c:688,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:689,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:693,1
    - Dst: inflate
      Src: /src/clamav/libclamav/pdfdecode.c:696,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/pdfdecode.c:702,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:703,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/pdfdecode.c:707,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:708,1
    - Dst: inflate
      Src: /src/clamav/libclamav/pdfdecode.c:720,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:729,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:732,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:743,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:746,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:750,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:751,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:755,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/pdfdecode.c:760,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:764,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/pdfdecode.c:766,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:768,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:776,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:781,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:783,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 110
    argCount: 4
    argNames:
    - pdf
    - obj
    - params
    - token
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_dict*
    - struct pdf_token*
    constantsTouched: []
    func_position:
      end: 787
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 787
    functionName: filter_flatedecode
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - memset
    - UNUSEDPARAM
    - cli_warnmsg
    - inflateEnd
    - cli_dbgmsg
    - inflateInit
    - cli_checklimits
    - inflate
    - pdfobj_flag
    - malloc
    - cli_max_realloc
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t filter_flatedecode(struct pdf_struct *pdf, struct pdf_obj
      *obj, struct pdf_dict *params, struct pdf_token *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/pdfdecode.c:798,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:799,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/pdfdecode.c:810,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:823,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:825,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:832,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:834,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:836,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - pdf
    - obj
    - token
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_token*
    constantsTouched: []
    func_position:
      end: 839
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 839
    functionName: filter_asciihexdecode
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - cli_hex2str_to
    - cli_errmsg
    - cli_dbgmsg
    - pdfobj_flag
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t filter_asciihexdecode(struct pdf_struct *pdf, struct pdf_obj
      *obj, struct pdf_token *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_enc_method
      Src: /src/clamav/libclamav/pdfdecode.c:849,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdfdecode.c:855,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:858,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdfdecode.c:859,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:862,1
    - Dst: parse_enc_method
      Src: /src/clamav/libclamav/pdfdecode.c:863,1
    - Dst: decrypt_any
      Src: /src/clamav/libclamav/pdfdecode.c:870,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:872,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:876,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:879,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - pdf
    - obj
    - params
    - token
    - mode
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_dict*
    - struct pdf_token*
    - int
    constantsTouched: []
    func_position:
      end: 883
      start: 842
    functionDepth: 5
    functionLinenumber: 842
    functionLinenumberEnd: 883
    functionName: filter_decrypt
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - get_enc_method
    - parse_enc_method
    - decrypt_any
    - cli_dbgmsg
    - free
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t filter_decrypt(struct pdf_struct *pdf, struct pdf_obj *obj,
      struct pdf_dict *params, struct pdf_token *token, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/pdfdecode.c:903,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:908,1
    - Dst: strtol
      Src: /src/clamav/libclamav/pdfdecode.c:909,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:922,1
    - Dst: malloc
      Src: /src/clamav/libclamav/pdfdecode.c:933,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:934,1
    - Dst: memset
      Src: /src/clamav/libclamav/pdfdecode.c:938,1
    - Dst: lzwInit
      Src: /src/clamav/libclamav/pdfdecode.c:946,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdfdecode.c:948,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:949,1
    - Dst: lzwInflate
      Src: /src/clamav/libclamav/pdfdecode.c:954,1
    - Dst: lzwInflateEnd
      Src: /src/clamav/libclamav/pdfdecode.c:961,1
    - Dst: lzwInit
      Src: /src/clamav/libclamav/pdfdecode.c:970,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/pdfdecode.c:972,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:973,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:977,1
    - Dst: lzwInflate
      Src: /src/clamav/libclamav/pdfdecode.c:980,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/pdfdecode.c:986,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:987,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/pdfdecode.c:991,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:992,1
    - Dst: lzwInflate
      Src: /src/clamav/libclamav/pdfdecode.c:1004,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1013,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1016,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1028,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1031,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:1035,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1036,1
    - Dst: pdfobj_flag
      Src: /src/clamav/libclamav/pdfdecode.c:1040,1
    - Dst: lzwInflateEnd
      Src: /src/clamav/libclamav/pdfdecode.c:1045,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1049,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/pdfdecode.c:1051,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1053,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:1061,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/pdfdecode.c:1066,1
    - Dst: free
      Src: /src/clamav/libclamav/pdfdecode.c:1068,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 129
    argCount: 4
    argNames:
    - pdf
    - obj
    - params
    - token
    argTypes:
    - struct pdf_struct*
    - struct pdf_obj*
    - struct pdf_dict*
    - struct pdf_token*
    constantsTouched: []
    func_position:
      end: 1078
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 1078
    functionName: filter_lzwdecode
    functionSourceFile: /src/clamav/libclamav/pdfdecode.c
    functionUses: 1
    functionsReached:
    - memset
    - lzwInflateEnd
    - cli_warnmsg
    - lzwInit
    - lzwInflate
    - cli_dbgmsg
    - cli_checklimits
    - cli_max_realloc
    - pdfobj_flag
    - malloc
    - strtol
    - cli_errmsg
    - strncmp
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t filter_lzwdecode(struct pdf_struct *pdf, struct pdf_obj
      *obj, struct pdf_dict *params, struct pdf_token *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mktime
      Src: /src/clamav/libclamav/crypto.c:102,1
    - Dst: mktime
      Src: /src/clamav/libclamav/crypto.c:105,1
    - Dst: gmtime
      Src: /src/clamav/libclamav/crypto.c:111,1
    - Dst: mktime
      Src: /src/clamav/libclamav/crypto.c:113,1
    - Dst: mktime
      Src: /src/clamav/libclamav/crypto.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tm*
    constantsTouched: []
    func_position:
      end: 125
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 125
    functionName: timegm
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - gmtime
    - mktime
    linkageType: ''
    returnType: time_t
    signature: time_t timegm(struct tm *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SSL_load_error_strings
      Src: /src/clamav/libclamav/crypto.c:140,1
    - Dst: SSL_library_init
      Src: /src/clamav/libclamav/crypto.c:141,1
    - Dst: OpenSSL_add_all_digests
      Src: /src/clamav/libclamav/crypto.c:142,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/clamav/libclamav/crypto.c:143,1
    - Dst: OpenSSL_add_all_ciphers
      Src: /src/clamav/libclamav/crypto.c:144,1
    - Dst: ERR_load_crypto_strings
      Src: /src/clamav/libclamav/crypto.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: cl_initialize_crypto
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 2
    functionsReached:
    - OpenSSL_add_all_ciphers
    - OpenSSL_add_all_algorithms
    - SSL_load_error_strings
    - OpenSSL_add_all_digests
    - SSL_library_init
    - ERR_load_crypto_strings
    linkageType: ''
    returnType: int
    signature: int cl_initialize_crypto(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: cl_cleanup_crypto
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cl_cleanup_crypto(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/clamav/libclamav/crypto.c:173,1
    - Dst: EVP_MD_size
      Src: /src/clamav/libclamav/crypto.c:177,1
    - Dst: malloc
      Src: /src/clamav/libclamav/crypto.c:179,1
    - Dst: EVP_MD_CTX_create
      Src: /src/clamav/libclamav/crypto.c:183,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:186,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/clamav/libclamav/crypto.c:193,1
    - Dst: EVP_DigestInit_ex
      Src: /src/clamav/libclamav/crypto.c:196,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:198,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:203,1
    - Dst: EVP_DigestUpdate
      Src: /src/clamav/libclamav/crypto.c:212,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:214,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:219,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:226,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:231,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/clamav/libclamav/crypto.c:238,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:240,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:245,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:249,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 5
    argNames:
    - alg
    - buf
    - len
    - obuf
    - olen
    argTypes:
    - char*
    - void*
    - size_t
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 255
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 255
    functionName: cl_hash_data
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 9
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_DigestInit_ex
    - EVP_MD_CTX_create
    - EVP_get_digestbyname
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    - malloc
    - free
    - EVP_MD_CTX_destroy
    - EVP_MD_size
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_hash_data(const char *alg, const void *buf, size_t
      len, unsigned char *obuf, unsigned int *olen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/clamav/libclamav/crypto.c:263,1
    - Dst: EVP_MD_CTX_create
      Src: /src/clamav/libclamav/crypto.c:267,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/clamav/libclamav/crypto.c:273,1
    - Dst: EVP_DigestInit_ex
      Src: /src/clamav/libclamav/crypto.c:276,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:277,1
    - Dst: cl_hash_file_fd_ctx
      Src: /src/clamav/libclamav/crypto.c:281,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - alg
    - olen
    argTypes:
    - int
    - char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 285
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 285
    functionName: cl_hash_file_fd
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_DigestInit_ex
    - cl_hash_file_fd_ctx
    - EVP_MD_CTX_create
    - EVP_get_digestbyname
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_hash_file_fd(int fd, const char *alg, unsigned int
      *olen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:342,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: if
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: EXCEPTION_POSTAMBLE
    signature: EXCEPTION_POSTAMBLE if (winres)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_file_fd
      Src: /src/clamav/libclamav/crypto.c:366,1
    - Dst: fileno
      Src: /src/clamav/libclamav/crypto.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - alg
    - olen
    argTypes:
    - FILE*
    - char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: cl_hash_file_fp
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - fileno
    - cl_hash_file_fd
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_hash_file_fp(FILE *fp, const char *alg, unsigned
      int *olen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/crypto.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - len
    - obuf
    - olen
    argTypes:
    - void*
    - size_t
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: cl_sha512
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 2
    functionsReached:
    - cl_hash_data
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sha512(const void *buf, size_t len, unsigned char
      *obuf, unsigned int *olen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/crypto.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - len
    - obuf
    - olen
    argTypes:
    - void*
    - size_t
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: cl_sha384
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 2
    functionsReached:
    - cl_hash_data
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sha384(const void *buf, size_t len, unsigned char
      *obuf, unsigned int *olen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/crypto.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - len
    - obuf
    - olen
    argTypes:
    - void*
    - size_t
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: cl_sha256
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 6
    functionsReached:
    - cl_hash_data
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sha256(const void *buf, size_t len, unsigned char
      *obuf, unsigned int *olen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/crypto.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - len
    - obuf
    - olen
    argTypes:
    - void*
    - size_t
    - unsigned char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: cl_sha1
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 3
    functionsReached:
    - cl_hash_data
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sha1(const void *buf, size_t len, unsigned char *obuf,
      unsigned int *olen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/clamav/libclamav/crypto.c:395,1
    - Dst: EVP_MD_CTX_create
      Src: /src/clamav/libclamav/crypto.c:399,1
    - Dst: EVP_MD_size
      Src: /src/clamav/libclamav/crypto.c:403,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/clamav/libclamav/crypto.c:407,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/clamav/libclamav/crypto.c:410,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:411,1
    - Dst: EVP_VerifyUpdate
      Src: /src/clamav/libclamav/crypto.c:415,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:416,1
    - Dst: EVP_VerifyFinal
      Src: /src/clamav/libclamav/crypto.c:420,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:421,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - pkey
    - alg
    - sig
    - siglen
    - digest
    argTypes:
    - EVP_PKEY*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 427
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 427
    functionName: cl_verify_signature_hash
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - EVP_VerifyFinal
    - EVP_MD_CTX_set_flags
    - EVP_VerifyInit_ex
    - EVP_MD_CTX_create
    - EVP_get_digestbyname
    - EVP_VerifyUpdate
    - EVP_MD_CTX_destroy
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_hash(EVP_PKEY *pkey, const char *alg, unsigned
      char *sig, unsigned int siglen, unsigned char *digest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_file_fd
      Src: /src/clamav/libclamav/crypto.c:436,1
    - Dst: EVP_get_digestbyname
      Src: /src/clamav/libclamav/crypto.c:440,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:442,1
    - Dst: EVP_MD_size
      Src: /src/clamav/libclamav/crypto.c:446,1
    - Dst: EVP_MD_CTX_create
      Src: /src/clamav/libclamav/crypto.c:448,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:450,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/clamav/libclamav/crypto.c:456,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/clamav/libclamav/crypto.c:459,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:460,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:461,1
    - Dst: EVP_VerifyUpdate
      Src: /src/clamav/libclamav/crypto.c:465,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:466,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:467,1
    - Dst: EVP_VerifyFinal
      Src: /src/clamav/libclamav/crypto.c:471,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:472,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:473,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:477,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - pkey
    - alg
    - sig
    - siglen
    - fd
    argTypes:
    - EVP_PKEY*
    - char*
    - unsigned char*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 480
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 480
    functionName: cl_verify_signature_fd
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - cl_hash_file_fd
    - EVP_VerifyFinal
    - EVP_MD_CTX_set_flags
    - EVP_VerifyInit_ex
    - EVP_MD_CTX_create
    - EVP_get_digestbyname
    - EVP_VerifyUpdate
    - free
    - EVP_MD_CTX_destroy
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_fd(EVP_PKEY *pkey, const char *alg, unsigned
      char *sig, unsigned int siglen, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_base64_decode
      Src: /src/clamav/libclamav/crypto.c:493,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/crypto.c:501,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:504,1
    - Dst: EVP_get_digestbyname
      Src: /src/clamav/libclamav/crypto.c:509,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:511,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:513,1
    - Dst: EVP_MD_size
      Src: /src/clamav/libclamav/crypto.c:518,1
    - Dst: EVP_MD_CTX_create
      Src: /src/clamav/libclamav/crypto.c:520,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:522,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:524,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/clamav/libclamav/crypto.c:531,1
    - Dst: EVP_VerifyInit_ex
      Src: /src/clamav/libclamav/crypto.c:534,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:535,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:537,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:539,1
    - Dst: EVP_VerifyUpdate
      Src: /src/clamav/libclamav/crypto.c:543,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:544,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:546,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:548,1
    - Dst: EVP_VerifyFinal
      Src: /src/clamav/libclamav/crypto.c:552,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:553,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:555,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:557,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:562,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:564,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:565,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 7
    argNames:
    - pkey
    - alg
    - sig
    - siglen
    - data
    - datalen
    - decode
    argTypes:
    - EVP_PKEY*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 567
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 567
    functionName: cl_verify_signature
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - EVP_VerifyFinal
    - EVP_MD_CTX_set_flags
    - cl_base64_decode
    - EVP_VerifyInit_ex
    - EVP_MD_CTX_create
    - EVP_get_digestbyname
    - EVP_VerifyUpdate
    - cl_hash_data
    - free
    - EVP_MD_CTX_destroy
    - EVP_MD_size
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature(EVP_PKEY *pkey, const char *alg, unsigned char
      *sig, unsigned int siglen, unsigned char *data, size_t datalen, int decode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/crypto.c:575,1
    - Dst: PEM_read_X509
      Src: /src/clamav/libclamav/crypto.c:580,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:582,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:586,1
    - Dst: cl_verify_signature_hash_x509
      Src: /src/clamav/libclamav/crypto.c:588,1
    - Dst: X509_free
      Src: /src/clamav/libclamav/crypto.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - x509path
    - alg
    - sig
    - siglen
    - digest
    argTypes:
    - char*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 593
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 593
    functionName: cl_verify_signature_hash_x509_keyfile
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - PEM_read_X509
    - X509_free
    - cl_verify_signature_hash_x509
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_hash_x509_keyfile(char *x509path, const char
      *alg, unsigned char *sig, unsigned int siglen, unsigned char *digest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/crypto.c:601,1
    - Dst: PEM_read_X509
      Src: /src/clamav/libclamav/crypto.c:606,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:608,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:612,1
    - Dst: cl_verify_signature_fd_x509
      Src: /src/clamav/libclamav/crypto.c:614,1
    - Dst: X509_free
      Src: /src/clamav/libclamav/crypto.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - x509path
    - alg
    - sig
    - siglen
    - fd
    argTypes:
    - char*
    - char*
    - unsigned char*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 619
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 619
    functionName: cl_verify_signature_fd_x509_keyfile
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - PEM_read_X509
    - X509_free
    - cl_verify_signature_fd_x509
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_fd_x509_keyfile(char *x509path, const char
      *alg, unsigned char *sig, unsigned int siglen, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/crypto.c:627,1
    - Dst: PEM_read_X509
      Src: /src/clamav/libclamav/crypto.c:632,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:634,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:638,1
    - Dst: cl_verify_signature_x509
      Src: /src/clamav/libclamav/crypto.c:640,1
    - Dst: X509_free
      Src: /src/clamav/libclamav/crypto.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - x509path
    - alg
    - sig
    - siglen
    - data
    - datalen
    - decode
    argTypes:
    - char*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 645
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 645
    functionName: cl_verify_signature_x509_keyfile
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - PEM_read_X509
    - X509_free
    - cl_verify_signature_x509
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_x509_keyfile(char *x509path, const char *alg,
      unsigned char *sig, unsigned int siglen, unsigned char *data, size_t datalen,
      int decode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_pubkey
      Src: /src/clamav/libclamav/crypto.c:652,1
    - Dst: cl_verify_signature_hash
      Src: /src/clamav/libclamav/crypto.c:656,1
    - Dst: EVP_PKEY_free
      Src: /src/clamav/libclamav/crypto.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - x509
    - alg
    - sig
    - siglen
    - digest
    argTypes:
    - X509*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 661
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 661
    functionName: cl_verify_signature_hash_x509
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - X509_get_pubkey
    - EVP_PKEY_free
    - cl_verify_signature_hash
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_hash_x509(X509 *x509, const char *alg, unsigned
      char *sig, unsigned int siglen, unsigned char *digest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_pubkey
      Src: /src/clamav/libclamav/crypto.c:668,1
    - Dst: cl_verify_signature_fd
      Src: /src/clamav/libclamav/crypto.c:672,1
    - Dst: EVP_PKEY_free
      Src: /src/clamav/libclamav/crypto.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - x509
    - alg
    - sig
    - siglen
    - fd
    argTypes:
    - X509*
    - char*
    - unsigned char*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 677
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 677
    functionName: cl_verify_signature_fd_x509
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - X509_get_pubkey
    - cl_verify_signature_fd
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_fd_x509(X509 *x509, const char *alg, unsigned
      char *sig, unsigned int siglen, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_pubkey
      Src: /src/clamav/libclamav/crypto.c:684,1
    - Dst: cl_verify_signature
      Src: /src/clamav/libclamav/crypto.c:688,1
    - Dst: EVP_PKEY_free
      Src: /src/clamav/libclamav/crypto.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - x509
    - alg
    - sig
    - siglen
    - data
    - datalen
    - decode
    argTypes:
    - X509*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 693
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 693
    functionName: cl_verify_signature_x509
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - X509_get_pubkey
    - cl_verify_signature
    - EVP_PKEY_free
    linkageType: ''
    returnType: int
    signature: int cl_verify_signature_x509(X509 *x509, const char *alg, unsigned
      char *sig, unsigned int siglen, unsigned char *data, size_t datalen, int decode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/crypto.c:701,1
    - Dst: PEM_read_PrivateKey
      Src: /src/clamav/libclamav/crypto.c:706,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:708,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:712,1
    - Dst: cl_sign_data
      Src: /src/clamav/libclamav/crypto.c:714,1
    - Dst: EVP_PKEY_free
      Src: /src/clamav/libclamav/crypto.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - keypath
    - alg
    - hash
    - olen
    - encode
    argTypes:
    - char*
    - char*
    - unsigned char*
    - unsigned int*
    - int
    constantsTouched: []
    func_position:
      end: 719
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 719
    functionName: cl_sign_data_keyfile
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - cl_sign_data
    - PEM_read_PrivateKey
    - EVP_PKEY_free
    - fclose
    - fopen
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sign_data_keyfile(char *keypath, const char *alg,
      unsigned char *hash, unsigned int *olen, int encode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/clamav/libclamav/crypto.c:728,1
    - Dst: EVP_MD_CTX_create
      Src: /src/clamav/libclamav/crypto.c:732,1
    - Dst: calloc
      Src: /src/clamav/libclamav/crypto.c:736,1
    - Dst: EVP_PKEY_size
      Src: /src/clamav/libclamav/crypto.c:736,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:738,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/clamav/libclamav/crypto.c:744,1
    - Dst: EVP_SignInit_ex
      Src: /src/clamav/libclamav/crypto.c:747,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:748,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:749,1
    - Dst: EVP_SignUpdate
      Src: /src/clamav/libclamav/crypto.c:753,1
    - Dst: EVP_MD_size
      Src: /src/clamav/libclamav/crypto.c:753,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:754,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:755,1
    - Dst: EVP_SignFinal
      Src: /src/clamav/libclamav/crypto.c:759,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:760,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:761,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:768,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:769,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:773,1
    - Dst: strlen
      Src: /src/clamav/libclamav/crypto.c:775,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:779,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 5
    argNames:
    - pkey
    - alg
    - hash
    - olen
    - encode
    argTypes:
    - EVP_PKEY*
    - char*
    - unsigned char*
    - unsigned int*
    - int
    constantsTouched: []
    func_position:
      end: 781
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 781
    functionName: cl_sign_data
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - calloc
    - strlen
    - EVP_MD_CTX_set_flags
    - EVP_PKEY_size
    - EVP_MD_CTX_create
    - EVP_SignInit_ex
    - EVP_get_digestbyname
    - EVP_SignFinal
    - EVP_SignUpdate
    - free
    - EVP_MD_CTX_destroy
    - EVP_MD_size
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sign_data(EVP_PKEY *pkey, const char *alg, unsigned
      char *hash, unsigned int *olen, int encode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_file_fd
      Src: /src/clamav/libclamav/crypto.c:788,1
    - Dst: cl_sign_data
      Src: /src/clamav/libclamav/crypto.c:793,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - fd
    - pkey
    - alg
    - olen
    - encode
    argTypes:
    - int
    - EVP_PKEY*
    - char*
    - unsigned int*
    - int
    constantsTouched: []
    func_position:
      end: 797
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 797
    functionName: cl_sign_file_fd
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - cl_sign_data
    - free
    - cl_hash_file_fd
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sign_file_fd(int fd, EVP_PKEY *pkey, const char *alg,
      unsigned int *olen, int encode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_sign_file_fd
      Src: /src/clamav/libclamav/crypto.c:801,1
    - Dst: fileno
      Src: /src/clamav/libclamav/crypto.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fp
    - pkey
    - alg
    - olen
    - encode
    argTypes:
    - FILE*
    - EVP_PKEY*
    - char*
    - unsigned int*
    - int
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: cl_sign_file_fp
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - cl_sign_file_fd
    - fileno
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cl_sign_file_fp(FILE *fp, EVP_PKEY *pkey, const char
      *alg, unsigned int *olen, int encode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/crypto.c:809,1
    - Dst: PEM_read_PrivateKey
      Src: /src/clamav/libclamav/crypto.c:813,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:814,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - keypath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 821
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 821
    functionName: cl_get_pkey_file
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - PEM_read_PrivateKey
    - fclose
    - fopen
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *cl_get_pkey_file(char *keypath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/clamav/libclamav/crypto.c:828,1
    - Dst: PEM_read_bio_X509
      Src: /src/clamav/libclamav/crypto.c:832,1
    - Dst: BIO_free
      Src: /src/clamav/libclamav/crypto.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 836
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 836
    functionName: cl_get_x509_from_mem
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - PEM_read_bio_X509
    - BIO_new_mem_buf
    - BIO_free
    linkageType: ''
    returnType: X509
    signature: X509 *cl_get_x509_from_mem(void *data, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/clamav/libclamav/crypto.c:846,1
    - Dst: readdir
      Src: /src/clamav/libclamav/crypto.c:850,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/crypto.c:854,1
    - Dst: realloc
      Src: /src/clamav/libclamav/crypto.c:857,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:861,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:862,1
    - Dst: closedir
      Src: /src/clamav/libclamav/crypto.c:865,1
    - Dst: malloc
      Src: /src/clamav/libclamav/crypto.c:870,1
    - Dst: strlen
      Src: /src/clamav/libclamav/crypto.c:870,1
    - Dst: strlen
      Src: /src/clamav/libclamav/crypto.c:870,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:874,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:875,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:878,1
    - Dst: closedir
      Src: /src/clamav/libclamav/crypto.c:879,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/crypto.c:883,1
    - Dst: closedir
      Src: /src/clamav/libclamav/crypto.c:887,1
    - Dst: realloc
      Src: /src/clamav/libclamav/crypto.c:889,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:893,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:894,1
    - Dst: cl_validate_certificate_chain
      Src: /src/clamav/libclamav/crypto.c:903,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:906,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:908,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - tsdir
    - certpath
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 911
      start: 838
    functionDepth: 3
    functionLinenumber: 838
    functionLinenumberEnd: 911
    functionName: cl_validate_certificate_chain_ts_dir
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - closedir
    - cl_validate_certificate_chain
    - strlen
    - realloc
    - cli_strbcasestr
    - opendir
    - readdir
    - malloc
    - free
    - sprintf
    linkageType: ''
    returnType: int
    signature: int cl_validate_certificate_chain_ts_dir(char *tsdir, char *certpath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: X509_STORE_new
      Src: /src/clamav/libclamav/crypto.c:924,1
    - Dst: X509_STORE_set_flags
      Src: /src/clamav/libclamav/crypto.c:928,1
    - Dst: X509_STORE_add_lookup
      Src: /src/clamav/libclamav/crypto.c:930,1
    - Dst: X509_LOOKUP_file
      Src: /src/clamav/libclamav/crypto.c:930,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:932,1
    - Dst: cl_load_crl
      Src: /src/clamav/libclamav/crypto.c:938,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:940,1
    - Dst: X509_STORE_add_crl
      Src: /src/clamav/libclamav/crypto.c:944,1
    - Dst: X509_VERIFY_PARAM_new
      Src: /src/clamav/libclamav/crypto.c:945,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/clamav/libclamav/crypto.c:947,1
    - Dst: X509_STORE_set1_param
      Src: /src/clamav/libclamav/crypto.c:948,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:950,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:951,1
    - Dst: X509_LOOKUP_load_file
      Src: /src/clamav/libclamav/crypto.c:958,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:959,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:961,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/clamav/libclamav/crypto.c:963,1
    - Dst: X509_STORE_add_lookup
      Src: /src/clamav/libclamav/crypto.c:968,1
    - Dst: X509_LOOKUP_hash_dir
      Src: /src/clamav/libclamav/crypto.c:968,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:970,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:972,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/clamav/libclamav/crypto.c:974,1
    - Dst: X509_LOOKUP_add_dir
      Src: /src/clamav/libclamav/crypto.c:978,1
    - Dst: X509_STORE_CTX_new
      Src: /src/clamav/libclamav/crypto.c:980,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:982,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:984,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/clamav/libclamav/crypto.c:986,1
    - Dst: cl_load_cert
      Src: /src/clamav/libclamav/crypto.c:990,1
    - Dst: X509_STORE_CTX_free
      Src: /src/clamav/libclamav/crypto.c:992,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:993,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:995,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/clamav/libclamav/crypto.c:997,1
    - Dst: X509_STORE_CTX_init
      Src: /src/clamav/libclamav/crypto.c:1002,1
    - Dst: X509_STORE_CTX_free
      Src: /src/clamav/libclamav/crypto.c:1003,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:1004,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:1006,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/clamav/libclamav/crypto.c:1008,1
    - Dst: X509_free
      Src: /src/clamav/libclamav/crypto.c:1010,1
    - Dst: X509_verify_cert
      Src: /src/clamav/libclamav/crypto.c:1015,1
    - Dst: X509_STORE_CTX_free
      Src: /src/clamav/libclamav/crypto.c:1017,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:1019,1
    - Dst: X509_VERIFY_PARAM_free
      Src: /src/clamav/libclamav/crypto.c:1022,1
    - Dst: X509_STORE_free
      Src: /src/clamav/libclamav/crypto.c:1024,1
    - Dst: X509_free
      Src: /src/clamav/libclamav/crypto.c:1026,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 3
    argNames:
    - authorities
    - crlpath
    - certpath
    argTypes:
    - char**
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1029
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 1029
    functionName: cl_validate_certificate_chain
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - X509_LOOKUP_file
    - X509_STORE_set1_param
    - X509_STORE_CTX_init
    - X509_STORE_add_lookup
    - X509_VERIFY_PARAM_set_flags
    - X509_STORE_add_crl
    - X509_STORE_new
    - cl_load_crl
    - cl_load_cert
    - X509_verify_cert
    - X509_STORE_set_flags
    - X509_free
    - X509_CRL_free
    - X509_VERIFY_PARAM_new
    - X509_LOOKUP_load_file
    - X509_STORE_free
    - X509_VERIFY_PARAM_free
    - X509_STORE_CTX_free
    - X509_STORE_CTX_new
    - X509_LOOKUP_hash_dir
    - X509_LOOKUP_add_dir
    linkageType: ''
    returnType: int
    signature: int cl_validate_certificate_chain(char **authorities, char *crlpath,
      char *certpath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/clamav/libclamav/crypto.c:1036,1
    - Dst: BIO_s_file
      Src: /src/clamav/libclamav/crypto.c:1036,1
    - Dst: BIO_read_filename
      Src: /src/clamav/libclamav/crypto.c:1040,1
    - Dst: BIO_free
      Src: /src/clamav/libclamav/crypto.c:1041,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/clamav/libclamav/crypto.c:1045,1
    - Dst: BIO_free
      Src: /src/clamav/libclamav/crypto.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - certpath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1050
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1050
    functionName: cl_load_cert
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - BIO_s_file
    - BIO_free
    - BIO_read_filename
    - BIO_new
    - PEM_read_bio_X509_AUX
    linkageType: ''
    returnType: X509
    signature: X509 *cl_load_cert(const char *certpath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/crypto.c:1068,1
    - Dst: calloc
      Src: /src/clamav/libclamav/crypto.c:1071,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:1096,1
    - Dst: strptime
      Src: /src/clamav/libclamav/crypto.c:1100,1
    - Dst: free
      Src: /src/clamav/libclamav/crypto.c:1101,1
    - Dst: time
      Src: /src/clamav/libclamav/crypto.c:1106,1
    - Dst: localtime
      Src: /src/clamav/libclamav/crypto.c:1108,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/crypto.c:1109,1
    - Dst: localtime_r
      Src: /src/clamav/libclamav/crypto.c:1111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - timeobj
    argTypes:
    - ASN1_TIME*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1115
    functionName: cl_ASN1_GetTimeT
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 0
    functionsReached:
    - strptime
    - calloc
    - strlen
    - localtime_r
    - time
    - memcpy
    - localtime
    - free
    linkageType: ''
    returnType: struct tm
    signature: struct tm *cl_ASN1_GetTimeT(ASN1_TIME *timeobj)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/crypto.c:1125,1
    - Dst: PEM_read_X509_CRL
      Src: /src/clamav/libclamav/crypto.c:1129,1
    - Dst: fclose
      Src: /src/clamav/libclamav/crypto.c:1131,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/clamav/libclamav/crypto.c:1136,1
    - Dst: X509_cmp_current_time
      Src: /src/clamav/libclamav/crypto.c:1137,1
    - Dst: X509_CRL_free
      Src: /src/clamav/libclamav/crypto.c:1138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1144
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1144
    functionName: cl_load_crl
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 1
    functionsReached:
    - PEM_read_X509_CRL
    - X509_CRL_free
    - X509_cmp_current_time
    - fclose
    - X509_CRL_get0_nextUpdate
    - fopen
    linkageType: ''
    returnType: X509_CRL
    signature: X509_CRL *cl_load_crl(const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/clamav/libclamav/crypto.c:1151,1
    - Dst: EVP_MD_CTX_create
      Src: /src/clamav/libclamav/crypto.c:1155,1
    - Dst: EVP_MD_CTX_set_flags
      Src: /src/clamav/libclamav/crypto.c:1162,1
    - Dst: EVP_DigestInit_ex
      Src: /src/clamav/libclamav/crypto.c:1165,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:1166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1171
    functionName: cl_hash_init
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 10
    functionsReached:
    - EVP_MD_CTX_set_flags
    - EVP_DigestInit_ex
    - EVP_MD_CTX_create
    - EVP_get_digestbyname
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: void
    signature: void *cl_hash_init(const char *alg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestUpdate
      Src: /src/clamav/libclamav/crypto.c:1181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - data
    - sz
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1189
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1189
    functionName: cl_update_hash
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 10
    functionsReached:
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int cl_update_hash(void *ctx, const void *data, size_t sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_DigestFinal_ex
      Src: /src/clamav/libclamav/crypto.c:1198,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:1201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1204
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1204
    functionName: cl_finish_hash
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 12
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: int
    signature: int cl_finish_hash(void *ctx, void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_destroy
      Src: /src/clamav/libclamav/crypto.c:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1212
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1212
    functionName: cl_hash_destroy
    functionSourceFile: /src/clamav/libclamav/crypto.c
    functionUses: 5
    functionsReached:
    - EVP_MD_CTX_destroy
    linkageType: ''
    returnType: void
    signature: void cl_hash_destroy(void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FSTAT
      Src: /src/clamav/libclamav/ooxml.c:107,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ooxml.c:108,1
    - Dst: cli_updatelimits
      Src: /src/clamav/libclamav/ooxml.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - ctx
    argTypes:
    - int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: ooxml_updatelimits
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 0
    functionsReached:
    - cli_updatelimits
    - cli_errmsg
    - FSTAT
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ooxml_updatelimits(int fd, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:120,1
    - Dst: ooxml_updatelimits
      Src: /src/clamav/libclamav/ooxml.c:123,1
    - Dst: xmlReaderForFd
      Src: /src/clamav/libclamav/ooxml.c:127,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:129,1
    - Dst: cli_msxml_parse_document
      Src: /src/clamav/libclamav/ooxml.c:133,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/ooxml.c:136,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/ooxml.c:138,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/ooxml.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - fd
    - ctx
    argTypes:
    - int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 141
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 141
    functionName: ooxml_parse_document
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 0
    functionsReached:
    - xmlTextReaderClose
    - cli_warnmsg
    - cli_msxml_parse_document
    - xmlReaderForFd
    - cli_dbgmsg
    - xmlFreeTextReader
    - ooxml_updatelimits
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ooxml_parse_document(int fd, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:147,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:148,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:151,1
    - Dst: ooxml_parse_document
      Src: /src/clamav/libclamav/ooxml.c:152,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:154,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - fd
    - filepath
    - ctx
    - name
    - attributes
    argTypes:
    - int
    - char*
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 6
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: ooxml_core_cb
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - ooxml_parse_document
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ooxml_core_cb(int fd, const char *filepath, cli_ctx *ctx,
      const char *name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:165,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:166,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:167,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:169,1
    - Dst: ooxml_parse_document
      Src: /src/clamav/libclamav/ooxml.c:170,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:172,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - fd
    - filepath
    - ctx
    - name
    - attributes
    argTypes:
    - int
    - char*
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 177
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 177
    functionName: ooxml_extn_cb
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_dbgmsg
    - ooxml_parse_document
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ooxml_extn_cb(int fd, const char *filepath, cli_ctx *ctx,
      const char *name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:189,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:190,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:191,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:196,1
    - Dst: ooxml_updatelimits
      Src: /src/clamav/libclamav/ooxml.c:199,1
    - Dst: xmlReaderForFd
      Src: /src/clamav/libclamav/ooxml.c:204,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:206,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:209,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/ooxml.c:217,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/ooxml.c:218,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/ooxml.c:223,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ooxml.c:226,1
    - Dst: xmlTextReaderHasAttributes
      Src: /src/clamav/libclamav/ooxml.c:228,1
    - Dst: xmlTextReaderMoveToNextAttribute
      Src: /src/clamav/libclamav/ooxml.c:231,1
    - Dst: xmlTextReaderConstLocalName
      Src: /src/clamav/libclamav/ooxml.c:232,1
    - Dst: xmlTextReaderConstValue
      Src: /src/clamav/libclamav/ooxml.c:233,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/ooxml.c:236,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/ooxml.c:238,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:242,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/ooxml.c:247,1
    - Dst: unzip_search_single
      Src: /src/clamav/libclamav/ooxml.c:249,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/ooxml.c:249,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:253,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:256,1
    - Dst: unzip_single_internal
      Src: /src/clamav/libclamav/ooxml.c:258,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/ooxml.c:265,1
    - Dst: unzip_search_single
      Src: /src/clamav/libclamav/ooxml.c:267,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/ooxml.c:267,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:271,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:274,1
    - Dst: unzip_single_internal
      Src: /src/clamav/libclamav/ooxml.c:276,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/ooxml.c:283,1
    - Dst: unzip_search_single
      Src: /src/clamav/libclamav/ooxml.c:285,1
    - Dst: xmlStrlen
      Src: /src/clamav/libclamav/ooxml.c:285,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:289,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:292,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/ooxml.c:296,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/ooxml.c:306,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:308,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:310,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/ooxml.c:312,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:313,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/ooxml.c:317,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:321,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/ooxml.c:323,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:324,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/ooxml.c:328,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:330,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:332,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/ooxml.c:334,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:335,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/ooxml.c:339,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/ooxml.c:346,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/ooxml.c:347,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 146
    argCount: 5
    argNames:
    - fd
    - filepath
    - ctx
    - name
    - attributes
    argTypes:
    - int
    - char*
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 349
      start: 179
    functionDepth: 13
    functionLinenumber: 179
    functionLinenumberEnd: 349
    functionName: ooxml_content_cb
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 0
    functionsReached:
    - xmlStrcmp
    - cli_json_timeout_cycle_check
    - xmlStrlen
    - strcmp
    - cli_jsonint
    - xmlTextReaderConstValue
    - cli_dbgmsg
    - unzip_single_internal
    - xmlTextReaderHasAttributes
    - xmlReaderForFd
    - xmlTextReaderConstLocalName
    - unzip_search_single
    - xmlFreeTextReader
    - xmlTextReaderRead
    - ooxml_updatelimits
    - xmlTextReaderClose
    - UNUSEDPARAM
    - xmlTextReaderMoveToNextAttribute
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ooxml_content_cb(int fd, const char *filepath, cli_ctx *ctx,
      const char *name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:356,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:357,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ooxml.c:358,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:360,1
    - Dst: ooxml_updatelimits
      Src: /src/clamav/libclamav/ooxml.c:363,1
    - Dst: xmlReaderForFd
      Src: /src/clamav/libclamav/ooxml.c:367,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:369,1
    - Dst: cli_msxml_parse_document
      Src: /src/clamav/libclamav/ooxml.c:373,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/ooxml.c:376,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/ooxml.c:378,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/ooxml.c:379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - fd
    - filepath
    - ctx
    - name
    - attributes
    argTypes:
    - int
    - char*
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 381
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 381
    functionName: ooxml_hwp_cb
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 0
    functionsReached:
    - xmlTextReaderClose
    - UNUSEDPARAM
    - cli_warnmsg
    - cli_msxml_parse_document
    - xmlReaderForFd
    - cli_dbgmsg
    - xmlFreeTextReader
    - ooxml_updatelimits
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ooxml_hwp_cb(int fd, const char *filepath, cli_ctx *ctx,
      const char *name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/ooxml.c:388,1
    - Dst: unzip_search_add
      Src: /src/clamav/libclamav/ooxml.c:390,1
    - Dst: unzip_search_add
      Src: /src/clamav/libclamav/ooxml.c:393,1
    - Dst: unzip_search_add
      Src: /src/clamav/libclamav/ooxml.c:396,1
    - Dst: unzip_search_add
      Src: /src/clamav/libclamav/ooxml.c:399,1
    - Dst: unzip_search
      Src: /src/clamav/libclamav/ooxml.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - map
    argTypes:
    - cli_ctx*
    - fmap_t*
    constantsTouched: []
    func_position:
      end: 419
      start: 383
    functionDepth: 12
    functionLinenumber: 383
    functionLinenumberEnd: 419
    functionName: cli_ooxml_filetype
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 1
    functionsReached:
    - unzip_search_add
    - memset
    - unzip_search
    linkageType: ''
    returnType: cli_file_t
    signature: cli_file_t cli_ooxml_filetype(cli_ctx *ctx, fmap_t *map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:426,1
    - Dst: unzip_search_single
      Src: /src/clamav/libclamav/ooxml.c:433,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:437,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:440,1
    - Dst: unzip_single_internal
      Src: /src/clamav/libclamav/ooxml.c:443,1
    - Dst: unzip_search_single
      Src: /src/clamav/libclamav/ooxml.c:446,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:450,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:453,1
    - Dst: unzip_single_internal
      Src: /src/clamav/libclamav/ooxml.c:456,1
    - Dst: unzip_search_single
      Src: /src/clamav/libclamav/ooxml.c:460,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:464,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/ooxml.c:467,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ooxml.c:470,1
    - Dst: unzip_single_internal
      Src: /src/clamav/libclamav/ooxml.c:475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 479
      start: 421
    functionDepth: 13
    functionLinenumber: 421
    functionLinenumberEnd: 479
    functionName: cli_process_ooxml
    functionSourceFile: /src/clamav/libclamav/ooxml.c
    functionUses: 0
    functionsReached:
    - unzip_search_single
    - cli_dbgmsg
    - unzip_single_internal
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_process_ooxml(cli_ctx *ctx, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/blob.c:68,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:71,1
    - Dst: calloc
      Src: /src/clamav/libclamav/blob.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: blobCreate
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 8
    functionsReached:
    - cli_dbgmsg
    - calloc
    linkageType: ''
    returnType: blob
    signature: 'blob *

      blobCreate(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:81,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:83,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:86,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:88,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:92,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:94,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - b
    argTypes:
    - blob*
    constantsTouched: []
    func_position:
      end: 99
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 99
    functionName: blobDestroy
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 11
    functionsReached:
    - cli_dbgmsg
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void blobDestroy(blob *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:103,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:106,1
    - Dst: blobDestroy
      Src: /src/clamav/libclamav/blob.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - blobList
    - n
    argTypes:
    - blob*[]
    - int
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: blobArrayDestroy
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 0
    functionsReached:
    - blobDestroy
    - cli_dbgmsg
    - assert
    linkageType: ''
    returnType: void
    signature: void blobArrayDestroy(blob *blobList[], int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:123,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:125,1
    - Dst: blobClose
      Src: /src/clamav/libclamav/blob.c:129,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:131,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - b
    argTypes:
    - blob*
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: blobToMem
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 1
    functionsReached:
    - assert
    - free
    - blobClose
    linkageType: ''
    returnType: void
    signature: 'void *

      blobToMem(blob *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:144,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:146,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:148,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/blob.c:150,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:152,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:155,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/blob.c:157,1
    - Dst: sanitiseName
      Src: /src/clamav/libclamav/blob.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - dir
    - filename
    argTypes:
    - blob*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 161
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 161
    functionName: blobSetFilename
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 5
    functionsReached:
    - sanitiseName
    - UNUSEDPARAM
    - cli_safer_strdup
    - cli_dbgmsg
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void blobSetFilename(blob *b, const char *dir, const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:166,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - blob*
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: blobGetFilename
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      blobGetFilename(const blob *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:184,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:186,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:188,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/blob.c:198,1
    - Dst: cli_getpagesize
      Src: /src/clamav/libclamav/blob.c:212,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:224,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:225,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/blob.c:228,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:244,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:245,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/blob.c:248,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/blob.c:265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 3
    argNames:
    - b
    - data
    - len
    argTypes:
    - blob*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 272
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 272
    functionName: blobAddData
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 6
    functionsReached:
    - cli_warnmsg
    - cli_max_malloc
    - cli_getpagesize
    - memcpy
    - assert
    linkageType: ''
    returnType: int
    signature: int blobAddData(blob *b, const unsigned char *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:277,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - blob*
    constantsTouched: []
    func_position:
      end: 285
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 285
    functionName: blobGetData
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      blobGetData(const blob *b)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:290,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - blob*
    constantsTouched: []
    func_position:
      end: 296
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 296
    functionName: blobGetDataSize
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t blobGetDataSize(const blob *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:300,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:302,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/blob.c:306,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:316,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:318,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - b
    argTypes:
    - blob*
    constantsTouched: []
    func_position:
      end: 336
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 336
    functionName: blobClose
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 2
    functionsReached:
    - cli_warnmsg
    - cli_dbgmsg
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void blobClose(blob *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:345,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:346,1
    - Dst: blobGetDataSize
      Src: /src/clamav/libclamav/blob.c:351,1
    - Dst: blobGetDataSize
      Src: /src/clamav/libclamav/blob.c:352,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/blob.c:360,1
    - Dst: blobGetData
      Src: /src/clamav/libclamav/blob.c:360,1
    - Dst: blobGetData
      Src: /src/clamav/libclamav/blob.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - b1
    - b2
    argTypes:
    - blob*
    - blob*
    constantsTouched: []
    func_position:
      end: 361
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 361
    functionName: blobcmp
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 0
    functionsReached:
    - blobGetDataSize
    - memcmp
    - assert
    - blobGetData
    linkageType: ''
    returnType: int
    signature: int blobcmp(const blob *b1, const blob *b2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:368,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:370,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/blob.c:381,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:385,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:386,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/blob.c:388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - b
    - len
    argTypes:
    - blob*
    - size_t
    constantsTouched: []
    func_position:
      end: 401
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 401
    functionName: blobGrow
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - cli_max_malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int blobGrow(blob *b, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/blob.c:407,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:410,1
    - Dst: calloc
      Src: /src/clamav/libclamav/blob.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: fileblobCreate
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 6
    functionsReached:
    - cli_dbgmsg
    - calloc
    linkageType: ''
    returnType: fileblob
    signature: 'fileblob *

      fileblobCreate(void)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fileblobScan
      Src: /src/clamav/libclamav/blob.c:423,1
    - Dst: fileblobDestructiveDestroy
      Src: /src/clamav/libclamav/blob.c:425,1
    - Dst: fileblobDestructiveDestroy
      Src: /src/clamav/libclamav/blob.c:428,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/blob.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - fb
    argTypes:
    - fileblob*
    constantsTouched: []
    func_position:
      end: 434
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 434
    functionName: fileblobScanAndDestroy
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 5
    functionsReached:
    - fileblobScan
    - fileblobDestroy
    - fileblobDestructiveDestroy
    linkageType: ''
    returnType: int
    signature: int fileblobScanAndDestroy(fileblob *fb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/clamav/libclamav/blob.c:442,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:443,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/blob.c:445,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:446,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:451,1
    - Dst: fileblobDestroy
      Src: /src/clamav/libclamav/blob.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - fb
    argTypes:
    - fileblob*
    constantsTouched: []
    func_position:
      end: 455
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 455
    functionName: fileblobDestructiveDestroy
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 1
    functionsReached:
    - cli_unlink
    - cli_dbgmsg
    - fileblobDestroy
    - fclose
    - free
    linkageType: ''
    returnType: void
    signature: void fileblobDestructiveDestroy(fileblob *fb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:463,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:465,1
    - Dst: fclose
      Src: /src/clamav/libclamav/blob.c:469,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:473,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/blob.c:474,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:477,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:479,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:481,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/blob.c:483,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:485,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/blob.c:487,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:491,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:495,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - fb
    argTypes:
    - fileblob*
    constantsTouched: []
    func_position:
      end: 496
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 496
    functionName: fileblobDestroy
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 7
    functionsReached:
    - cli_unlink
    - cli_errmsg
    - cli_dbgmsg
    - fclose
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void fileblobDestroy(fileblob *fb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/blob.c:500,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:505,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:507,1
    - Dst: open
      Src: /src/clamav/libclamav/blob.c:509,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/blob.c:511,1
    - Dst: fdopen
      Src: /src/clamav/libclamav/blob.c:514,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/blob.c:517,1
    - Dst: close
      Src: /src/clamav/libclamav/blob.c:518,1
    - Dst: blobSetFilename
      Src: /src/clamav/libclamav/blob.c:521,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/blob.c:523,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:524,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/blob.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - fb
    - fullname
    - arg
    argTypes:
    - fileblob*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 530
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 530
    functionName: fileblobPartialSet
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 0
    functionsReached:
    - close
    - blobSetFilename
    - fileblobAddData
    - UNUSEDPARAM
    - open
    - cli_safer_strdup
    - fdopen
    - cli_dbgmsg
    - free
    - assert
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void fileblobPartialSet(fileblob *fb, const char *fullname, const char
      *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:539,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:540,1
    - Dst: blobSetFilename
      Src: /src/clamav/libclamav/blob.c:542,1
    - Dst: blobGetFilename
      Src: /src/clamav/libclamav/blob.c:548,1
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:550,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/blob.c:552,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:554,1
    - Dst: fdopen
      Src: /src/clamav/libclamav/blob.c:556,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/blob.c:559,1
    - Dst: close
      Src: /src/clamav/libclamav/blob.c:560,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:561,1
    - Dst: fileblobAddData
      Src: /src/clamav/libclamav/blob.c:565,1
    - Dst: free
      Src: /src/clamav/libclamav/blob.c:566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - fb
    - dir
    - filename
    argTypes:
    - fileblob*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 572
      start: 532
    functionDepth: 4
    functionLinenumber: 532
    functionLinenumberEnd: 572
    functionName: fileblobSetFilename
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 5
    functionsReached:
    - close
    - blobSetFilename
    - fileblobAddData
    - fdopen
    - cli_dbgmsg
    - cli_gentempfd
    - blobGetFilename
    - free
    - assert
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void fileblobSetFilename(fileblob *fb, const char *dir, const char
      *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/blob.c:579,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/blob.c:590,1
    - Dst: cli_updatelimits
      Src: /src/clamav/libclamav/blob.c:600,1
    - Dst: cli_scan_buff
      Src: /src/clamav/libclamav/blob.c:600,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/blob.c:607,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/blob.c:608,1
    - Dst: blobAddData
      Src: /src/clamav/libclamav/blob.c:615,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - fb
    - data
    - len
    argTypes:
    - fileblob*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 616
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 616
    functionName: fileblobAddData
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 6
    functionsReached:
    - blobAddData
    - fwrite
    - cli_updatelimits
    - cli_checklimits
    - cli_scan_buff
    - assert
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int fileblobAddData(fileblob *fb, const unsigned char *data, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blobGetFilename
      Src: /src/clamav/libclamav/blob.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fb
    argTypes:
    - fileblob*
    constantsTouched: []
    func_position:
      end: 622
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 622
    functionName: fileblobGetFilename
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 3
    functionsReached:
    - blobGetFilename
    linkageType: ''
    returnType: char
    signature: 'char *

      fileblobGetFilename(const fileblob *fb)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fb
    - ctx
    argTypes:
    - fileblob*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 627
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 627
    functionName: fileblobSetCTX
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fileblobSetCTX(fileblob *fb, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/blob.c:644,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/blob.c:649,1
    - Dst: fflush
      Src: /src/clamav/libclamav/blob.c:653,1
    - Dst: lseek
      Src: /src/clamav/libclamav/blob.c:654,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/blob.c:655,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/blob.c:657,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/blob.c:662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - fb
    argTypes:
    - fileblob*
    constantsTouched: []
    func_position:
      end: 668
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 668
    functionName: fileblobScan
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 1
    functionsReached:
    - lseek
    - cli_magic_scan_desc
    - cli_matchmeta
    - cli_warnmsg
    - FSTAT
    - fflush
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t fileblobScan(const fileblob *fb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fb
    argTypes:
    - fileblob*
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 677
    functionName: fileblobInfected
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fileblobInfected(const fileblob *fb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 693
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 693
    functionName: sanitiseName
    functionSourceFile: /src/clamav/libclamav/blob.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sanitiseName(char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dlp.c:166,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dlp.c:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - digits
    - cc_only
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 173
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 173
    functionName: get_iin
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: struct iin_map_struct
    signature: struct iin_map_struct *get_iin(char *digits, int cc_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:193,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:201,1
    - Dst: get_iin
      Src: /src/clamav/libclamav/dlp.c:217,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:223,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dlp.c:250,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 49
    argCount: 3
    argNames:
    - buffer
    - length
    - cc_only
    argTypes:
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 253
    functionName: dlp_is_valid_cc
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - get_iin
    - cli_dbgmsg
    - isdigit
    linkageType: ''
    returnType: int
    signature: int dlp_is_valid_cc(const unsigned char *buffer, size_t length, int
      cc_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:269,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:270,1
    - Dst: dlp_is_valid_cc
      Src: /src/clamav/libclamav/dlp.c:270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - buffer
    - length
    - detmode
    - cc_only
    argTypes:
    - unsigned char*
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 286
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 286
    functionName: contains_cc
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - dlp_is_valid_cc
    - isdigit
    linkageType: ''
    returnType: int
    signature: int contains_cc(const unsigned char *buffer, size_t length, int detmode,
      int cc_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_cc
      Src: /src/clamav/libclamav/dlp.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - length
    - cc_only
    argTypes:
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 5
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: dlp_get_cc_count
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - contains_cc
    linkageType: ''
    returnType: int
    signature: int dlp_get_cc_count(const unsigned char *buffer, size_t length, int
      cc_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_cc
      Src: /src/clamav/libclamav/dlp.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - length
    - cc_only
    argTypes:
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: dlp_has_cc
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - contains_cc
    linkageType: ''
    returnType: int
    signature: int dlp_has_cc(const unsigned char *buffer, size_t length, int cc_only)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:315,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/dlp.c:318,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dlp.c:327,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/dlp.c:336,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/dlp.c:339,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dlp.c:348,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dlp.c:375,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 38
    argCount: 3
    argNames:
    - buffer
    - length
    - format
    argTypes:
    - unsigned char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 378
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 378
    functionName: dlp_is_valid_ssn
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strncpy
    - cli_dbgmsg
    - cli_isnumber
    - isdigit
    linkageType: ''
    returnType: int
    signature: int dlp_is_valid_ssn(const unsigned char *buffer, size_t length, int
      format)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:392,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:394,1
    - Dst: dlp_is_valid_ssn
      Src: /src/clamav/libclamav/dlp.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - buffer
    - length
    - format
    - detmode
    argTypes:
    - unsigned char*
    - size_t
    - int
    - int
    constantsTouched: []
    func_position:
      end: 408
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 408
    functionName: contains_ssn
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - dlp_is_valid_ssn
    - isdigit
    linkageType: ''
    returnType: int
    signature: int contains_ssn(const unsigned char *buffer, size_t length, int format,
      int detmode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_ssn
      Src: /src/clamav/libclamav/dlp.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: dlp_get_stripped_ssn_count
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - contains_ssn
    linkageType: ''
    returnType: int
    signature: int dlp_get_stripped_ssn_count(const unsigned char *buffer, size_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_ssn
      Src: /src/clamav/libclamav/dlp.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: dlp_get_normal_ssn_count
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - contains_ssn
    linkageType: ''
    returnType: int
    signature: int dlp_get_normal_ssn_count(const unsigned char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dlp_get_stripped_ssn_count
      Src: /src/clamav/libclamav/dlp.c:431,1
    - Dst: dlp_get_normal_ssn_count
      Src: /src/clamav/libclamav/dlp.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: dlp_get_ssn_count
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - dlp_get_stripped_ssn_count
    - dlp_get_normal_ssn_count
    linkageType: ''
    returnType: int
    signature: int dlp_get_ssn_count(const unsigned char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_ssn
      Src: /src/clamav/libclamav/dlp.c:436,1
    - Dst: contains_ssn
      Src: /src/clamav/libclamav/dlp.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: dlp_has_ssn
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - contains_ssn
    linkageType: ''
    returnType: int
    signature: int dlp_has_ssn(const unsigned char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_ssn
      Src: /src/clamav/libclamav/dlp.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: dlp_has_stripped_ssn
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - contains_ssn
    linkageType: ''
    returnType: int
    signature: int dlp_has_stripped_ssn(const unsigned char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_ssn
      Src: /src/clamav/libclamav/dlp.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: dlp_has_normal_ssn
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - contains_ssn
    linkageType: ''
    returnType: int
    signature: int dlp_has_normal_ssn(const unsigned char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 76
    argCount: 1
    argNames:
    - bank_code
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 554
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 554
    functionName: is_bank_code_valid
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_bank_code_valid(int bank_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:576,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:585,1
    - Dst: is_bank_code_valid
      Src: /src/clamav/libclamav/dlp.c:591,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 592
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 592
    functionName: cdn_ctn_is_valid
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - is_bank_code_valid
    - isdigit
    linkageType: ''
    returnType: int
    signature: int cdn_ctn_is_valid(const char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:615,1
    - Dst: is_bank_code_valid
      Src: /src/clamav/libclamav/dlp.c:622,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:626,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 630
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 630
    functionName: cdn_eft_is_valid
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - is_bank_code_valid
    - isdigit
    linkageType: ''
    returnType: int
    signature: int cdn_eft_is_valid(const char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/dlp.c:644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 665
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 665
    functionName: us_micr_is_valid
    functionSourceFile: /src/clamav/libclamav/dlp.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int us_micr_is_valid(const char *buffer, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/regex_suffix.c:79,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - left
    - right
    argTypes:
    - enum node_type
    - struct node*
    - struct node*
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: make_node
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 0
    functionsReached:
    - malloc
    - cli_errmsg
    linkageType: ''
    returnType: struct node
    signature: struct node *make_node(enum node_type type, struct node *left, struct
      node *right)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/regex_suffix.c:102,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:104,1
    - Dst: malloc
      Src: /src/clamav/libclamav/regex_suffix.c:114,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:116,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_suffix.c:117,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/regex_suffix.c:120,1
    - Dst: dup_node
      Src: /src/clamav/libclamav/regex_suffix.c:123,1
    - Dst: dup_node
      Src: /src/clamav/libclamav/regex_suffix.c:124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct node*
    constantsTouched: []
    func_position:
      end: 134
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 134
    functionName: dup_node
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 1
    functionsReached:
    - dup_node
    - cli_errmsg
    - memcpy
    - malloc
    - free
    linkageType: ''
    returnType: struct node
    signature: struct node *dup_node(struct node *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/regex_suffix.c:143,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: make_charclass
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 0
    functionsReached:
    - malloc
    - cli_errmsg
    linkageType: ''
    returnType: struct node
    signature: struct node *make_charclass(uint8_t *bitmap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/regex_suffix.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: make_leaf
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct node
    signature: struct node *make_leaf(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:173,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:174,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_suffix.c:178,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_suffix.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct node*
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: destroy_tree
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 1
    functionsReached:
    - CLI_FREE_AND_SET_NULL
    - destroy_tree
    linkageType: ''
    returnType: void
    signature: void destroy_tree(struct node *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/regex_suffix.c:210,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:211,1
    - Dst: memset
      Src: /src/clamav/libclamav/regex_suffix.c:214,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:215,1
    - Dst: memset
      Src: /src/clamav/libclamav/regex_suffix.c:217,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_suffix.c:225,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:226,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:229,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_suffix.c:233,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:238,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:239,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:240,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_suffix.c:251,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:252,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:253,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:254,1
    - Dst: INC_POS
      Src: /src/clamav/libclamav/regex_suffix.c:259,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 3
    argNames:
    - pat
    - patSize
    - pos
    argTypes:
    - uint8_t*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 269
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 269
    functionName: parse_char_class
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 0
    functionsReached:
    - memset
    - INC_POS
    - CLI_MALLOC_OR_GOTO_DONE
    - CLI_FREE_AND_SET_NULL
    - cli_errmsg
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *parse_char_class(const uint8_t *pat, size_t patSize, size_t
      *pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_regex
      Src: /src/clamav/libclamav/regex_suffix.c:281,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:282,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:284,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:290,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:297,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:299,1
    - Dst: dup_node
      Src: /src/clamav/libclamav/regex_suffix.c:303,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:305,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:309,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:311,1
    - Dst: parse_regex
      Src: /src/clamav/libclamav/regex_suffix.c:318,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:320,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:324,1
    - Dst: make_charclass
      Src: /src/clamav/libclamav/regex_suffix.c:329,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:331,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:334,1
    - Dst: make_charclass
      Src: /src/clamav/libclamav/regex_suffix.c:341,1
    - Dst: parse_char_class
      Src: /src/clamav/libclamav/regex_suffix.c:341,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:343,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:346,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:348,1
    - Dst: make_leaf
      Src: /src/clamav/libclamav/regex_suffix.c:360,1
    - Dst: make_node
      Src: /src/clamav/libclamav/regex_suffix.c:361,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:363,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 90
    argCount: 3
    argNames:
    - p
    - pSize
    - last
    argTypes:
    - uint8_t*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 371
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 371
    functionName: parse_regex
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 1
    functionsReached:
    - dup_node
    - make_leaf
    - make_charclass
    - make_node
    - destroy_tree
    - parse_regex
    - parse_char_class
    linkageType: ''
    returnType: struct node
    signature: struct node *parse_regex(const uint8_t *p, const size_t pSize, size_t
      *last)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/regex_suffix.c:382,1
    - Dst: cb
      Src: /src/clamav/libclamav/regex_suffix.c:383,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/regex_suffix.c:387,1
    - Dst: BITMAP_HASSET
      Src: /src/clamav/libclamav/regex_suffix.c:393,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/regex_suffix.c:396,1
    - Dst: cb
      Src: /src/clamav/libclamav/regex_suffix.c:397,1
    - Dst: BITMAP_HASSET
      Src: /src/clamav/libclamav/regex_suffix.c:403,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/regex_suffix.c:406,1
    - Dst: build_suffixtree_ascend
      Src: /src/clamav/libclamav/regex_suffix.c:407,1
    - Dst: build_suffixtree_descend
      Src: /src/clamav/libclamav/regex_suffix.c:415,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/regex_suffix.c:428,1
    - Dst: cb
      Src: /src/clamav/libclamav/regex_suffix.c:429,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 6
    argNames:
    - n
    - buf
    - prev
    - cb
    - cbdata
    - regex
    argTypes:
    - struct node*
    - struct text_buffer*
    - struct node*
    - suffix_callback
    - void*
    - struct regex_list*
    constantsTouched: []
    func_position:
      end: 436
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 436
    functionName: build_suffixtree_ascend
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 1
    functionsReached:
    - build_suffixtree_descend
    - BITMAP_HASSET
    - build_suffixtree_ascend
    - textbuffer_putc
    - cb
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t build_suffixtree_ascend(struct node *n, struct text_buffer
      *buf, struct node *prev, suffix_callback cb, void *cbdata, struct regex_list
      *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_suffixtree_descend
      Src: /src/clamav/libclamav/regex_suffix.c:452,1
    - Dst: build_suffixtree_descend
      Src: /src/clamav/libclamav/regex_suffix.c:455,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/regex_suffix.c:460,1
    - Dst: cb
      Src: /src/clamav/libclamav/regex_suffix.c:461,1
    - Dst: build_suffixtree_ascend
      Src: /src/clamav/libclamav/regex_suffix.c:466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - n
    - buf
    - cb
    - cbdata
    - regex
    argTypes:
    - struct node*
    - struct text_buffer*
    - suffix_callback
    - void*
    - struct regex_list*
    constantsTouched: []
    func_position:
      end: 473
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 473
    functionName: build_suffixtree_descend
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 2
    functionsReached:
    - textbuffer_putc
    - build_suffixtree_descend
    - cb
    - build_suffixtree_ascend
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t build_suffixtree_descend(struct node *n, struct text_buffer
      *buf, suffix_callback cb, void *cbdata, struct regex_list *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:485,1
    - Dst: cli_regcomp
      Src: /src/clamav/libclamav/regex_suffix.c:491,1
    - Dst: cli_regerror
      Src: /src/clamav/libclamav/regex_suffix.c:496,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:497,1
    - Dst: free
      Src: /src/clamav/libclamav/regex_suffix.c:498,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:500,1
    - Dst: CLI_SAFER_STRDUP_OR_GOTO_DONE
      Src: /src/clamav/libclamav/regex_suffix.c:505,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/regex_suffix.c:506,1
    - Dst: parse_regex
      Src: /src/clamav/libclamav/regex_suffix.c:509,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex_suffix.c:509,1
    - Dst: memset
      Src: /src/clamav/libclamav/regex_suffix.c:514,1
    - Dst: memset
      Src: /src/clamav/libclamav/regex_suffix.c:515,1
    - Dst: build_suffixtree_descend
      Src: /src/clamav/libclamav/regex_suffix.c:518,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_suffix.c:521,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/regex_suffix.c:522,1
    - Dst: destroy_tree
      Src: /src/clamav/libclamav/regex_suffix.c:523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 4
    argNames:
    - pattern
    - preg
    - cb
    - cbdata
    argTypes:
    - char*
    - regex_t*
    - suffix_callback
    - void*
    constantsTouched: []
    func_position:
      end: 525
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 525
    functionName: cli_regex2suffix
    functionSourceFile: /src/clamav/libclamav/regex_suffix.c
    functionUses: 4
    functionsReached:
    - memset
    - cli_regcomp
    - strlen
    - cli_errmsg
    - build_suffixtree_descend
    - destroy_tree
    - CLI_FREE_AND_SET_NULL
    - parse_regex
    - cli_regerror
    - free
    - CLI_SAFER_STRDUP_OR_GOTO_DONE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_regex2suffix(const char *pattern, regex_t *preg, suffix_callback
      cb, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/stats_json.c:53,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/stats_json.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - data
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: hex_encode
    functionSourceFile: /src/clamav/libclamav/stats_json.c
    functionUses: 0
    functionsReached:
    - calloc
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *hex_encode(char *buf, char *data, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/clamav/libclamav/stats_json.c:70,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/stats_json.c:72,1
    - Dst: strerror
      Src: /src/clamav/libclamav/stats_json.c:72,1
    - Dst: free
      Src: /src/clamav/libclamav/stats_json.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - buf
    - oldsize
    - used
    - additional
    argTypes:
    - char*
    - size_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 81
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 81
    functionName: ensure_bufsize
    functionSourceFile: /src/clamav/libclamav/stats_json.c
    functionUses: 0
    functionsReached:
    - free
    - realloc
    - cli_errmsg
    - strerror
    linkageType: ''
    returnType: char
    signature: char *ensure_bufsize(char *buf, size_t *oldsize, size_t used, size_t
      additional)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct cl_engine*::cb_stats_get_hostid
      Src: /src/clamav/libclamav/stats_json.c:91,1
    - Dst: calloc
      Src: /src/clamav/libclamav/stats_json.c:95,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/stats_json.c:100,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/stats_json.c:102,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:102,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/stats_json.c:104,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:104,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:105,1
    - Dst: memset
      Src: /src/clamav/libclamav/stats_json.c:111,1
    - Dst: hex_encode
      Src: /src/clamav/libclamav/stats_json.c:112,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:114,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:114,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:118,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:119,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:121,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:121,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:125,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:126,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:129,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:131,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:131,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:135,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:136,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:138,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:140,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:140,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:144,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:145,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:147,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:152,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:156,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:157,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:160,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:164,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:165,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:167,1
    - Dst: memset
      Src: /src/clamav/libclamav/stats_json.c:171,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/stats_json.c:173,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:175,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:176,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:178,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:182,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:183,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:185,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:189,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:190,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:193,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:197,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:198,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:201,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:202,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:205,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:205,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:209,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:210,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:213,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:217,1
    - Dst: strlen
      Src: /src/clamav/libclamav/stats_json.c:218,1
    - Dst: ensure_bufsize
      Src: /src/clamav/libclamav/stats_json.c:221,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/stats_json.c:225,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 101
    argCount: 2
    argNames:
    - engine
    - intel
    argTypes:
    - struct cl_engine*
    - cli_intel_t*
    constantsTouched: []
    func_position:
      end: 228
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 228
    functionName: export_stats_to_json
    functionSourceFile: /src/clamav/libclamav/stats_json.c
    functionUses: 1
    functionsReached:
    - memset
    - struct cl_engine*::cb_stats_get_hostid
    - calloc
    - snprintf
    - strlen
    - hex_encode
    - ensure_bufsize
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *export_stats_to_json(struct cl_engine *engine, cli_intel_t *intel)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:104,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:106,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:108,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - dst
    - dsize
    - pehdr
    - valign
    - sectcnt
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint32_t*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: checkpe
    functionSourceFile: /src/clamav/libclamav/upx.c
    functionUses: 0
    functionsReached:
    - CLI_ISCONTAINED
    - cli_readint32
    linkageType: ''
    returnType: char
    signature: char *checkpe(char *dst, uint32_t dsize, char *pehdr, uint32_t *valign,
      unsigned int *sectcnt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:131,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:137,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:139,1
    - Dst: cli_memstr
      Src: /src/clamav/libclamav/upx.c:141,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:150,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:151,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:156,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:160,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:160,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:162,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:164,1
    - Dst: checkpe
      Src: /src/clamav/libclamav/upx.c:172,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:177,1
    - Dst: checkpe
      Src: /src/clamav/libclamav/upx.c:180,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:189,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/upx.c:190,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:191,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:194,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:195,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:196,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:197,1
    - Dst: free
      Src: /src/clamav/libclamav/upx.c:198,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:199,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:200,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:203,1
    - Dst: PESALIGN
      Src: /src/clamav/libclamav/upx.c:209,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:216,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:217,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:221,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:222,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:223,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:224,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:234,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:235,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/upx.c:237,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:238,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:242,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:243,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:247,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:248,1
    - Dst: free
      Src: /src/clamav/libclamav/upx.c:250,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:254,1
    - Dst: free
      Src: /src/clamav/libclamav/upx.c:256,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:259,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:267,1
    - Dst: free
      Src: /src/clamav/libclamav/upx.c:268,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/upx.c:271,1
    - Dst: free
      Src: /src/clamav/libclamav/upx.c:273,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/upx.c:275,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 120
    argCount: 9
    argNames:
    - src
    - ssize
    - dst
    - dsize
    - ep
    - upx0
    - upx1
    - magic
    - dend
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 277
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 277
    functionName: pefromupx
    functionSourceFile: /src/clamav/libclamav/upx.c
    functionUses: 0
    functionsReached:
    - checkpe
    - PESALIGN
    - cli_readint32
    - CLI_ISCONTAINED
    - cli_memstr
    - cli_dbgmsg
    - cli_writeint32
    - memcpy
    - cli_max_calloc
    - free
    linkageType: ''
    returnType: int
    signature: int pefromupx(const char *src, uint32_t ssize, char *dst, uint32_t
      *dsize, uint32_t ep, uint32_t upx0, uint32_t upx1, uint32_t *magic, uint32_t
      dend)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:287,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/upx.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - src
    - myebx
    - scur
    - ssize
    argTypes:
    - char*
    - uint32_t*
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: doubleebx
    functionSourceFile: /src/clamav/libclamav/upx.c
    functionUses: 0
    functionsReached:
    - CLI_ISCONTAINED
    - cli_readint32
    linkageType: ''
    returnType: int
    signature: int doubleebx(const char *src, uint32_t *myebx, uint32_t *scur, uint32_t
      ssize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:305,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:317,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:322,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:345,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:347,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:355,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:360,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:373,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:373,1
    - Dst: pefromupx
      Src: /src/clamav/libclamav/upx.c:380,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 66
    argCount: 7
    argNames:
    - src
    - ssize
    - dst
    - dsize
    - upx0
    - upx1
    - ep
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 381
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 381
    functionName: upx_inflate2b
    functionSourceFile: /src/clamav/libclamav/upx.c
    functionUses: 1
    functionsReached:
    - pefromupx
    - CLI_ISCONTAINED
    - doubleebx
    linkageType: ''
    returnType: int
    signature: int upx_inflate2b(const char *src, uint32_t ssize, char *dst, uint32_t
      *dsize, uint32_t upx0, uint32_t upx1, uint32_t ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:390,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:402,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:407,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:412,1
    - Dst: CLI_SAR
      Src: /src/clamav/libclamav/upx.c:435,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:438,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:442,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:450,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:455,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:467,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:467,1
    - Dst: pefromupx
      Src: /src/clamav/libclamav/upx.c:474,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 7
    argNames:
    - src
    - ssize
    - dst
    - dsize
    - upx0
    - upx1
    - ep
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 475
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 475
    functionName: upx_inflate2d
    functionSourceFile: /src/clamav/libclamav/upx.c
    functionUses: 1
    functionsReached:
    - CLI_ISCONTAINED
    - pefromupx
    - CLI_SAR
    - doubleebx
    linkageType: ''
    returnType: int
    signature: int upx_inflate2d(const char *src, uint32_t ssize, char *dst, uint32_t
      *dsize, uint32_t upx0, uint32_t upx1, uint32_t ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:484,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:495,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:500,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:505,1
    - Dst: CLI_SAR
      Src: /src/clamav/libclamav/upx.c:527,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:530,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:535,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:539,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:542,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:549,1
    - Dst: doubleebx
      Src: /src/clamav/libclamav/upx.c:554,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:570,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/upx.c:570,1
    - Dst: pefromupx
      Src: /src/clamav/libclamav/upx.c:577,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 85
    argCount: 7
    argNames:
    - src
    - ssize
    - dst
    - dsize
    - upx0
    - upx1
    - ep
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 578
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 578
    functionName: upx_inflate2e
    functionSourceFile: /src/clamav/libclamav/upx.c
    functionUses: 1
    functionsReached:
    - CLI_ISCONTAINED
    - pefromupx
    - CLI_SAR
    - doubleebx
    linkageType: ''
    returnType: int
    signature: int upx_inflate2e(const char *src, uint32_t ssize, char *dst, uint32_t
      *dsize, uint32_t upx0, uint32_t upx1, uint32_t ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/upx.c:586,1
    - Dst: cli_writeint32
      Src: /src/clamav/libclamav/upx.c:587,1
    - Dst: cli_LzmaInit
      Src: /src/clamav/libclamav/upx.c:597,1
    - Dst: cli_LzmaDecode
      Src: /src/clamav/libclamav/upx.c:604,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/upx.c:606,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/upx.c:609,1
    - Dst: pefromupx
      Src: /src/clamav/libclamav/upx.c:611,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 8
    argNames:
    - src
    - ssize
    - dst
    - dsize
    - upx0
    - upx1
    - ep
    - properties
    argTypes:
    - char*
    - uint32_t
    - char*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 612
      start: 580
    functionDepth: 4
    functionLinenumber: 580
    functionLinenumberEnd: 612
    functionName: upx_inflatelzma
    functionSourceFile: /src/clamav/libclamav/upx.c
    functionUses: 1
    functionsReached:
    - memset
    - cli_LzmaInit
    - cli_LzmaDecode
    - cli_writeint32
    - cli_LzmaShutdown
    - pefromupx
    linkageType: ''
    returnType: int
    signature: int upx_inflatelzma(const char *src, uint32_t ssize, char *dst, uint32_t
      *dsize, uint32_t upx0, uint32_t upx1, uint32_t ep, uint32_t properties)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/hostid_internal.c:76,1
    - Dst: realloc
      Src: /src/clamav/libclamav/hostid_internal.c:83,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:86,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:87,1
    - Dst: memset
      Src: /src/clamav/libclamav/hostid_internal.c:92,1
    - Dst: calloc
      Src: /src/clamav/libclamav/hostid_internal.c:96,1
    - Dst: strdup
      Src: /src/clamav/libclamav/hostid_internal.c:104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - devices
    - ndevices
    - name
    argTypes:
    - struct device*
    - size_t*
    - char*
    constantsTouched: []
    func_position:
      end: 107
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 107
    functionName: get_device_entry
    functionSourceFile: /src/clamav/libclamav/hostid_internal.c
    functionUses: 0
    functionsReached:
    - memset
    - calloc
    - strcmp
    - realloc
    - strdup
    - free
    linkageType: ''
    returnType: struct device
    signature: struct device *get_device_entry(struct device *devices, size_t *ndevices,
      const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/clamav/libclamav/hostid_internal.c:125,1
    - Dst: get_device_entry
      Src: /src/clamav/libclamav/hostid_internal.c:146,1
    - Dst: freeifaddrs
      Src: /src/clamav/libclamav/hostid_internal.c:148,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/hostid_internal.c:160,1
    - Dst: LLADDR
      Src: /src/clamav/libclamav/hostid_internal.c:164,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/hostid_internal.c:169,1
    - Dst: strlen
      Src: /src/clamav/libclamav/hostid_internal.c:169,1
    - Dst: strlen
      Src: /src/clamav/libclamav/hostid_internal.c:169,1
    - Dst: freeifaddrs
      Src: /src/clamav/libclamav/hostid_internal.c:178,1
    - Dst: memset
      Src: /src/clamav/libclamav/hostid_internal.c:188,1
    - Dst: memset
      Src: /src/clamav/libclamav/hostid_internal.c:189,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/hostid_internal.c:191,1
    - Dst: socket
      Src: /src/clamav/libclamav/hostid_internal.c:193,1
    - Dst: ioctl
      Src: /src/clamav/libclamav/hostid_internal.c:197,1
    - Dst: close
      Src: /src/clamav/libclamav/hostid_internal.c:198,1
    - Dst: close
      Src: /src/clamav/libclamav/hostid_internal.c:201,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/hostid_internal.c:208,1
    - Dst: strlen
      Src: /src/clamav/libclamav/hostid_internal.c:208,1
    - Dst: strlen
      Src: /src/clamav/libclamav/hostid_internal.c:208,1
    - Dst: realloc
      Src: /src/clamav/libclamav/hostid_internal.c:212,1
    - Dst: memset
      Src: /src/clamav/libclamav/hostid_internal.c:218,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:226,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:228,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 232
    functionName: get_devices
    functionSourceFile: /src/clamav/libclamav/hostid_internal.c
    functionUses: 0
    functionsReached:
    - close
    - memset
    - snprintf
    - strcmp
    - strlen
    - realloc
    - ioctl
    - LLADDR
    - getifaddrs
    - freeifaddrs
    - strcpy
    - socket
    - free
    - get_device_entry
    linkageType: ''
    returnType: struct device
    signature: struct device *get_devices(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: get_devices
    functionSourceFile: /src/clamav/libclamav/hostid_internal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct device
    signature: struct device *get_devices(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_devices
      Src: /src/clamav/libclamav/hostid_internal.c:253,1
    - Dst: calloc
      Src: /src/clamav/libclamav/hostid_internal.c:257,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:259,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/hostid_internal.c:263,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:266,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:268,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:269,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/hostid_internal.c:275,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/hostid_internal.c:277,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:280,1
    - Dst: free
      Src: /src/clamav/libclamav/hostid_internal.c:281,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/hostid_internal.c:294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 298
    functionName: internal_get_host_id
    functionSourceFile: /src/clamav/libclamav/hostid_internal.c
    functionUses: 1
    functionsReached:
    - calloc
    - get_devices
    - cl_hash_init
    - cl_update_hash
    - free
    - sprintf
    - cl_finish_hash
    linkageType: ''
    returnType: char
    signature: char *internal_get_host_id(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 82
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 82
    functionName: cli_ndecode
    functionSourceFile: /src/clamav/libclamav/dsig.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char cli_ndecode(unsigned char value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/clamav/libclamav/dsig.c:93,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/dsig.c:98,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/dsig.c:103,1
    - Dst: BN_CTX_new
      Src: /src/clamav/libclamav/dsig.c:108,1
    - Dst: BN_zero
      Src: /src/clamav/libclamav/dsig.c:113,1
    - Dst: cli_ndecode
      Src: /src/clamav/libclamav/dsig.c:115,1
    - Dst: BN_set_word
      Src: /src/clamav/libclamav/dsig.c:118,1
    - Dst: BN_lshift
      Src: /src/clamav/libclamav/dsig.c:121,1
    - Dst: BN_add
      Src: /src/clamav/libclamav/dsig.c:125,1
    - Dst: BN_mod_exp
      Src: /src/clamav/libclamav/dsig.c:129,1
    - Dst: BN_num_bytes
      Src: /src/clamav/libclamav/dsig.c:132,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:138,1
    - Dst: calloc
      Src: /src/clamav/libclamav/dsig.c:142,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:144,1
    - Dst: BN_bn2bin
      Src: /src/clamav/libclamav/dsig.c:152,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:158,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:159,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:160,1
    - Dst: BN_CTX_free
      Src: /src/clamav/libclamav/dsig.c:161,1
    - Dst: free
      Src: /src/clamav/libclamav/dsig.c:162,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 4
    argNames:
    - sig
    - plen
    - e
    - n
    argTypes:
    - char*
    - unsigned int
    - BIGNUM*
    - BIGNUM*
    constantsTouched: []
    func_position:
      end: 164
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 164
    functionName: cli_decodesig
    functionSourceFile: /src/clamav/libclamav/dsig.c
    functionUses: 0
    functionsReached:
    - BN_mod_exp
    - calloc
    - free
    - cli_ndecode
    - BN_add
    - BN_bn2bin
    - BN_free
    - BN_CTX_free
    - BN_CTX_new
    - BN_set_word
    - BN_lshift
    - BN_zero
    - cli_errmsg
    - BN_num_bytes
    - BN_new
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *cli_decodesig(const char *sig, unsigned int plen, BIGNUM
      *e, BIGNUM *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:175,1
    - Dst: getenv
      Src: /src/clamav/libclamav/dsig.c:177,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/dsig.c:178,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/dsig.c:181,1
    - Dst: tcgetattr
      Src: /src/clamav/libclamav/dsig.c:184,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:185,1
    - Dst: old::old
      Src: /src/clamav/libclamav/dsig.c:188,1
    - Dst: tcsetattr
      Src: /src/clamav/libclamav/dsig.c:190,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:191,1
    - Dst: scanf
      Src: /src/clamav/libclamav/dsig.c:195,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:196,1
    - Dst: tcsetattr
      Src: /src/clamav/libclamav/dsig.c:198,1
    - Dst: tcsetattr
      Src: /src/clamav/libclamav/dsig.c:204,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:205,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:206,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/dsig.c:210,1
    - Dst: socket
      Src: /src/clamav/libclamav/dsig.c:213,1
    - Dst: perror
      Src: /src/clamav/libclamav/dsig.c:214,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:215,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:216,1
    - Dst: inet_addr
      Src: /src/clamav/libclamav/dsig.c:221,1
    - Dst: htons
      Src: /src/clamav/libclamav/dsig.c:222,1
    - Dst: connect
      Src: /src/clamav/libclamav/dsig.c:224,1
    - Dst: perror
      Src: /src/clamav/libclamav/dsig.c:225,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/dsig.c:226,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:227,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:228,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:231,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/dsig.c:234,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/dsig.c:236,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/dsig.c:238,1
    - Dst: strlen
      Src: /src/clamav/libclamav/dsig.c:240,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/dsig.c:242,1
    - Dst: send
      Src: /src/clamav/libclamav/dsig.c:245,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:246,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/dsig.c:247,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:248,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:249,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:253,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:254,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:255,1
    - Dst: recv
      Src: /src/clamav/libclamav/dsig.c:257,1
    - Dst: strstr
      Src: /src/clamav/libclamav/dsig.c:259,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:260,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:261,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/dsig.c:262,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/dsig.c:265,1
    - Dst: strlen
      Src: /src/clamav/libclamav/dsig.c:265,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:268,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/dsig.c:269,1
    - Dst: closesocket
      Src: /src/clamav/libclamav/dsig.c:273,1
    - Dst: strdup
      Src: /src/clamav/libclamav/dsig.c:277,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 84
    argCount: 5
    argNames:
    - host
    - user
    - data
    - datalen
    - mode
    argTypes:
    - char*
    - char*
    - unsigned char*
    - unsigned int
    - unsigned short
    constantsTouched: []
    func_position:
      end: 278
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 278
    functionName: cli_getdsig
    functionSourceFile: /src/clamav/libclamav/dsig.c
    functionUses: 0
    functionsReached:
    - snprintf
    - send
    - old::old
    - inet_addr
    - recv
    - socket
    - scanf
    - strstr
    - tcgetattr
    - strncpy
    - closesocket
    - perror
    - memset
    - htons
    - cli_infomsg
    - connect
    - getenv
    - strlen
    - strdup
    - tcsetattr
    - memcpy
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: char *cli_getdsig(const char *host, const char *user, const unsigned
      char *data, unsigned int datalen, unsigned short mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/clamav/libclamav/dsig.c:287,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/dsig.c:291,1
    - Dst: BN_dec2bn
      Src: /src/clamav/libclamav/dsig.c:296,1
    - Dst: BN_dec2bn
      Src: /src/clamav/libclamav/dsig.c:299,1
    - Dst: strlen
      Src: /src/clamav/libclamav/dsig.c:302,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/dsig.c:302,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dsig.c:304,1
    - Dst: cli_decodesig
      Src: /src/clamav/libclamav/dsig.c:308,1
    - Dst: cli_str2hex
      Src: /src/clamav/libclamav/dsig.c:311,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dsig.c:313,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/dsig.c:315,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dsig.c:316,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dsig.c:320,1
    - Dst: free
      Src: /src/clamav/libclamav/dsig.c:324,1
    - Dst: free
      Src: /src/clamav/libclamav/dsig.c:325,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:326,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:327,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - md5
    - dsig
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 329
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 329
    functionName: cli_versig
    functionSourceFile: /src/clamav/libclamav/dsig.c
    functionUses: 1
    functionsReached:
    - strlen
    - isalnum
    - cli_decodesig
    - BN_free
    - cli_str2hex
    - cli_dbgmsg
    - free
    - BN_dec2bn
    - cli_errmsg
    - strncmp
    - BN_new
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_versig(const char *md5, const char *dsig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/clamav/libclamav/dsig.c:345,1
    - Dst: BN_new
      Src: /src/clamav/libclamav/dsig.c:346,1
    - Dst: BN_dec2bn
      Src: /src/clamav/libclamav/dsig.c:354,1
    - Dst: BN_dec2bn
      Src: /src/clamav/libclamav/dsig.c:357,1
    - Dst: cli_decodesig
      Src: /src/clamav/libclamav/dsig.c:360,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:370,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:371,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/dsig.c:376,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/dsig.c:377,1
    - Dst: free
      Src: /src/clamav/libclamav/dsig.c:378,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/dsig.c:387,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/dsig.c:391,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/dsig.c:392,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/dsig.c:393,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/dsig.c:395,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/dsig.c:397,1
    - Dst: memchr
      Src: /src/clamav/libclamav/dsig.c:404,1
    - Dst: memset
      Src: /src/clamav/libclamav/dsig.c:411,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/dsig.c:412,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/dsig.c:413,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/dsig.c:415,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/dsig.c:419,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/dsig.c:420,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/dsig.c:422,1
    - Dst: free
      Src: /src/clamav/libclamav/dsig.c:425,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:426,1
    - Dst: BN_free
      Src: /src/clamav/libclamav/dsig.c:427,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 4
    argNames:
    - sha256
    - dsig_str
    - n_str
    - e_str
    argTypes:
    - unsigned char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 429
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 429
    functionName: cli_versig2
    functionSourceFile: /src/clamav/libclamav/dsig.c
    functionUses: 0
    functionsReached:
    - memset
    - cl_finish_hash
    - BN_free
    - cli_decodesig
    - memchr
    - memcpy
    - memcmp
    - cl_hash_init
    - BN_dec2bn
    - free
    - cl_update_hash
    - BN_new
    linkageType: ''
    returnType: int
    signature: int cli_versig2(const unsigned char *sha256, const char *dsig_str,
      const char *n_str, const char *e_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - code
    - ep
    argTypes:
    - unsigned int
    - struct _EXCEPTION_POINTERS*
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: filter_memcpy
    functionSourceFile: /src/clamav/libclamav/iowrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int filter_memcpy(unsigned int code, struct _EXCEPTION_POINTERS *ep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/iowrap.c:53,1
    - Dst: filter_memcpy
      Src: /src/clamav/libclamav/iowrap.c:55,1
    - Dst: GetExceptionCode
      Src: /src/clamav/libclamav/iowrap.c:55,1
    - Dst: GetExceptionInformation
      Src: /src/clamav/libclamav/iowrap.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - target
    - source
    - size
    argTypes:
    - void*
    - void*
    - unsigned long
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: cli_memcpy
    functionSourceFile: /src/clamav/libclamav/iowrap.c
    functionUses: 1
    functionsReached:
    - memcpy
    - GetExceptionCode
    - filter_memcpy
    - GetExceptionInformation
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_memcpy(void *target, const void *source, unsigned long
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/udf.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - DescriptorTag*
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: getDescriptorTagId
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - le16_to_host
    linkageType: ''
    returnType: tag_identifier
    signature: tag_identifier getDescriptorTagId(DescriptorTag *tag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fid
    argTypes:
    - FileIdentifierDescriptor*
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: isDirectory
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isDirectory(FileIdentifierDescriptor *fid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:65,1
    - Dst: cli_gentempfd_with_prefix
      Src: /src/clamav/libclamav/udf.c:71,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:72,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/udf.c:77,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:78,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/udf.c:83,1
    - Dst: close
      Src: /src/clamav/libclamav/udf.c:87,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/udf.c:92,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/udf.c:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - ctx
    - fileName
    - data
    - dataLen
    argTypes:
    - cli_ctx*
    - char*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: writeWholeFile
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - close
    - cli_magic_scan_desc
    - cli_warnmsg
    - cli_unlink
    - CLI_FREE_AND_SET_NULL
    - cli_writen
    - cli_gentempfd_with_prefix
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t writeWholeFile(cli_ctx *ctx, const char *const fileName,
      const uint8_t *const data, const size_t dataLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isDirectory
      Src: /src/clamav/libclamav/udf.c:119,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:120,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:128,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.c:135,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.c:137,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:142,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.c:149,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/udf.c:151,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/udf.c:151,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:152,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.c:155,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:161,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.c:168,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/udf.c:170,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/udf.c:170,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:171,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.c:174,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:179,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:183,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:185,1
    - Dst: writeWholeFile
      Src: /src/clamav/libclamav/udf.c:189,1
    - Dst: fmap_unneed_off
      Src: /src/clamav/libclamav/udf.c:191,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 7
    argNames:
    - ctx
    - pPartitionDescriptor
    - pLogicalVolumeDescriptor
    - allocation_descriptor
    - allocation_descriptor_len
    - icbFlags
    - fileIdentifierDescriptor
    argTypes:
    - cli_ctx*
    - PartitionDescriptor*
    - LogicalVolumeDescriptor*
    - void*
    - size_t
    - uint16_t
    - FileIdentifierDescriptor*
    constantsTouched: []
    func_position:
      end: 196
      start: 107
    functionDepth: 9
    functionLinenumber: 107
    functionLinenumberEnd: 196
    functionName: extractFile
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - cli_warnmsg
    - le16_to_host
    - isDirectory
    - cli_dbgmsg
    - fmap_unneed_off
    - fmap_need_off
    - writeWholeFile
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t extractFile(cli_ctx *ctx, PartitionDescriptor *pPartitionDescriptor,
      LogicalVolumeDescriptor *pLogicalVolumeDescriptor,\n                              void
      *allocation_descriptor,\n                              size_t allocation_descriptor_len,\n
      \                             uint16_t icbFlags, FileIdentifierDescriptor *fileIdentifierDescriptor)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:208,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:212,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/udf.c:214,1
    - Dst: getFileEntryDescriptorSize
      Src: /src/clamav/libclamav/udf.c:221,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/udf.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:225,1
    - Dst: extractFile
      Src: /src/clamav/libclamav/udf.c:236,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/udf.c:239,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - ctx
    - fed
    - pPartitionDescriptor
    - pLogicalVolumeDescriptor
    - fileIdentifierDescriptor
    argTypes:
    - cli_ctx*
    - FileEntryDescriptor*
    - PartitionDescriptor*
    - LogicalVolumeDescriptor*
    - FileIdentifierDescriptor*
    constantsTouched: []
    func_position:
      end: 247
      start: 198
    functionDepth: 10
    functionLinenumber: 198
    functionLinenumberEnd: 247
    functionName: parseFileEntryDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - cli_warnmsg
    - le16_to_host
    - getDescriptorTagId
    - cli_dbgmsg
    - getFileEntryDescriptorSize
    - extractFile
    linkageType: ''
    returnType: bool
    signature: bool parseFileEntryDescriptor(cli_ctx *ctx, FileEntryDescriptor *fed,
      PartitionDescriptor *pPartitionDescriptor, LogicalVolumeDescriptor *pLogicalVolumeDescriptor,
      FileIdentifierDescriptor *fileIdentifierDescriptor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 301
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 301
    functionName: skipEmptyDescriptors
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - fmap_need_off
    linkageType: ''
    returnType: bool
    signature: bool skipEmptyDescriptors(cli_ctx *ctx, size_t *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:312,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:319,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 337
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 337
    functionName: getPrimaryVolumeDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: PrimaryVolumeDescriptor
    signature: PrimaryVolumeDescriptor *getPrimaryVolumeDescriptor(cli_ctx *ctx, size_t
      *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:348,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:355,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 373
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 373
    functionName: getImplementationUseVolumeDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: ImplementationUseVolumeDescriptor
    signature: ImplementationUseVolumeDescriptor *getImplementationUseVolumeDescriptor(cli_ctx
      *ctx, size_t *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:384,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:391,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: getLogicalVolumeDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: LogicalVolumeDescriptor
    signature: LogicalVolumeDescriptor *getLogicalVolumeDescriptor(cli_ctx *ctx, size_t
      *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:420,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:427,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 445
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 445
    functionName: getPartitionDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: PartitionDescriptor
    signature: PartitionDescriptor *getPartitionDescriptor(cli_ctx *ctx, size_t *idxp,
      size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:456,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:463,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 481
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 481
    functionName: getUnallocatedSpaceDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: UnallocatedSpaceDescriptor
    signature: UnallocatedSpaceDescriptor *getUnallocatedSpaceDescriptor(cli_ctx *ctx,
      size_t *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:492,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:499,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 517
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 517
    functionName: getTerminatingDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: TerminatingDescriptor
    signature: TerminatingDescriptor *getTerminatingDescriptor(cli_ctx *ctx, size_t
      *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:528,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:535,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:541,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 553
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 553
    functionName: getLogicalVolumeIntegrityDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: LogicalVolumeIntegrityDescriptor
    signature: LogicalVolumeIntegrityDescriptor *getLogicalVolumeIntegrityDescriptor(cli_ctx
      *ctx, size_t *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:564,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:571,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:577,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 589
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 589
    functionName: getAnchorVolumeDescriptorPointer
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: AnchorVolumeDescriptorPointer
    signature: AnchorVolumeDescriptorPointer *getAnchorVolumeDescriptorPointer(cli_ctx
      *ctx, size_t *idxp, size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skipEmptyDescriptors
      Src: /src/clamav/libclamav/udf.c:600,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:607,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:613,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - idxp
    - lastOffsetp
    argTypes:
    - cli_ctx*
    - size_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 625
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 625
    functionName: getFileSetDescriptor
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - fmap_need_off
    - skipEmptyDescriptors
    linkageType: ''
    returnType: FileSetDescriptor
    signature: FileSetDescriptor *getFileSetDescriptor(cli_ctx *ctx, size_t *idxp,
      size_t *lastOffsetp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/udf.c:640,1
    - Dst: memset
      Src: /src/clamav/libclamav/udf.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pl
    argTypes:
    - PointerList*
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: freePointerList
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - CLI_FREE_AND_SET_NULL
    - memset
    linkageType: ''
    returnType: void
    signature: void freePointerList(PointerList *pl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freePointerList
      Src: /src/clamav/libclamav/udf.c:649,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/udf.c:650,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/udf.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pl
    argTypes:
    - PointerList*
    constantsTouched: []
    func_position:
      end: 657
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 657
    functionName: initPointerList
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - freePointerList
    - CLI_CALLOC_OR_GOTO_DONE
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t initPointerList(PointerList *pl)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_SAFER_REALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/udf.c:665,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/udf.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pl
    - pointer
    argTypes:
    - PointerList*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 676
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 676
    functionName: insertPointer
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - CLI_SAFER_REALLOC_OR_GOTO_DONE
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t insertPointer(PointerList *pl, const uint8_t *pointer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insertPointer
      Src: /src/clamav/libclamav/udf.c:689,1
    - Dst: getFileIdentifierDescriptorSize
      Src: /src/clamav/libclamav/udf.c:695,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - input
    - pfil
    argTypes:
    - uint8_t*
    - PointerList*
    constantsTouched: []
    func_position:
      end: 708
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 708
    functionName: findFileIdentifiers
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - insertPointer
    - getFileIdentifierDescriptorSize
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t findFileIdentifiers(const uint8_t *const input, PointerList
      *pfil)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insertPointer
      Src: /src/clamav/libclamav/udf.c:719,1
    - Dst: getFileEntryDescriptorSize
      Src: /src/clamav/libclamav/udf.c:725,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:733,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - input
    - pfil
    argTypes:
    - uint8_t*
    - PointerList*
    constantsTouched: []
    func_position:
      end: 738
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 738
    functionName: findFileEntries
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getDescriptorTagId
    - insertPointer
    - getFileEntryDescriptorSize
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t findFileEntries(const uint8_t *const input, PointerList
      *pfil)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:766,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:769,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/udf.c:778,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:779,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/udf.c:780,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:781,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/udf.c:782,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:783,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/udf.c:784,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:785,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/udf.c:786,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:787,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/udf.c:788,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:789,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/udf.c:790,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:791,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:793,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:797,1
    - Dst: initPointerList
      Src: /src/clamav/libclamav/udf.c:808,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:809,1
    - Dst: initPointerList
      Src: /src/clamav/libclamav/udf.c:813,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:814,1
    - Dst: getPrimaryVolumeDescriptor
      Src: /src/clamav/libclamav/udf.c:818,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:819,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:822,1
    - Dst: getImplementationUseVolumeDescriptor
      Src: /src/clamav/libclamav/udf.c:824,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:825,1
    - Dst: getLogicalVolumeDescriptor
      Src: /src/clamav/libclamav/udf.c:831,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:832,1
    - Dst: getPartitionDescriptor
      Src: /src/clamav/libclamav/udf.c:838,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:839,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:842,1
    - Dst: getUnallocatedSpaceDescriptor
      Src: /src/clamav/libclamav/udf.c:844,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:845,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:848,1
    - Dst: getTerminatingDescriptor
      Src: /src/clamav/libclamav/udf.c:850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:851,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:854,1
    - Dst: getLogicalVolumeIntegrityDescriptor
      Src: /src/clamav/libclamav/udf.c:856,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:857,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:860,1
    - Dst: getTerminatingDescriptor
      Src: /src/clamav/libclamav/udf.c:862,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:863,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:866,1
    - Dst: getAnchorVolumeDescriptorPointer
      Src: /src/clamav/libclamav/udf.c:868,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:869,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:872,1
    - Dst: getFileSetDescriptor
      Src: /src/clamav/libclamav/udf.c:874,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:875,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:880,1
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/udf.c:891,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:893,1
    - Dst: getDescriptorTagId
      Src: /src/clamav/libclamav/udf.c:898,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:900,1
    - Dst: findFileIdentifiers
      Src: /src/clamav/libclamav/udf.c:904,1
    - Dst: findFileEntries
      Src: /src/clamav/libclamav/udf.c:913,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:944,1
    - Dst: parseFileEntryDescriptor
      Src: /src/clamav/libclamav/udf.c:957,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/udf.c:960,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:969,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:971,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:973,1
    - Dst: freePointerList
      Src: /src/clamav/libclamav/udf.c:985,1
    - Dst: freePointerList
      Src: /src/clamav/libclamav/udf.c:986,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:989,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:992,1
    - Dst: fmap_unneed_ptr
      Src: /src/clamav/libclamav/udf.c:995,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 184
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 999
      start: 740
    functionDepth: 11
    functionLinenumber: 740
    functionLinenumberEnd: 999
    functionName: cli_scanudf
    functionSourceFile: /src/clamav/libclamav/udf.c
    functionUses: 0
    functionsReached:
    - getLogicalVolumeDescriptor
    - freePointerList
    - initPointerList
    - getDescriptorTagId
    - cli_dbgmsg
    - getPartitionDescriptor
    - getTerminatingDescriptor
    - getImplementationUseVolumeDescriptor
    - getPrimaryVolumeDescriptor
    - getLogicalVolumeIntegrityDescriptor
    - findFileEntries
    - fmap_unneed_ptr
    - fmap_need_off
    - parseFileEntryDescriptor
    - findFileIdentifiers
    - getAnchorVolumeDescriptorPointer
    - getUnallocatedSpaceDescriptor
    - getFileSetDescriptor
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanudf(cli_ctx *ctx, const size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/clamav/libclamav/libclamav_main.c:38,1
    - Dst: MAKEWORD
      Src: /src/clamav/libclamav/libclamav_main.c:38,1
    - Dst: pthread_win32_process_attach_np
      Src: /src/clamav/libclamav/libclamav_main.c:40,1
    - Dst: pthread_win32_thread_attach_np
      Src: /src/clamav/libclamav/libclamav_main.c:44,1
    - Dst: pthread_win32_thread_detach_np
      Src: /src/clamav/libclamav/libclamav_main.c:48,1
    - Dst: WSACleanup
      Src: /src/clamav/libclamav/libclamav_main.c:52,1
    - Dst: pthread_win32_thread_detach_np
      Src: /src/clamav/libclamav/libclamav_main.c:53,1
    - Dst: pthread_win32_process_detach_np
      Src: /src/clamav/libclamav/libclamav_main.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - hm
    - why
    - rsrv
    argTypes:
    - HMODULE
    - DWORD
    - LPVOID
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: DllMain
    functionSourceFile: /src/clamav/libclamav/libclamav_main.c
    functionUses: 0
    functionsReached:
    - pthread_win32_thread_attach_np
    - pthread_win32_thread_detach_np
    - WSACleanup
    - MAKEWORD
    - pthread_win32_process_attach_np
    - WSAStartup
    - pthread_win32_process_detach_np
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HMODULE hm, DWORD why, LPVOID rsrv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - partition_intersection_list_t*
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: partition_intersection_list_is_empty
    functionSourceFile: /src/clamav/libclamav/partition_intersection.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool partition_intersection_list_is_empty(partition_intersection_list_t*
      list)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - partition_intersection_list_t*
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: partition_intersection_list_init
    functionSourceFile: /src/clamav/libclamav/partition_intersection.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t partition_intersection_list_init(partition_intersection_list_t*
      list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/partition_intersection.c:71,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/partition_intersection.c:73,1
    - Dst: partition_intersection_list_free
      Src: /src/clamav/libclamav/partition_intersection.c:74,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - list
    - pitxn
    - start
    - size
    argTypes:
    - partition_intersection_list_t*
    - unsigned*
    - off_t
    - size_t
    constantsTouched: []
    func_position:
      end: 85
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 85
    functionName: partition_intersection_list_check
    functionSourceFile: /src/clamav/libclamav/partition_intersection.c
    functionUses: 4
    functionsReached:
    - malloc
    - partition_intersection_list_free
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t partition_intersection_list_check(partition_intersection_list_t*
      list, unsigned* pitxn, off_t start, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: partition_intersection_list_is_empty
      Src: /src/clamav/libclamav/partition_intersection.c:91,1
    - Dst: free
      Src: /src/clamav/libclamav/partition_intersection.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - partition_intersection_list_t*
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: partition_intersection_list_free
    functionSourceFile: /src/clamav/libclamav/partition_intersection.c
    functionUses: 5
    functionsReached:
    - partition_intersection_list_is_empty
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t partition_intersection_list_free(partition_intersection_list_t*
      list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_parser.c:70,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - yyscanner
    - instruction
    - instruction_address
    argTypes:
    - yyscan_t
    - int8_t
    - int8_t**
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: yr_parser_emit
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - yyget_extra
    - yr_arena_write_data
    linkageType: ''
    returnType: int
    signature: "int yr_parser_emit(\n    yyscan_t yyscanner,\n    int8_t instruction,\n
      \   int8_t** instruction_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_parser.c:90,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - yyscanner
    - instruction
    - argument
    - instruction_address
    argTypes:
    - yyscan_t
    - int8_t
    - int64_t
    - int8_t**
    constantsTouched: []
    func_position:
      end: 97
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 97
    functionName: yr_parser_emit_with_arg
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - yyget_extra
    - yr_arena_write_data
    linkageType: ''
    returnType: int
    signature: "int yr_parser_emit_with_arg(\n    yyscan_t yyscanner,\n    int8_t
      instruction,\n    int64_t argument,\n    int8_t** instruction_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_parser.c:114,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:115,1
    - Dst: yr_arena_make_relocatable
      Src: /src/clamav/libclamav/yara_parser.c:121,1
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - yyscanner
    - instruction
    - argument
    - instruction_address
    argTypes:
    - yyscan_t
    - int8_t
    - int64_t
    - int8_t**
    constantsTouched: []
    func_position:
      end: 128
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 128
    functionName: yr_parser_emit_with_arg_reloc
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - yr_arena_make_relocatable
    - yyget_extra
    - yr_arena_write_data
    linkageType: ''
    returnType: int
    signature: "int yr_parser_emit_with_arg_reloc(\n    yyscan_t yyscanner,\n    int8_t
      instruction,\n    int64_t argument,\n    int8_t** instruction_address)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:134,1
    - Dst: STRING_IS_NULL
      Src: /src/clamav/libclamav/yara_parser.c:142,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_parser.c:159,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_parser.c:162,1
    - Dst: yr_arena_next_address
      Src: /src/clamav/libclamav/yara_parser.c:170,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_parser.c:177,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - yyscanner
    - identifier
    argTypes:
    - yyscan_t
    - char*
    constantsTouched: []
    func_position:
      end: 182
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 182
    functionName: yr_parser_emit_pushes_for_strings
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - yr_arena_next_address
    - yr_parser_emit_with_arg_reloc
    - STRING_IS_NULL
    - PTR_TO_UINT64
    - yr_compiler_set_error_extra_info
    - yyget_extra
    linkageType: ''
    returnType: int
    signature: "int yr_parser_emit_pushes_for_strings(\n    yyscan_t yyscanner,\n
      \   const char* identifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_parser.c:203,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/yara_parser.c:211,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_parser.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - compiler
    - function
    - actual_args_fmt
    argTypes:
    - YR_COMPILER*
    - YR_OBJECT_FUNCTION*
    - char*
    constantsTouched: []
    func_position:
      end: 230
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 230
    functionName: yr_parser_check_types
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - yr_compiler_set_error_extra_info
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int yr_parser_check_types(\n    YR_COMPILER* compiler,\n    YR_OBJECT_FUNCTION*
      function,\n    const char* actual_args_fmt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:237,1
    - Dst: STRING_IS_NULL
      Src: /src/clamav/libclamav/yara_parser.c:241,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_parser.c:247,1
    - Dst: yr_arena_next_address
      Src: /src/clamav/libclamav/yara_parser.c:252,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_parser.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - yyscanner
    - identifier
    argTypes:
    - yyscan_t
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: yr_parser_lookup_string
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 0
    functionsReached:
    - yr_arena_next_address
    - strcmp
    - STRING_IS_NULL
    - yr_compiler_set_error_extra_info
    - yyget_extra
    linkageType: ''
    returnType: YR_STRING
    signature: "YR_STRING * yr_parser_lookup_string(\n    yyscan_t yyscanner,\n    const
      char* identifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:268,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_parser.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - yyscanner
    - identifier
    argTypes:
    - yyscan_t
    - char*
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: yr_parser_lookup_loop_variable
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - yyget_extra
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int yr_parser_lookup_loop_variable(\n    yyscan_t yyscanner,\n    const
      char* identifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/yara_parser.c:304,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/yara_parser.c:305,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_parser.c:310,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_parser.c:322,1
    - Dst: yr_re_extract_literal
      Src: /src/clamav/libclamav/yara_parser.c:333,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_parser.c:355,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_parser.c:358,1
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_parser.c:364,1
    - Dst: yr_atoms_extract_from_string
      Src: /src/clamav/libclamav/yara_parser.c:371,1
    - Dst: yr_re_emit_code
      Src: /src/clamav/libclamav/yara_parser.c:378,1
    - Dst: yr_atoms_extract_from_re
      Src: /src/clamav/libclamav/yara_parser.c:381,1
    - Dst: yr_ac_add_string
      Src: /src/clamav/libclamav/yara_parser.c:388,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_parser.c:394,1
    - Dst: yr_free
      Src: /src/clamav/libclamav/yara_parser.c:439,1
    - Dst: yr_atoms_list_destroy
      Src: /src/clamav/libclamav/yara_parser.c:442,1
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_parser.c:446,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 7
    argNames:
    - identifier
    - flags
    - compiler
    - str
    - re
    - string
    - min_atom_length
    argTypes:
    - char*
    - int
    - YR_COMPILER*
    - SIZED_STRING*
    - RE*
    - YR_STRING**
    - int*
    constantsTouched: []
    func_position:
      end: 454
      start: 280
    functionDepth: 5
    functionLinenumber: 280
    functionLinenumberEnd: 454
    functionName: _yr_parser_write_string
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 0
    functionsReached:
    - yr_atoms_extract_from_string
    - yr_atoms_extract_from_re
    - memset
    - yr_atoms_list_destroy
    - UNUSEDPARAM
    - yr_re_extract_literal
    - yr_arena_allocate_struct
    - yr_arena_write_data
    - yr_free
    - yr_re_emit_code
    - yr_arena_write_string
    - yr_ac_add_string
    linkageType: ''
    returnType: int
    signature: "int _yr_parser_write_string(\n    const char* identifier,\n    int
      flags,\n    YR_COMPILER* compiler,\n    SIZED_STRING* str,\n    RE* re,\n    YR_STRING**
      string,\n    int* min_atom_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:657,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/yara_parser.c:664,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/yara_parser.c:665,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/yara_parser.c:666,1
    - Dst: yr_hash_table_lookup
      Src: /src/clamav/libclamav/yara_parser.c:669,1
    - Dst: yr_hash_table_lookup
      Src: /src/clamav/libclamav/yara_parser.c:673,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_parser.c:680,1
    - Dst: STRING_IS_NULL
      Src: /src/clamav/libclamav/yara_parser.c:689,1
    - Dst: STRING_IS_REFERENCED
      Src: /src/clamav/libclamav/yara_parser.c:694,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_parser.c:696,1
    - Dst: yr_arena_next_address
      Src: /src/clamav/libclamav/yara_parser.c:701,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_parser.c:710,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_parser.c:710,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/yara_parser.c:722,1
    - Dst: STAILQ_INIT
      Src: /src/clamav/libclamav/yara_parser.c:725,1
    - Dst: STAILQ_CONCAT
      Src: /src/clamav/libclamav/yara_parser.c:726,1
    - Dst: STAILQ_INIT
      Src: /src/clamav/libclamav/yara_parser.c:727,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_parser.c:740,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_parser.c:740,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_parser.c:745,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_parser.c:745,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_parser.c:748,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_parser.c:751,1
    - Dst: yr_hash_table_add
      Src: /src/clamav/libclamav/yara_parser.c:751,1
    - Dst: yr_arena_write_data
      Src: /src/clamav/libclamav/yara_parser.c:764,1
    - Dst: yr_arena_base_address
      Src: /src/clamav/libclamav/yara_parser.c:772,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/yara_parser.c:773,1
    - Dst: FAIL_ON_COMPILER_ERROR
      Src: /src/clamav/libclamav/yara_parser.c:774,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/yara_parser.c:774,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/clamav/libclamav/yara_parser.c:775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 6
    argNames:
    - yyscanner
    - flags
    - identifier
    - tags
    - strings
    - metas
    argTypes:
    - yyscan_t
    - int32_t
    - char*
    - char*
    - YR_STRING*
    - YR_META*
    constantsTouched: []
    func_position:
      end: 778
      start: 649
    functionDepth: 5
    functionLinenumber: 649
    functionLinenumberEnd: 778
    functionName: yr_parser_reduce_rule_declaration
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 0
    functionsReached:
    - yr_arena_create
    - STRING_IS_NULL
    - yr_hash_table_add
    - STAILQ_INSERT_TAIL
    - yr_arena_write_string
    - yr_arena_base_address
    - yr_arena_allocate_struct
    - STRING_IS_REFERENCED
    - yr_arena_append
    - yr_arena_next_address
    - yr_hash_table_lookup
    - STAILQ_CONCAT
    - yyget_extra
    - UNUSEDPARAM
    - yr_parser_emit_with_arg_reloc
    - STAILQ_INIT
    - yr_arena_write_data
    - PTR_TO_UINT64
    - FAIL_ON_COMPILER_ERROR
    - yr_compiler_set_error_extra_info
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: "int yr_parser_reduce_rule_declaration(\n        yyscan_t yyscanner,\n
      \       int32_t flags,\n        const char* identifier,\n        char* tags,\n
      \       YR_STRING* strings,\n        YR_META* metas)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:786,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/yara_parser.c:788,1
    - Dst: yr_parser_emit_with_arg
      Src: /src/clamav/libclamav/yara_parser.c:790,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_parser.c:796,1
    - Dst: STRING_IS_NULL
      Src: /src/clamav/libclamav/yara_parser.c:801,1
    - Dst: yr_arena_next_address
      Src: /src/clamav/libclamav/yara_parser.c:803,1
    - Dst: yr_parser_lookup_string
      Src: /src/clamav/libclamav/yara_parser.c:813,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_parser.c:816,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_parser.c:819,1
    - Dst: yr_parser_emit
      Src: /src/clamav/libclamav/yara_parser.c:825,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - yyscanner
    - identifier
    - instruction
    argTypes:
    - yyscan_t
    - char*
    - int8_t
    constantsTouched: []
    func_position:
      end: 831
      start: 780
    functionDepth: 5
    functionLinenumber: 780
    functionLinenumberEnd: 831
    functionName: yr_parser_reduce_string_identifier
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - yr_arena_next_address
    - strcmp
    - yr_parser_emit_with_arg_reloc
    - yr_parser_lookup_string
    - STRING_IS_NULL
    - yr_parser_emit_with_arg
    - PTR_TO_UINT64
    - yyget_extra
    - yr_parser_emit
    linkageType: ''
    returnType: int
    signature: "int yr_parser_reduce_string_identifier(\n        yyscan_t yyscanner,\n
      \       const char* identifier,\n        int8_t instruction)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:840,1
    - Dst: yr_arena_allocate_struct
      Src: /src/clamav/libclamav/yara_parser.c:842,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_parser.c:853,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_parser.c:862,1
    - Dst: calloc
      Src: /src/clamav/libclamav/yara_parser.c:877,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/yara_parser.c:879,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/yara_parser.c:885,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/yara_parser.c:887,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/yara_parser.c:893,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/yara_parser.c:895,1
    - Dst: STAILQ_INSERT_TAIL
      Src: /src/clamav/libclamav/yara_parser.c:903,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 5
    argNames:
    - yyscanner
    - type
    - identifier
    - string
    - integer
    argTypes:
    - yyscan_t
    - int32_t
    - char*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 907
      start: 833
    functionDepth: 5
    functionLinenumber: 833
    functionLinenumberEnd: 907
    functionName: yr_parser_reduce_meta_declaration
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 1
    functionsReached:
    - calloc
    - cli_safer_strdup
    - yr_arena_allocate_struct
    - STAILQ_INSERT_TAIL
    - yyget_extra
    - yr_arena_write_string
    - cli_errmsg
    linkageType: ''
    returnType: YR_META
    signature: "YR_META * yr_parser_reduce_meta_declaration(\n        yyscan_t yyscanner,\n
      \       int32_t type,\n        const char* identifier,\n        const char*
      string,\n        int32_t integer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_parser.c:918,1
    - Dst: yr_hash_table_lookup
      Src: /src/clamav/libclamav/yara_parser.c:920,1
    - Dst: yr_object_create
      Src: /src/clamav/libclamav/yara_parser.c:930,1
    - Dst: yr_hash_table_add
      Src: /src/clamav/libclamav/yara_parser.c:937,1
    - Dst: yr_modules_do_declarations
      Src: /src/clamav/libclamav/yara_parser.c:944,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_parser.c:949,1
    - Dst: yr_arena_write_string
      Src: /src/clamav/libclamav/yara_parser.c:953,1
    - Dst: yr_parser_emit_with_arg_reloc
      Src: /src/clamav/libclamav/yara_parser.c:959,1
    - Dst: PTR_TO_UINT64
      Src: /src/clamav/libclamav/yara_parser.c:962,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/yara_parser.c:967,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/yara_parser.c:968,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - yyscanner
    - module_name
    argTypes:
    - yyscan_t
    - SIZED_STRING*
    constantsTouched: []
    func_position:
      end: 972
      start: 909
    functionDepth: 5
    functionLinenumber: 909
    functionLinenumberEnd: 972
    functionName: yr_parser_reduce_import
    functionSourceFile: /src/clamav/libclamav/yara_parser.c
    functionUses: 0
    functionsReached:
    - yr_arena_write_string
    - yr_hash_table_lookup
    - yr_parser_emit_with_arg_reloc
    - UNUSEDPARAM
    - yr_hash_table_add
    - PTR_TO_UINT64
    - yr_modules_do_declarations
    - yr_compiler_set_error_extra_info
    - yyget_extra
    - yr_object_create
    linkageType: ''
    returnType: int
    signature: "int yr_parser_reduce_import(\n        yyscan_t yyscanner,\n        SIZED_STRING
      * module_name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - dest
    - len
    argTypes:
    - uint8_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 533
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 533
    functionName: u2a
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int u2a(uint8_t *dest, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - MT
    argTypes:
    - struct MT*
    constantsTouched: []
    func_position:
      end: 569
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 569
    functionName: MT_getnext
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t MT_getnext(struct MT *MT)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MT_getnext
      Src: /src/clamav/libclamav/autoit.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - size
    - seed
    argTypes:
    - uint8_t*
    - unsigned int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 585
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 585
    functionName: MT_decrypt
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached:
    - MT_getnext
    linkageType: ''
    returnType: void
    signature: void MT_decrypt(uint8_t *buf, unsigned int size, uint32_t seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - UNP
    - size
    argTypes:
    - struct UNP*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 635
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 635
    functionName: getbits
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 27
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getbits(struct UNP *UNP, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:655,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/autoit.c:663,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:664,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:669,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:670,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:674,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:681,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/autoit.c:684,1
    - Dst: MT_decrypt
      Src: /src/clamav/libclamav/autoit.c:685,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:687,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:691,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:694,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:701,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/autoit.c:705,1
    - Dst: MT_decrypt
      Src: /src/clamav/libclamav/autoit.c:706,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:708,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:712,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:717,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:719,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:724,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:728,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:729,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:729,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:730,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:730,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/autoit.c:734,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:740,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/autoit.c:744,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:748,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:749,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/autoit.c:753,1
    - Dst: MT_decrypt
      Src: /src/clamav/libclamav/autoit.c:755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:761,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:762,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:763,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:765,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/autoit.c:771,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/autoit.c:775,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:777,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/autoit.c:783,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:788,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:797,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:799,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:801,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:803,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:805,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:807,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:809,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/autoit.c:824,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/autoit.c:825,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:834,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:839,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:857,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:865,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:866,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:877,1
    - Dst: open
      Src: /src/clamav/libclamav/autoit.c:880,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:882,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/autoit.c:887,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:888,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:893,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:897,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:899,1
    - Dst: lseek
      Src: /src/clamav/libclamav/autoit.c:902,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:903,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/autoit.c:908,1
    - Dst: close
      Src: /src/clamav/libclamav/autoit.c:914,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/autoit.c:917,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:923,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:926,1
    - Dst: close
      Src: /src/clamav/libclamav/autoit.c:929,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/autoit.c:931,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 232
    argCount: 3
    argNames:
    - ctx
    - base
    - tmpd
    argTypes:
    - cli_ctx*
    - uint8_t*
    - char*
    constantsTouched: []
    func_position:
      end: 935
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 935
    functionName: ea05
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_readint32
    - snprintf
    - cli_magic_scan_desc
    - close
    - cli_unlink
    - fmap_need_ptr_once
    - open
    - CLI_ISCONTAINED
    - cli_max_malloc
    - be32_to_host
    - MT_decrypt
    - cli_dbgmsg
    - cli_checklimits
    - getbits
    - memcpy
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ea05(cli_ctx *ctx, const uint8_t *base, char *tmpd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct LAME*
    constantsTouched: []
    func_position:
      end: 979
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 979
    functionName: LAME_fpusht
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double LAME_fpusht(struct LAME *l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LAME_fpusht
      Src: /src/clamav/libclamav/autoit.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - l
    - seed
    argTypes:
    - struct LAME*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 996
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 996
    functionName: LAME_srand
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached:
    - LAME_fpusht
    linkageType: ''
    returnType: void
    signature: void LAME_srand(struct LAME *l, uint32_t seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LAME_fpusht
      Src: /src/clamav/libclamav/autoit.c:1003,1
    - Dst: LAME_fpusht
      Src: /src/clamav/libclamav/autoit.c:1004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct LAME*
    constantsTouched: []
    func_position:
      end: 1010
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1010
    functionName: LAME_getnext
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached:
    - LAME_fpusht
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LAME_getnext(struct LAME *l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LAME_srand
      Src: /src/clamav/libclamav/autoit.c:1017,1
    - Dst: LAME_getnext
      Src: /src/clamav/libclamav/autoit.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cypher
    - size
    - seed
    argTypes:
    - uint8_t*
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1020
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1020
    functionName: LAME_decrypt
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached:
    - LAME_srand
    - LAME_getnext
    linkageType: ''
    returnType: void
    signature: void LAME_decrypt(uint8_t *cypher, uint32_t size, uint16_t seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/autoit.c:1046,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:1049,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1054,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1055,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1055,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1059,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:1067,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/autoit.c:1071,1
    - Dst: LAME_decrypt
      Src: /src/clamav/libclamav/autoit.c:1072,1
    - Dst: u2a
      Src: /src/clamav/libclamav/autoit.c:1073,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1074,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/autoit.c:1076,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1080,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:1085,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1089,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:1097,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/autoit.c:1101,1
    - Dst: LAME_decrypt
      Src: /src/clamav/libclamav/autoit.c:1102,1
    - Dst: u2a
      Src: /src/clamav/libclamav/autoit.c:1105,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1107,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:1112,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1117,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1119,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1124,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1129,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1130,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1130,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1131,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1131,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/autoit.c:1135,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1141,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/autoit.c:1147,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/autoit.c:1151,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1152,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1153,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/autoit.c:1157,1
    - Dst: LAME_decrypt
      Src: /src/clamav/libclamav/autoit.c:1160,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1163,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1165,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1166,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1167,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/autoit.c:1171,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/autoit.c:1175,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1176,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/autoit.c:1180,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1181,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1185,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1194,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1196,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1198,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1200,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1202,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1204,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1206,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/autoit.c:1222,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/autoit.c:1223,1
    - Dst: getbits
      Src: /src/clamav/libclamav/autoit.c:1233,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1238,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1244,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1250,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1251,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/autoit.c:1259,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1260,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1266,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1280,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1284,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1287,1
    - Dst: strlen
      Src: /src/clamav/libclamav/autoit.c:1293,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1297,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/autoit.c:1305,1
    - Dst: MIN
      Src: /src/clamav/libclamav/autoit.c:1305,1
    - Dst: strlen
      Src: /src/clamav/libclamav/autoit.c:1305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1306,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1310,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1319,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1323,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1326,1
    - Dst: strlen
      Src: /src/clamav/libclamav/autoit.c:1332,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1336,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/autoit.c:1344,1
    - Dst: MIN
      Src: /src/clamav/libclamav/autoit.c:1344,1
    - Dst: strlen
      Src: /src/clamav/libclamav/autoit.c:1344,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1345,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1349,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1356,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1363,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1370,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1370,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1380,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1387,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1394,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1396,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1397,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1406,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1413,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1421,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1432,1
    - Dst: strlen
      Src: /src/clamav/libclamav/autoit.c:1436,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1453,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/autoit.c:1457,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1463,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1470,1
    - Dst: u2a
      Src: /src/clamav/libclamav/autoit.c:1486,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/autoit.c:1487,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1529,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1542,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/autoit.c:1550,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1560,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1566,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1569,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/autoit.c:1575,1
    - Dst: open
      Src: /src/clamav/libclamav/autoit.c:1577,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1578,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1579,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/autoit.c:1582,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1583,1
    - Dst: close
      Src: /src/clamav/libclamav/autoit.c:1584,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1585,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1589,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1592,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1594,1
    - Dst: lseek
      Src: /src/clamav/libclamav/autoit.c:1597,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1598,1
    - Dst: close
      Src: /src/clamav/libclamav/autoit.c:1599,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/autoit.c:1603,1
    - Dst: close
      Src: /src/clamav/libclamav/autoit.c:1605,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/autoit.c:1607,1
    - Dst: close
      Src: /src/clamav/libclamav/autoit.c:1614,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/autoit.c:1617,1
    CyclomaticComplexity: 129
    EdgeCount: 129
    ICount: 457
    argCount: 3
    argNames:
    - ctx
    - base
    - tmpd
    argTypes:
    - cli_ctx*
    - uint8_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1623
      start: 1026
    functionDepth: 3
    functionLinenumber: 1026
    functionLinenumberEnd: 1623
    functionName: ea06
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached:
    - u2a
    - cli_magic_scan_desc
    - cli_readint32
    - snprintf
    - fmap_need_ptr_once
    - getbits
    - memcmp
    - lseek
    - CLI_ISCONTAINED
    - cli_dbgmsg
    - cli_checklimits
    - MIN
    - cli_max_realloc
    - cli_writen
    - close
    - cli_unlink
    - open
    - cli_max_malloc
    - free
    - strlen
    - LAME_decrypt
    - memcpy
    - be32_to_host
    linkageType: ''
    returnType: int
    signature: int ea06(cli_ctx *ctx, const uint8_t *base, char *tmpd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1636,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/autoit.c:1638,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/autoit.c:1641,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/autoit.c:1643,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1644,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1645,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1649,1
    - Dst: ea05
      Src: /src/clamav/libclamav/autoit.c:1653,1
    - Dst: get_fpu_endian
      Src: /src/clamav/libclamav/autoit.c:1657,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1659,1
    - Dst: ea06
      Src: /src/clamav/libclamav/autoit.c:1663,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/autoit.c:1667,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/autoit.c:1672,1
    - Dst: free
      Src: /src/clamav/libclamav/autoit.c:1674,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 1676
      start: 1629
    functionDepth: 6
    functionLinenumber: 1629
    functionLinenumberEnd: 1676
    functionName: cli_scanautoit
    functionSourceFile: /src/clamav/libclamav/autoit.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - get_fpu_endian
    - cli_rmdirs
    - ea05
    - mkdir
    - fmap_need_off_once
    - cli_dbgmsg
    - ea06
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanautoit(cli_ctx *ctx, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_flush
      Src: /src/clamav/libclamav/perflogging.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: cli_perf_thread_exit
    functionSourceFile: /src/clamav/libclamav/perflogging.c
    functionUses: 0
    functionsReached:
    - cli_perf_flush
    linkageType: ''
    returnType: void
    signature: void cli_perf_thread_exit(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/clamav/libclamav/perflogging.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: __cli_perf_init
    functionSourceFile: /src/clamav/libclamav/perflogging.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: void
    signature: void __cli_perf_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_perf_thread_exit
      Src: /src/clamav/libclamav/perflogging.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: __cli_perf_exit
    functionSourceFile: /src/clamav/libclamav/perflogging.c
    functionUses: 0
    functionsReached:
    - cli_perf_thread_exit
    linkageType: ''
    returnType: void
    signature: void __cli_perf_exit(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/clamav/libclamav/perflogging.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: cli_perf_register
    functionSourceFile: /src/clamav/libclamav/perflogging.c
    functionUses: 1
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void cli_perf_register(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:104,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:106,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:108,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:109,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:111,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:113,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:116,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:118,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:120,1
    - Dst: printf
      Src: /src/clamav/libclamav/perflogging.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 123
    functionName: cli_perf_print
    functionSourceFile: /src/clamav/libclamav/perflogging.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_perf_print(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/perflogging.c:130,1
    - Dst: cli_perf_print
      Src: /src/clamav/libclamav/perflogging.c:144,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/perflogging.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: cli_perf_flush
    functionSourceFile: /src/clamav/libclamav/perflogging.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - cli_perf_print
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void cli_perf_flush(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:102,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:108,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/dmg.c:114,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:115,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/dmg.c:120,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:122,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:124,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:128,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:129,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:130,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:132,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:133,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:135,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:139,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:142,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:144,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/dmg.c:149,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/dmg.c:152,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:153,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:157,1
    - Dst: dmg_extract_xml
      Src: /src/clamav/libclamav/dmg.c:162,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:166,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/dmg.c:172,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:175,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/dmg.c:175,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/dmg.c:177,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:178,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/dmg.c:183,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:185,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/dmg.c:187,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:188,1
    - Dst: xmlReaderForMemory
      Src: /src/clamav/libclamav/dmg.c:199,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:201,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/dmg.c:203,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:204,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/dmg.c:213,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/dmg.c:215,1
    - Dst: xmlTextReaderDepth
      Src: /src/clamav/libclamav/dmg.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:228,1
    - Dst: xmlTextReaderLocalName
      Src: /src/clamav/libclamav/dmg.c:231,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:234,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:242,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:243,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:244,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:247,1
    - Dst: xmlTextReaderIsEmptyElement
      Src: /src/clamav/libclamav/dmg.c:249,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:250,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:251,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/dmg.c:254,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:255,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/dmg.c:258,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:259,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:260,1
    - Dst: xmlTextReaderValue
      Src: /src/clamav/libclamav/dmg.c:263,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:265,1
    - Dst: malloc
      Src: /src/clamav/libclamav/dmg.c:269,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:272,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:273,1
    - Dst: dmg_decode_mish
      Src: /src/clamav/libclamav/dmg.c:276,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:277,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:281,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:282,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:285,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:286,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:299,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:301,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/dmg.c:302,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:303,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/dmg.c:306,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:307,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:308,1
    - Dst: xmlTextReaderValue
      Src: /src/clamav/libclamav/dmg.c:311,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:313,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:314,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:317,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:318,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:322,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:324,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:327,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:328,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:331,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:332,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:336,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:341,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:343,1
    - Dst: xmlTextReaderRead
      Src: /src/clamav/libclamav/dmg.c:344,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:345,1
    - Dst: xmlTextReaderNodeType
      Src: /src/clamav/libclamav/dmg.c:348,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:349,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:350,1
    - Dst: xmlTextReaderValue
      Src: /src/clamav/libclamav/dmg.c:353,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:355,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:356,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:359,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:360,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:364,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:366,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:369,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:370,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:374,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:379,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:380,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:384,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:385,1
    - Dst: xmlStrcmp
      Src: /src/clamav/libclamav/dmg.c:389,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:390,1
    - Dst: xmlFree
      Src: /src/clamav/libclamav/dmg.c:394,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:407,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:417,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/dmg.c:422,1
    - Dst: dmg_handle_mish
      Src: /src/clamav/libclamav/dmg.c:428,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:429,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:432,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:438,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:441,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/dmg.c:444,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:445,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 291
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 447
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 447
    functionName: cli_scandmg
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - xmlTextReaderDepth
    - xmlStrcmp
    - dmg_extract_xml
    - fmap_need_off_once_len
    - cli_magic_scan_nested_fmap_type
    - be32_to_host
    - cli_dbgmsg
    - cli_rmdirs
    - cl_strerror
    - be64_to_host
    - fmap_readn
    - xmlTextReaderNodeType
    - xmlFree
    - xmlReaderForMemory
    - xmlFreeTextReader
    - xmlTextReaderIsEmptyElement
    - xmlTextReaderRead
    - malloc
    - dmg_parsemsg
    - free
    - dmg_handle_mish
    - mkdir
    - dmg_decode_mish
    - xmlTextReaderValue
    - xmlTextReaderLocalName
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int cli_scandmg(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/dmg.c:459,1
    - Dst: strlen
      Src: /src/clamav/libclamav/dmg.c:462,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:463,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:467,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/dmg.c:468,1
    - Dst: sf_base64decode
      Src: /src/clamav/libclamav/dmg.c:472,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:473,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:474,1
    - Dst: dmg_parsemsg
      Src: /src/clamav/libclamav/dmg.c:477,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:480,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:481,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/dmg.c:487,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:488,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:489,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:494,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:495,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:496,1
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/dmg.c:498,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:500,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:507,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:508,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - mishblocknum
    - mish_base64
    - mish_set
    argTypes:
    - cli_ctx*
    - unsigned int*
    - xmlChar*
    - struct dmg_mish_with_stripes*
    constantsTouched: []
    func_position:
      end: 517
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 517
    functionName: dmg_decode_mish
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 1
    functionsReached:
    - sf_base64decode
    - UNUSEDPARAM
    - strlen
    - be64_to_host
    - cli_max_malloc
    - be32_to_host
    - cli_dbgmsg
    - memcmp
    - dmg_parsemsg
    - free
    linkageType: ''
    returnType: int
    signature: "int dmg_decode_mish(cli_ctx *ctx, unsigned int *mishblocknum, xmlChar
      *mish_base64,\n                           struct dmg_mish_with_stripes *mish_set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stripe_a
    - stripe_b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 524
    functionName: cmp_mish_stripes
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_mish_stripes(const void *stripe_a, const void *stripe_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:561,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:564,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:574,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:578,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 5
    argNames:
    - total
    - data_to_write
    - stripeNum
    - stripeType
    - stripeCount
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 583
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 583
    functionName: dmg_track_sectors
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: "int dmg_track_sectors(uint64_t *total, uint8_t *data_to_write,\n                             uint32_t
      stripeNum, uint32_t stripeType, uint64_t stripeCount)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/dmg.c:593,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:595,1
    - Dst: memset
      Src: /src/clamav/libclamav/dmg.c:599,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:601,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:610,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:617,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - fd
    - index
    - mish_set
    argTypes:
    - cli_ctx*
    - int
    - uint32_t
    - struct dmg_mish_with_stripes*
    constantsTouched: []
    func_position:
      end: 621
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 621
    functionName: dmg_stripe_zeroes
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached:
    - memset
    - UNUSEDPARAM
    - cli_dbgmsg
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int dmg_stripe_zeroes(cli_ctx *ctx, int fd, uint32_t index, struct
      dmg_mish_with_stripes *mish_set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:631,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/dmg.c:635,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:637,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:640,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:642,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - fd
    - index
    - mish_set
    argTypes:
    - cli_ctx*
    - int
    - uint32_t
    - struct dmg_mish_with_stripes*
    constantsTouched: []
    func_position:
      end: 649
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 649
    functionName: dmg_stripe_store
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int dmg_stripe_store(cli_ctx *ctx, int fd, uint32_t index, struct dmg_mish_with_stripes
      *mish_set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:662,1
    - Dst: memset
      Src: /src/clamav/libclamav/dmg.c:667,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/dmg.c:668,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:670,1
    - Dst: adc_decompressInit
      Src: /src/clamav/libclamav/dmg.c:677,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:679,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:686,1
    - Dst: adc_decompressEnd
      Src: /src/clamav/libclamav/dmg.c:687,1
    - Dst: adc_decompress
      Src: /src/clamav/libclamav/dmg.c:690,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:694,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:695,1
    - Dst: adc_decompressEnd
      Src: /src/clamav/libclamav/dmg.c:696,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:708,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:709,1
    - Dst: adc_decompressEnd
      Src: /src/clamav/libclamav/dmg.c:710,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:719,1
    - Dst: adc_decompressEnd
      Src: /src/clamav/libclamav/dmg.c:722,1
    - Dst: adc_decompressEnd
      Src: /src/clamav/libclamav/dmg.c:728,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:729,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 4
    argNames:
    - ctx
    - fd
    - index
    - mish_set
    argTypes:
    - cli_ctx*
    - int
    - uint32_t
    - struct dmg_mish_with_stripes*
    constantsTouched: []
    func_position:
      end: 732
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 732
    functionName: dmg_stripe_adc
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached:
    - memset
    - adc_decompressEnd
    - cli_warnmsg
    - fmap_need_off_once
    - cli_dbgmsg
    - adc_decompressInit
    - cli_writen
    - cli_errmsg
    - adc_decompress
    linkageType: ''
    returnType: int
    signature: int dmg_stripe_adc(cli_ctx *ctx, int fd, uint32_t index, struct dmg_mish_with_stripes
      *mish_set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:745,1
    - Dst: memset
      Src: /src/clamav/libclamav/dmg.c:749,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/dmg.c:750,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:752,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/dmg.c:759,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:761,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:768,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/dmg.c:769,1
    - Dst: inflate
      Src: /src/clamav/libclamav/dmg.c:772,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:776,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:777,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/dmg.c:778,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:790,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:791,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/dmg.c:792,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:802,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:806,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/dmg.c:809,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:816,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:817,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/dmg.c:818,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/dmg.c:823,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 4
    argNames:
    - ctx
    - fd
    - index
    - mish_set
    argTypes:
    - cli_ctx*
    - int
    - uint32_t
    - struct dmg_mish_with_stripes*
    constantsTouched: []
    func_position:
      end: 825
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 825
    functionName: dmg_stripe_inflate
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_warnmsg
    - fmap_need_off_once
    - cli_dbgmsg
    - inflateInit
    - inflate
    - inflateEnd
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int dmg_stripe_inflate(cli_ctx *ctx, int fd, uint32_t index, struct
      dmg_mish_with_stripes *mish_set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:839,1
    - Dst: memset
      Src: /src/clamav/libclamav/dmg.c:842,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/clamav/libclamav/dmg.c:845,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:846,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:852,1
    - Dst: dmg_bzipmsg
      Src: /src/clamav/libclamav/dmg.c:858,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/dmg.c:859,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:861,1
    - Dst: dmg_bzipmsg
      Src: /src/clamav/libclamav/dmg.c:870,1
    - Dst: BZ2_bzDecompress
      Src: /src/clamav/libclamav/dmg.c:871,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:873,1
    - Dst: dmg_bzipmsg
      Src: /src/clamav/libclamav/dmg.c:878,1
    - Dst: dmg_bzipmsg
      Src: /src/clamav/libclamav/dmg.c:885,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:887,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/dmg.c:893,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:898,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:899,1
    - Dst: BZ2_bzDecompress
      Src: /src/clamav/libclamav/dmg.c:908,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:910,1
    - Dst: dmg_bzipmsg
      Src: /src/clamav/libclamav/dmg.c:920,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/dmg.c:922,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:927,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:928,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/dmg.c:938,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:942,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 4
    argNames:
    - ctx
    - fd
    - index
    - mish_set
    argTypes:
    - cli_ctx*
    - int
    - uint32_t
    - struct dmg_mish_with_stripes*
    constantsTouched: []
    func_position:
      end: 946
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 946
    functionName: dmg_stripe_bzip
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 0
    functionsReached:
    - memset
    - BZ2_bzDecompressEnd
    - cli_warnmsg
    - fmap_need_off_once
    - dmg_bzipmsg
    - BZ2_bzDecompressInit
    - cli_dbgmsg
    - cli_checklimits
    - BZ2_bzDecompress
    - cli_writen
    linkageType: ''
    returnType: int
    signature: int dmg_stripe_bzip(cli_ctx *ctx, int fd, uint32_t index, struct dmg_mish_with_stripes
      *mish_set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_host
      Src: /src/clamav/libclamav/dmg.c:962,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:964,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:965,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:966,1
    - Dst: be64_to_host
      Src: /src/clamav/libclamav/dmg.c:967,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:968,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:974,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:978,1
    - Dst: dmg_track_sectors
      Src: /src/clamav/libclamav/dmg.c:981,1
    - Dst: cli_qsort
      Src: /src/clamav/libclamav/dmg.c:988,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:990,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:994,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/dmg.c:998,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/dmg.c:1002,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:1005,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/dmg.c:1010,1
    - Dst: open
      Src: /src/clamav/libclamav/dmg.c:1012,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:1015,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/dmg.c:1016,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:1019,1
    - Dst: dmg_stripe_zeroes
      Src: /src/clamav/libclamav/dmg.c:1026,1
    - Dst: dmg_stripe_store
      Src: /src/clamav/libclamav/dmg.c:1029,1
    - Dst: dmg_stripe_adc
      Src: /src/clamav/libclamav/dmg.c:1032,1
    - Dst: dmg_stripe_inflate
      Src: /src/clamav/libclamav/dmg.c:1035,1
    - Dst: dmg_stripe_bzip
      Src: /src/clamav/libclamav/dmg.c:1038,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:1043,1
    - Dst: cli_magic_scan_desc_type
      Src: /src/clamav/libclamav/dmg.c:1051,1
    - Dst: close
      Src: /src/clamav/libclamav/dmg.c:1054,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/dmg.c:1056,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 79
    argCount: 5
    argNames:
    - ctx
    - mishblocknum
    - dir
    - xmlOffset
    - mish_set
    argTypes:
    - cli_ctx*
    - unsigned int
    - char*
    - uint64_t
    - struct dmg_mish_with_stripes*
    constantsTouched: []
    func_position:
      end: 1059
      start: 949
    functionDepth: 4
    functionLinenumber: 949
    functionLinenumberEnd: 1059
    functionName: dmg_handle_mish
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 1
    functionsReached:
    - dmg_stripe_store
    - snprintf
    - dmg_stripe_zeroes
    - cli_warnmsg
    - cli_magic_scan_desc_type
    - dmg_stripe_inflate
    - dmg_stripe_adc
    - dmg_track_sectors
    - be32_to_host
    - cli_dbgmsg
    - cli_checklimits
    - close
    - cli_unlink
    - open
    - be64_to_host
    - dmg_stripe_bzip
    - cli_strerror
    - cli_qsort
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: "int dmg_handle_mish(cli_ctx *ctx, unsigned int mishblocknum, char
      *dir,\n                           uint64_t xmlOffset, struct dmg_mish_with_stripes
      *mish_set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/dmg.c:1069,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:1071,1
    - Dst: strlen
      Src: /src/clamav/libclamav/dmg.c:1075,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/dmg.c:1076,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/dmg.c:1079,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/dmg.c:1080,1
    - Dst: open
      Src: /src/clamav/libclamav/dmg.c:1083,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:1085,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/dmg.c:1086,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:1087,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/dmg.c:1091,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/dmg.c:1092,1
    - Dst: close
      Src: /src/clamav/libclamav/dmg.c:1093,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:1094,1
    - Dst: close
      Src: /src/clamav/libclamav/dmg.c:1098,1
    - Dst: free
      Src: /src/clamav/libclamav/dmg.c:1099,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - dir
    - hdr
    argTypes:
    - cli_ctx*
    - char*
    - struct dmg_koly_block*
    constantsTouched: []
    func_position:
      end: 1101
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1101
    functionName: dmg_extract_xml
    functionSourceFile: /src/clamav/libclamav/dmg.c
    functionUses: 1
    functionsReached:
    - close
    - snprintf
    - strlen
    - open
    - cli_strerror
    - cli_max_malloc
    - cli_dbgmsg
    - fmap_need_off_once_len
    - free
    - cli_writen
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int dmg_extract_xml(cli_ctx *ctx, char *dir, struct dmg_koly_block
      *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: cl_retver
    functionSourceFile: /src/clamav/libclamav/version.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cl_retver(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/clamav/libclamav/scanners.c:137,1
    - Dst: readdir
      Src: /src/clamav/libclamav/scanners.c:138,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/scanners.c:140,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/scanners.c:140,1
    - Dst: malloc
      Src: /src/clamav/libclamav/scanners.c:142,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:142,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:142,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:144,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/scanners.c:149,1
    - Dst: LSTAT
      Src: /src/clamav/libclamav/scanners.c:152,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclamav/scanners.c:153,1
    - Dst: S_ISLNK
      Src: /src/clamav/libclamav/scanners.c:153,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:154,1
    - Dst: S_ISREG
      Src: /src/clamav/libclamav/scanners.c:159,1
    - Dst: cli_magic_scan_file
      Src: /src/clamav/libclamav/scanners.c:160,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:167,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:173,1
    - Dst: closedir
      Src: /src/clamav/libclamav/scanners.c:180,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:183,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - dir
    - ctx
    - attributes
    argTypes:
    - char*
    - cli_ctx*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 187
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 187
    functionName: cli_magic_scan_dir
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 1
    functionsReached:
    - cli_magic_scan_file
    - S_ISLNK
    - closedir
    - strcmp
    - strlen
    - S_ISDIR
    - opendir
    - readdir
    - LSTAT
    - cli_dbgmsg
    - free
    - malloc
    - cli_magic_scan_dir
    - sprintf
    - S_ISREG
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_magic_scan_dir(const char *dir, cli_ctx *ctx, uint32_t
      attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:201,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/scanners.c:206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - metadata
    - ctx
    - files
    argTypes:
    - unrar_metadata_t*
    - cli_ctx*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: cli_unrar_scanmetadata
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - cli_matchmeta
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_unrar_scanmetadata(unrar_metadata_t *metadata, cli_ctx
      *ctx, unsigned int files)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:606,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/scanners.c:611,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - metadata
    - ctx
    - files
    argTypes:
    - cl_egg_metadata*
    - cli_ctx*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 619
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 619
    functionName: cli_egg_scanmetadata
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - cli_matchmeta
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_egg_scanmetadata(cl_egg_metadata *metadata, cli_ctx
      *ctx, unsigned int files)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:646,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:650,1
    - Dst: memset
      Src: /src/clamav/libclamav/scanners.c:653,1
    - Dst: cli_egg_open
      Src: /src/clamav/libclamav/scanners.c:658,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:660,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:686,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:689,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:690,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:694,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:696,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:698,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:700,1
    - Dst: write
      Src: /src/clamav/libclamav/scanners.c:701,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:702,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:704,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:706,1
    - Dst: cli_magic_scan_buff
      Src: /src/clamav/libclamav/scanners.c:713,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:713,1
    - Dst: memset
      Src: /src/clamav/libclamav/scanners.c:734,1
    - Dst: cli_egg_peek_file_header
      Src: /src/clamav/libclamav/scanners.c:739,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:743,1
    - Dst: cli_egg_skip_file
      Src: /src/clamav/libclamav/scanners.c:746,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:748,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:753,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:757,1
    - Dst: cli_egg_scanmetadata
      Src: /src/clamav/libclamav/scanners.c:766,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:774,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:779,1
    - Dst: cli_egg_skip_file
      Src: /src/clamav/libclamav/scanners.c:781,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:783,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:786,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:791,1
    - Dst: cli_egg_skip_file
      Src: /src/clamav/libclamav/scanners.c:793,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:795,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:800,1
    - Dst: cli_egg_skip_file
      Src: /src/clamav/libclamav/scanners.c:803,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:805,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:813,1
    - Dst: cli_egg_extract_file
      Src: /src/clamav/libclamav/scanners.c:815,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:820,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:825,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:828,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:832,1
    - Dst: cli_basename
      Src: /src/clamav/libclamav/scanners.c:840,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:840,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/scanners.c:846,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:848,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:851,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:856,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:858,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:860,1
    - Dst: write
      Src: /src/clamav/libclamav/scanners.c:861,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:862,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:864,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:873,1
    - Dst: cli_magic_scan_buff
      Src: /src/clamav/libclamav/scanners.c:874,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:880,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:884,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:888,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:895,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:910,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:923,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:928,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:933,1
    - Dst: cli_egg_close
      Src: /src/clamav/libclamav/scanners.c:938,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:943,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:948,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:953,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:960,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:966,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 230
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 969
      start: 621
    functionDepth: 8
    functionLinenumber: 621
    functionLinenumberEnd: 969
    functionName: cli_scanegg
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - snprintf
    - write
    - cli_egg_close
    - cli_egg_skip_file
    - cli_egg_extract_file
    - cli_basename
    - cli_dbgmsg
    - cli_checklimits
    - close
    - memset
    - cli_egg_peek_file_header
    - open
    - cli_append_potentially_unwanted
    - cli_egg_open
    - free
    - cli_egg_scanmetadata
    - strlen
    - cli_magic_scan_buff
    - cli_gentemp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanegg(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:978,1
    - Dst: memset
      Src: /src/clamav/libclamav/scanners.c:980,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:983,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:986,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:987,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:988,1
    - Dst: cli_unarj_open
      Src: /src/clamav/libclamav/scanners.c:992,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:995,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:996,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:997,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/scanners.c:997,1
    - Dst: cli_unarj_prepare_file
      Src: /src/clamav/libclamav/scanners.c:1004,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1006,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/scanners.c:1006,1
    - Dst: cli_matchmeta
      Src: /src/clamav/libclamav/scanners.c:1012,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:1013,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1014,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:1018,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1021,1
    - Dst: cli_unarj_extract_file
      Src: /src/clamav/libclamav/scanners.c:1025,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1027,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/scanners.c:1027,1
    - Dst: lseek
      Src: /src/clamav/libclamav/scanners.c:1031,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1032,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:1035,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1036,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1043,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:1050,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1054,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1058,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1061,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1068
      start: 971
    functionDepth: 6
    functionLinenumber: 971
    functionLinenumberEnd: 1068
    functionName: cli_scanarj
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cl_strerror
    - lseek
    - memset
    - cli_rmdirs
    - cli_matchmeta
    - mkdir
    - cli_magic_scan_desc
    - close
    - cli_unarj_open
    - cli_unarj_extract_file
    - cli_unarj_prepare_file
    - cli_dbgmsg
    - cli_checklimits
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanarj(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:1080,1
    - Dst: dup
      Src: /src/clamav/libclamav/scanners.c:1083,1
    - Dst: gzdopen
      Src: /src/clamav/libclamav/scanners.c:1087,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1088,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:1092,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1093,1
    - Dst: gzclose
      Src: /src/clamav/libclamav/scanners.c:1094,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1095,1
    - Dst: gzread
      Src: /src/clamav/libclamav/scanners.c:1099,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:1101,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:1103,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1104,1
    - Dst: gzclose
      Src: /src/clamav/libclamav/scanners.c:1105,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1106,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1107,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1110,1
    - Dst: gzclose
      Src: /src/clamav/libclamav/scanners.c:1115,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:1117,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1118,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1120,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1122,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1125,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1127,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1131,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - ctx
    - buff
    argTypes:
    - cli_ctx*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 1133
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1133
    functionName: cli_scangzip_with_zib_from_the_80s
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - close
    - cli_magic_scan_desc
    - cli_unlink
    - gzread
    - gzdopen
    - dup
    - gzclose
    - fmap_fd
    - cli_dbgmsg
    - cli_gentempfd
    - cli_checklimits
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scangzip_with_zib_from_the_80s(cli_ctx *ctx, unsigned
      char *buff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1145,1
    - Dst: memset
      Src: /src/clamav/libclamav/scanners.c:1147,1
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/scanners.c:1148,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1149,1
    - Dst: cli_scangzip_with_zib_from_the_80s
      Src: /src/clamav/libclamav/scanners.c:1150,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:1153,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1154,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/scanners.c:1155,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/scanners.c:1161,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1162,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/scanners.c:1163,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1164,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1165,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1166,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1169,1
    - Dst: inflate
      Src: /src/clamav/libclamav/scanners.c:1178,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1181,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1185,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:1189,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/scanners.c:1190,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1191,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1192,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1193,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1196,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:1200,1
    - Dst: inflateReset
      Src: /src/clamav/libclamav/scanners.c:1206,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/scanners.c:1215,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:1217,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1218,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1220,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1221,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1225,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1228,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1230,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1232,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1135
    functionDepth: 4
    functionLinenumber: 1135
    functionLinenumberEnd: 1235
    functionName: cli_scangzip
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - close
    - memset
    - cli_magic_scan_desc
    - cli_unlink
    - fmap_need_off_once
    - inflateReset
    - cli_dbgmsg
    - cli_gentempfd
    - cli_checklimits
    - inflate
    - inflateInit2
    - inflateEnd
    - cli_writen
    - cli_scangzip_with_zib_from_the_80s
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scangzip(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/scanners.c:1254,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/clamav/libclamav/scanners.c:1257,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1259,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:1263,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1264,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/scanners.c:1265,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/scanners.c:1271,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1275,1
    - Dst: BZ2_bzDecompress
      Src: /src/clamav/libclamav/scanners.c:1280,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1282,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:1290,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1291,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/scanners.c:1292,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1293,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1295,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1296,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1300,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:1304,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/scanners.c:1312,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:1314,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1315,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1317,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1318,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1322,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1325,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1327,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1329,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1332
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1332
    functionName: cli_scanbzip
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - close
    - memset
    - BZ2_bzDecompressEnd
    - cli_magic_scan_desc
    - cli_unlink
    - BZ2_bzDecompressInit
    - cli_dbgmsg
    - cli_gentempfd
    - BZ2_bzDecompress
    - fmap_need_off_once_len
    - cli_checklimits
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanbzip(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/scanners.c:1345,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:1347,1
    - Dst: memset
      Src: /src/clamav/libclamav/scanners.c:1350,1
    - Dst: cli_XzInit
      Src: /src/clamav/libclamav/scanners.c:1353,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:1355,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1356,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:1360,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:1361,1
    - Dst: cli_XzShutdown
      Src: /src/clamav/libclamav/scanners.c:1362,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1363,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1366,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/scanners.c:1371,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:1375,1
    - Dst: cli_XzDecode
      Src: /src/clamav/libclamav/scanners.c:1382,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:1385,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:1388,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:1403,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:1404,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:1408,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/scanners.c:1409,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:1420,1
    - Dst: cli_XzShutdown
      Src: /src/clamav/libclamav/scanners.c:1423,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1424,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1426,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1430,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1431,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1433
      start: 1334
    functionDepth: 5
    functionLinenumber: 1334
    functionLinenumberEnd: 1433
    functionName: cli_scanxz
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - memset
    - close
    - cli_warnmsg
    - cli_errmsg
    - cli_XzShutdown
    - cli_append_potentially_unwanted
    - cli_unlink
    - cli_XzDecode
    - cli_dbgmsg
    - cli_XzInit
    - cli_gentempfd
    - fmap_need_off_once_len
    - cli_checklimits
    - malloc
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanxz(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1441,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:1443,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1444,1
    - Dst: cli_msexpand
      Src: /src/clamav/libclamav/scanners.c:1448,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1451,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1453,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1455,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1459,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:1460,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1461,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:1463,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1465,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1468
      start: 1435
    functionDepth: 4
    functionLinenumber: 1435
    functionLinenumberEnd: 1468
    functionName: cli_scanszdd
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - close
    - cli_magic_scan_desc
    - cli_msexpand
    - cli_unlink
    - cli_dbgmsg
    - cli_gentempfd
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanszdd(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/scanners.c:1483,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/scanners.c:1488,1
    - Dst: cli_scan_buff
      Src: /src/clamav/libclamav/scanners.c:1496,1
    - Dst: fmap_open_memory
      Src: /src/clamav/libclamav/scanners.c:1504,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1506,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:1511,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1513,1
    - Dst: cli_exp_eval
      Src: /src/clamav/libclamav/scanners.c:1519,1
    - Dst: cli_exp_eval
      Src: /src/clamav/libclamav/scanners.c:1524,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:1529,1
    - Dst: funmap
      Src: /src/clamav/libclamav/scanners.c:1533,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/scanners.c:1537,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/scanners.c:1541,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 3
    argNames:
    - data
    - len
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1545
      start: 1470
    functionDepth: 4
    functionLinenumber: 1470
    functionLinenumberEnd: 1545
    functionName: vba_scandata
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - funmap
    - cli_exp_eval
    - cli_ac_freedata
    - cli_ac_initdata
    - fmap_open_memory
    - cli_dbgmsg
    - cli_scan_buff
    - cli_recursion_stack_push
    - cli_recursion_stack_pop
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t vba_scandata(const unsigned char *data, size_t len, cli_ctx
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/clamav/libclamav/scanners.c:1567,1
    - Dst: readdir
      Src: /src/clamav/libclamav/scanners.c:1568,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/scanners.c:1570,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/scanners.c:1570,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1572,1
    - Dst: LSTAT
      Src: /src/clamav/libclamav/scanners.c:1576,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclamav/scanners.c:1577,1
    - Dst: S_ISLNK
      Src: /src/clamav/libclamav/scanners.c:1577,1
    - Dst: find_file
      Src: /src/clamav/libclamav/scanners.c:1578,1
    - Dst: closedir
      Src: /src/clamav/libclamav/scanners.c:1580,1
    - Dst: S_ISREG
      Src: /src/clamav/libclamav/scanners.c:1583,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/scanners.c:1584,1
    - Dst: MIN
      Src: /src/clamav/libclamav/scanners.c:1585,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:1585,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/scanners.c:1586,1
    - Dst: closedir
      Src: /src/clamav/libclamav/scanners.c:1588,1
    - Dst: closedir
      Src: /src/clamav/libclamav/scanners.c:1596,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - filename
    - dir
    - result
    - result_size
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1600
      start: 1554
    functionDepth: 3
    functionLinenumber: 1554
    functionLinenumberEnd: 1600
    functionName: find_file
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 1
    functionsReached:
    - S_ISLNK
    - snprintf
    - closedir
    - strcmp
    - strlen
    - S_ISDIR
    - opendir
    - readdir
    - LSTAT
    - find_file
    - MIN
    - memcpy
    - S_ISREG
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t find_file(const char *filename, const char *dir, char *result,
      size_t result_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:1616,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1617,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1626,1
    - Dst: find_file
      Src: /src/clamav/libclamav/scanners.c:1629,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1630,1
    - Dst: cli_vba_readdir_new
      Src: /src/clamav/libclamav/scanners.c:1631,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1635,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/scanners.c:1635,1
    - Dst: remove
      Src: /src/clamav/libclamav/scanners.c:1639,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1641,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/scanners.c:1651,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/scanners.c:1652,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:1654,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1656,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:1661,1
    - Dst: lseek
      Src: /src/clamav/libclamav/scanners.c:1670,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1671,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/scanners.c:1676,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1681,1
    - Dst: remove
      Src: /src/clamav/libclamav/scanners.c:1686,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1688,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1698,1
    - Dst: remove
      Src: /src/clamav/libclamav/scanners.c:1704,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1706,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 4
    argNames:
    - dir
    - ctx
    - U
    - has_macros
    argTypes:
    - char*
    - cli_ctx*
    - struct uniq*
    - int*
    constantsTouched: []
    func_position:
      end: 1711
      start: 1606
    functionDepth: 9
    functionLinenumber: 1606
    functionLinenumberEnd: 1711
    functionName: cli_ole2_tempdir_scan_vba_new
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - lseek
    - close
    - snprintf
    - cli_jsonstr
    - cli_append_potentially_unwanted
    - uniq_get
    - cli_dbgmsg
    - remove
    - find_file
    - cli_jsonbool
    - cli_scan_desc
    - cli_jsonarray
    - free
    - cli_vba_readdir_new
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ole2_tempdir_scan_vba_new(const char *dir, cli_ctx *ctx,
      struct uniq *U, int *has_macros)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:1729,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1730,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1737,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:1740,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1742,1
    - Dst: cli_ole2_summary_json
      Src: /src/clamav/libclamav/scanners.c:1744,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1745,1
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:1750,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1751,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1758,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:1761,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1763,1
    - Dst: cli_ole2_summary_json
      Src: /src/clamav/libclamav/scanners.c:1765,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1766,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - dir
    - ctx
    - U
    argTypes:
    - char*
    - cli_ctx*
    - struct uniq*
    constantsTouched: []
    func_position:
      end: 1774
      start: 1721
    functionDepth: 7
    functionLinenumber: 1721
    functionLinenumberEnd: 1774
    functionName: cli_ole2_tempdir_scan_summary
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - open
    - uniq_get
    - cli_dbgmsg
    - cli_ole2_summary_json
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ole2_tempdir_scan_summary(const char *dir, cli_ctx *ctx,
      struct uniq *U)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:1795,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1796,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1801,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:1804,1
    - Dst: cli_scan_ole10
      Src: /src/clamav/libclamav/scanners.c:1810,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1816,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1825,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - dir
    - ctx
    - U
    argTypes:
    - char*
    - cli_ctx*
    - struct uniq*
    constantsTouched: []
    func_position:
      end: 1829
      start: 1784
    functionDepth: 8
    functionLinenumber: 1784
    functionLinenumberEnd: 1829
    functionName: cli_ole2_tempdir_scan_embedded_ole10
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - open
    - uniq_get
    - cli_dbgmsg
    - cli_scan_ole10
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ole2_tempdir_scan_embedded_ole10(const char *dir, cli_ctx
      *ctx, struct uniq *U)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:1849,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1850,1
    - Dst: cli_vba_readdir
      Src: /src/clamav/libclamav/scanners.c:1854,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1861,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:1864,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1869,1
    - Dst: cli_vba_inflate
      Src: /src/clamav/libclamav/scanners.c:1871,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1873,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:1883,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/scanners.c:1884,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:1888,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/scanners.c:1889,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1894,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1897,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1899,1
    - Dst: vba_scandata
      Src: /src/clamav/libclamav/scanners.c:1903,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1908,1
    - Dst: cli_free_vba_project
      Src: /src/clamav/libclamav/scanners.c:1914,1
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:1920,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1921,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1925,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:1928,1
    - Dst: cli_ppt_vba_read
      Src: /src/clamav/libclamav/scanners.c:1934,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:1936,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:1942,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1944,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1948,1
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:1954,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1955,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:1959,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:1962,1
    - Dst: cli_wm_readdir
      Src: /src/clamav/libclamav/scanners.c:1968,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1969,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1976,1
    - Dst: cli_wm_decrypt_macro
      Src: /src/clamav/libclamav/scanners.c:1978,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1980,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:1982,1
    - Dst: vba_scandata
      Src: /src/clamav/libclamav/scanners.c:1988,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:1993,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:1998,1
    - Dst: cli_free_vba_project
      Src: /src/clamav/libclamav/scanners.c:2001,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/scanners.c:2011,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/scanners.c:2012,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:2014,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2016,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:2021,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2029,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2032,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2036,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:2041,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2044,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2048,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 170
    argCount: 4
    argNames:
    - dir
    - ctx
    - U
    - has_macros
    argTypes:
    - char*
    - cli_ctx*
    - struct uniq*
    - int*
    constantsTouched: []
    func_position:
      end: 2052
      start: 1831
    functionDepth: 7
    functionLinenumber: 1831
    functionLinenumberEnd: 2052
    functionName: cli_ole2_tempdir_scan_vba
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cli_vba_readdir
    - cli_warnmsg
    - vba_scandata
    - cli_wm_readdir
    - cli_jsonarray
    - cli_free_vba_project
    - uniq_get
    - cli_ppt_vba_read
    - cli_dbgmsg
    - cli_jsonbool
    - cli_writen
    - cli_rmdirs
    - close
    - cli_jsonstr
    - open
    - cli_append_potentially_unwanted
    - cli_vba_inflate
    - cli_gentempfd
    - cli_wm_decrypt_macro
    - cli_magic_scan_dir
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ole2_tempdir_scan_vba(const char *dir, cli_ctx *ctx,
      struct uniq *U, int *has_macros)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:2062,1
    - Dst: uniq_get
      Src: /src/clamav/libclamav/scanners.c:2063,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2064,1
    - Dst: cli_extract_xlm_macros_and_images
      Src: /src/clamav/libclamav/scanners.c:2070,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2076,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - dir
    - ctx
    - U
    argTypes:
    - char*
    - cli_ctx*
    - struct uniq*
    constantsTouched: []
    func_position:
      end: 2083
      start: 2054
    functionDepth: 12
    functionLinenumber: 2054
    functionLinenumberEnd: 2083
    functionName: cli_ole2_tempdir_scan_for_xlm_and_images
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - uniq_get
    - cli_dbgmsg
    - cli_extract_xlm_macros_and_images
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ole2_tempdir_scan_for_xlm_and_images(const char *dir,
      cli_ctx *ctx, struct uniq *U)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:2476,1
    - Dst: strncasecmp
      Src: /src/clamav/libclamav/scanners.c:2476,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:2476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - str
    - str_len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 2483
      start: 2470
    functionDepth: 1
    functionLinenumber: 2470
    functionLinenumberEnd: 2483
    functionName: is_url
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncasecmp
    linkageType: ''
    returnType: bool
    signature: bool is_url(const char *const str, size_t str_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_url
      Src: /src/clamav/libclamav/scanners.c:2504,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:2504,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/scanners.c:2506,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2508,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:2512,1
    - Dst: is_url
      Src: /src/clamav/libclamav/scanners.c:2518,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:2518,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/scanners.c:2520,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2522,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:2526,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - hrefs
    - form_data
    argTypes:
    - cli_ctx*
    - tag_arguments_t*
    - form_data_t*
    constantsTouched: []
    func_position:
      end: 2529
      start: 2485
    functionDepth: 2
    functionLinenumber: 2485
    functionLinenumberEnd: 2529
    functionName: save_urls
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_jsonstr
    - strlen
    - is_url
    - cli_dbgmsg
    - cli_jsonarray
    linkageType: ''
    returnType: void
    signature: void save_urls(cli_ctx *ctx, tag_arguments_t *hrefs, form_data_t *form_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2540,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2544,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:2549,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:2554,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:2555,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2560,1
    - Dst: html_normalise_map_form_data
      Src: /src/clamav/libclamav/scanners.c:2567,1
    - Dst: save_urls
      Src: /src/clamav/libclamav/scanners.c:2568,1
    - Dst: html_tag_arg_free
      Src: /src/clamav/libclamav/scanners.c:2569,1
    - Dst: html_form_data_tag_free
      Src: /src/clamav/libclamav/scanners.c:2570,1
    - Dst: html_normalise_map
      Src: /src/clamav/libclamav/scanners.c:2572,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:2575,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:2576,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/scanners.c:2580,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2585,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2594,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:2596,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:2598,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/scanners.c:2602,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2607,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:2612,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:2613,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/scanners.c:2617,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/scanners.c:2622,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2627,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:2631,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:2633,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2643,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:2647,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2649,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 92
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2653
      start: 2531
    functionDepth: 6
    functionLinenumber: 2531
    functionLinenumberEnd: 2653
    functionName: cli_scanhtml
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - close
    - cli_rmdirs
    - snprintf
    - mkdir
    - html_normalise_map_form_data
    - open
    - cli_magic_scan_dir
    - cli_dbgmsg
    - html_normalise_map
    - html_tag_arg_free
    - save_urls
    - free
    - cli_scan_desc
    - html_form_data_tag_free
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanhtml(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_targetinfo_init
      Src: /src/clamav/libclamav/scanners.c:2686,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2688,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2692,1
    - Dst: malloc
      Src: /src/clamav/libclamav/scanners.c:2697,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2698,1
    - Dst: text_normalize_init
      Src: /src/clamav/libclamav/scanners.c:2702,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/scanners.c:2704,1
    - Dst: cli_ac_initdata
      Src: /src/clamav/libclamav/scanners.c:2709,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:2718,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2719,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2723,1
    - Dst: text_normalize_map
      Src: /src/clamav/libclamav/scanners.c:2734,1
    - Dst: write
      Src: /src/clamav/libclamav/scanners.c:2738,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:2739,1
    - Dst: text_normalize_reset
      Src: /src/clamav/libclamav/scanners.c:2743,1
    - Dst: fmap
      Src: /src/clamav/libclamav/scanners.c:2747,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2749,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:2754,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2756,1
    - Dst: cli_scan_fmap
      Src: /src/clamav/libclamav/scanners.c:2761,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:2763,1
    - Dst: cli_targetinfo
      Src: /src/clamav/libclamav/scanners.c:2774,1
    - Dst: cli_ac_caloff
      Src: /src/clamav/libclamav/scanners.c:2775,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/scanners.c:2782,1
    - Dst: write
      Src: /src/clamav/libclamav/scanners.c:2786,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:2787,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2788,1
    - Dst: cli_scan_buff
      Src: /src/clamav/libclamav/scanners.c:2793,1
    - Dst: memmove
      Src: /src/clamav/libclamav/scanners.c:2804,1
    - Dst: text_normalize_reset
      Src: /src/clamav/libclamav/scanners.c:2805,1
    - Dst: text_normalize_buffer
      Src: /src/clamav/libclamav/scanners.c:2810,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2811,1
    - Dst: cli_exp_eval
      Src: /src/clamav/libclamav/scanners.c:2816,1
    - Dst: cli_exp_eval
      Src: /src/clamav/libclamav/scanners.c:2821,1
    - Dst: funmap
      Src: /src/clamav/libclamav/scanners.c:2828,1
    - Dst: cli_targetinfo_destroy
      Src: /src/clamav/libclamav/scanners.c:2831,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2834,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/scanners.c:2838,1
    - Dst: cli_ac_freedata
      Src: /src/clamav/libclamav/scanners.c:2842,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2846,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:2851,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2853,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 147
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2857
      start: 2655
    functionDepth: 5
    functionLinenumber: 2655
    functionLinenumberEnd: 2857
    functionName: cli_scanscript
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - fmap
    - text_normalize_map
    - write
    - text_normalize_buffer
    - memmove
    - funmap
    - cli_ac_freedata
    - fmap_need_off_once
    - cli_targetinfo
    - cli_dbgmsg
    - cli_scan_buff
    - text_normalize_reset
    - cli_recursion_stack_pop
    - cli_ac_caloff
    - close
    - cli_exp_eval
    - cli_unlink
    - cli_ac_initdata
    - cli_gentempfd
    - cli_scan_fmap
    - malloc
    - cli_recursion_stack_push
    - cli_targetinfo_init
    - free
    - text_normalize_init
    - cli_targetinfo_destroy
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanscript(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2870,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:2872,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:2877,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:2878,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2883,1
    - Dst: MIN
      Src: /src/clamav/libclamav/scanners.c:2886,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/scanners.c:2887,1
    - Dst: cli_utf16toascii
      Src: /src/clamav/libclamav/scanners.c:2892,1
    - Dst: write
      Src: /src/clamav/libclamav/scanners.c:2894,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:2895,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2899,1
    - Dst: fmap
      Src: /src/clamav/libclamav/scanners.c:2904,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:2906,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:2912,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2914,1
    - Dst: cli_scanhtml
      Src: /src/clamav/libclamav/scanners.c:2918,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:2920,1
    - Dst: funmap
      Src: /src/clamav/libclamav/scanners.c:2928,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:2931,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2935,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:2940,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2942,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:2945,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2949
      start: 2859
    functionDepth: 7
    functionLinenumber: 2859
    functionLinenumberEnd: 2949
    functionName: cli_scanhtml_utf16
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - fmap
    - cli_scanhtml
    - close
    - funmap
    - cli_unlink
    - open
    - cli_utf16toascii
    - fmap_need_off_once
    - write
    - cli_dbgmsg
    - MIN
    - cli_recursion_stack_push
    - cli_recursion_stack_pop
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanhtml_utf16(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:2967,1
    - Dst: cli_ole2_tempdir_scan_summary
      Src: /src/clamav/libclamav/scanners.c:2971,1
    - Dst: cli_ole2_tempdir_scan_embedded_ole10
      Src: /src/clamav/libclamav/scanners.c:2974,1
    - Dst: cli_ole2_tempdir_scan_vba
      Src: /src/clamav/libclamav/scanners.c:2980,1
    - Dst: cli_ole2_tempdir_scan_vba_new
      Src: /src/clamav/libclamav/scanners.c:2985,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:2993,1
    - Dst: cli_ole2_tempdir_scan_for_xlm_and_images
      Src: /src/clamav/libclamav/scanners.c:3003,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:3010,1
    - Dst: opendir
      Src: /src/clamav/libclamav/scanners.c:3020,1
    - Dst: readdir
      Src: /src/clamav/libclamav/scanners.c:3021,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/scanners.c:3023,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/scanners.c:3023,1
    - Dst: malloc
      Src: /src/clamav/libclamav/scanners.c:3025,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:3025,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:3025,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3027,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/scanners.c:3031,1
    - Dst: LSTAT
      Src: /src/clamav/libclamav/scanners.c:3034,1
    - Dst: S_ISDIR
      Src: /src/clamav/libclamav/scanners.c:3035,1
    - Dst: S_ISLNK
      Src: /src/clamav/libclamav/scanners.c:3035,1
    - Dst: cli_ole2_scan_tempdir
      Src: /src/clamav/libclamav/scanners.c:3039,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3051,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3057,1
    - Dst: closedir
      Src: /src/clamav/libclamav/scanners.c:3064,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3067,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 85
    argCount: 6
    argNames:
    - ctx
    - dir
    - files
    - has_vba
    - has_xlm
    - has_image
    argTypes:
    - cli_ctx*
    - char*
    - struct uniq*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3071
      start: 2951
    functionDepth: 13
    functionLinenumber: 2951
    functionLinenumberEnd: 3071
    functionName: cli_ole2_scan_tempdir
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 1
    functionsReached:
    - S_ISDIR
    - cli_ole2_tempdir_scan_vba
    - cli_ole2_tempdir_scan_summary
    - readdir
    - cli_ole2_tempdir_scan_embedded_ole10
    - sprintf
    - strcmp
    - cli_ole2_tempdir_scan_for_xlm_and_images
    - cli_dbgmsg
    - closedir
    - cli_append_potentially_unwanted
    - cli_ole2_tempdir_scan_vba_new
    - malloc
    - cli_magic_scan_dir
    - free
    - S_ISLNK
    - strlen
    - cli_ole2_scan_tempdir
    - opendir
    - LSTAT
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_ole2_scan_tempdir(\n    cli_ctx *ctx,\n    const char
      *dir,\n    struct uniq *files,\n    int has_vba,\n    int has_xlm,\n    int
      has_image)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3082,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:3085,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:3090,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3091,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3092,1
    - Dst: cli_ole2_extract
      Src: /src/clamav/libclamav/scanners.c:3098,1
    - Dst: cli_ole2_scan_tempdir
      Src: /src/clamav/libclamav/scanners.c:3114,1
    - Dst: uniq_free
      Src: /src/clamav/libclamav/scanners.c:3125,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:3130,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3132,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3136
      start: 3073
    functionDepth: 14
    functionLinenumber: 3073
    functionLinenumberEnd: 3136
    functionName: cli_scanole2
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_rmdirs
    - mkdir
    - cli_ole2_scan_tempdir
    - cli_dbgmsg
    - uniq_free
    - cli_ole2_extract
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanole2(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3143,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:3146,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:3149,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:3150,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3151,1
    - Dst: cli_untar
      Src: /src/clamav/libclamav/scanners.c:3155,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:3158,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - posix
    argTypes:
    - cli_ctx*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3162
      start: 3138
    functionDepth: 6
    functionLinenumber: 3138
    functionLinenumberEnd: 3162
    functionName: cli_scantar
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_rmdirs
    - mkdir
    - cli_dbgmsg
    - cli_untar
    - free
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scantar(cli_ctx *ctx, unsigned int posix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3169,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:3171,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:3174,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3175,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3176,1
    - Dst: html_screnc_decode
      Src: /src/clamav/libclamav/scanners.c:3180,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:3181,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:3184,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3188
      start: 3164
    functionDepth: 6
    functionLinenumber: 3164
    functionLinenumberEnd: 3188
    functionName: cli_scanscrenc
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_rmdirs
    - mkdir
    - cli_magic_scan_dir
    - cli_dbgmsg
    - html_screnc_decode
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanscrenc(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_check_riff_exploit
      Src: /src/clamav/libclamav/scanners.c:3194,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:3195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3198
      start: 3190
    functionDepth: 5
    functionLinenumber: 3190
    functionLinenumberEnd: 3198
    functionName: cli_scanriff
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_append_potentially_unwanted
    - cli_check_riff_exploit
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanriff(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/scanners.c:3213,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3214,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:3218,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3219,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:3223,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:3224,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3225,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3226,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/scanners.c:3230,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:3233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3234,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3235,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:3236,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3237,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3242,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3244,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:3246,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:3248,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3251,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:3253,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3258,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3260
      start: 3200
    functionDepth: 6
    functionLinenumber: 3200
    functionLinenumberEnd: 3260
    functionName: cli_scancryptff
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - close
    - cli_magic_scan_desc
    - cli_unlink
    - cli_errmsg
    - open
    - cli_dbgmsg
    - fmap_need_off_once_len
    - malloc
    - cli_writen
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scancryptff(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:3270,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3271,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3272,1
    - Dst: cli_pdf
      Src: /src/clamav/libclamav/scanners.c:3276,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:3279,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 3283
      start: 3262
    functionDepth: 8
    functionLinenumber: 3262
    functionLinenumberEnd: 3283
    functionName: cli_scanpdf
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_pdf
    - mkdir
    - cli_dbgmsg
    - free
    - cli_rmdirs
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanpdf(cli_ctx *ctx, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:3293,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3294,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3295,1
    - Dst: cli_tnef
      Src: /src/clamav/libclamav/scanners.c:3299,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:3302,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:3305,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3309
      start: 3285
    functionDepth: 4
    functionLinenumber: 3285
    functionLinenumberEnd: 3309
    functionName: cli_scantnef
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_tnef
    - cli_rmdirs
    - mkdir
    - cli_dbgmsg
    - free
    - cli_magic_scan_dir
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scantnef(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:3319,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3320,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3321,1
    - Dst: cli_uuencode
      Src: /src/clamav/libclamav/scanners.c:3325,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:3328,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:3331,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3335
      start: 3311
    functionDepth: 4
    functionLinenumber: 3311
    functionLinenumberEnd: 3335
    functionName: cli_scanuuencoded
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_rmdirs
    - mkdir
    - cli_magic_scan_dir
    - cli_dbgmsg
    - cli_uuencode
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanuuencoded(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3342,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:3345,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:3350,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3351,1
    - Dst: cli_mbox
      Src: /src/clamav/libclamav/scanners.c:3359,1
    - Dst: cli_magic_scan_dir
      Src: /src/clamav/libclamav/scanners.c:3364,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/scanners.c:3372,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3375,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3379
      start: 3337
    functionDepth: 6
    functionLinenumber: 3337
    functionLinenumberEnd: 3379
    functionName: cli_scanmail
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - cli_rmdirs
    - cli_mbox
    - mkdir
    - cli_dbgmsg
    - free
    - cli_magic_scan_dir
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanmail(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/scanners.c:3429,1
    - Dst: ccfunc
      Src: /src/clamav/libclamav/scanners.c:3431,1
    - Dst: ssnfunc
      Src: /src/clamav/libclamav/scanners.c:3436,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3442,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:3443,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3449,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/scanners.c:3450,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3456
      start: 3381
    functionDepth: 5
    functionLinenumber: 3381
    functionLinenumberEnd: 3456
    functionName: cli_scan_structured
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - ssnfunc
    - cli_append_potentially_unwanted
    - fmap_readn
    - cli_dbgmsg
    - ccfunc
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scan_structured(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:3470,1
    - Dst: open
      Src: /src/clamav/libclamav/scanners.c:3474,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:3475,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3476,1
    - Dst: MIN
      Src: /src/clamav/libclamav/scanners.c:3482,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/scanners.c:3486,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:3487,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:3489,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3490,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3494,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/scanners.c:3500,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:3503,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3504,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:3505,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:3507,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3508,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3512,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:3520,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:3523,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:3525,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3526,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3530,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:3534,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:3536,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3537,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:3541,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 3544
      start: 3458
    functionDepth: 6
    functionLinenumber: 3458
    functionLinenumberEnd: 3544
    functionName: cli_scanembpe
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_gentemp_with_prefix
    - close
    - cli_magic_scan_desc
    - cli_unlink
    - open
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_checklimits
    - MIN
    - cli_writen
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanembpe(cli_ctx *ctx, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetThreadTimes
      Src: /src/clamav/libclamav/scanners.c:3578,1
    - Dst: GetCurrentThread
      Src: /src/clamav/libclamav/scanners.c:3578,1
    - Dst: times
      Src: /src/clamav/libclamav/scanners.c:3590,1
    - Dst: sysconf
      Src: /src/clamav/libclamav/scanners.c:3591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - kt
    - ut
    argTypes:
    - uint64_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 3598
      start: 3573
    functionDepth: 0
    functionLinenumber: 3573
    functionLinenumberEnd: 3598
    functionName: get_thread_times
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - GetThreadTimes
    - sysconf
    - times
    - GetCurrentThread
    linkageType: ''
    returnType: void
    signature: void get_thread_times(uint64_t *kt, uint64_t *ut)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_events_new
      Src: /src/clamav/libclamav/scanners.c:3608,1
    - Dst: cli_event_define
      Src: /src/clamav/libclamav/scanners.c:3610,1
    - Dst: cli_event_time_start
      Src: /src/clamav/libclamav/scanners.c:3614,1
    - Dst: get_thread_times
      Src: /src/clamav/libclamav/scanners.c:3615,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/scanners.c:3616,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/scanners.c:3617,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3618
      start: 3600
    functionDepth: 4
    functionLinenumber: 3600
    functionLinenumberEnd: 3618
    functionName: perf_init
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_events_new
    - cli_event_int
    - get_thread_times
    - cli_event_define
    - cli_event_time_start
    linkageType: ''
    returnType: void
    signature: void perf_init(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_time_stop
      Src: /src/clamav/libclamav/scanners.c:3636,1
    - Dst: get_thread_times
      Src: /src/clamav/libclamav/scanners.c:3637,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/scanners.c:3638,1
    - Dst: cli_event_int
      Src: /src/clamav/libclamav/scanners.c:3639,1
    - Dst: cli_event_get
      Src: /src/clamav/libclamav/scanners.c:3645,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:3647,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/scanners.c:3652,1
    - Dst: cli_events_free
      Src: /src/clamav/libclamav/scanners.c:3654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3656
      start: 3620
    functionDepth: 4
    functionLinenumber: 3620
    functionLinenumberEnd: 3656
    functionName: perf_done
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cli_event_int
    - cli_infomsg
    - cli_events_free
    - get_thread_times
    - cli_event_get
    - cli_event_time_stop
    linkageType: ''
    returnType: void
    signature: void perf_done(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_time_start
      Src: /src/clamav/libclamav/scanners.c:3660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 3661
      start: 3658
    functionDepth: 3
    functionLinenumber: 3658
    functionLinenumberEnd: 3661
    functionName: perf_start
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_event_time_start
    linkageType: ''
    returnType: void
    signature: void perf_start(cli_ctx *ctx, int id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_time_stop
      Src: /src/clamav/libclamav/scanners.c:3665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 3666
      start: 3663
    functionDepth: 3
    functionLinenumber: 3663
    functionLinenumberEnd: 3666
    functionName: perf_stop
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_event_time_stop
    linkageType: ''
    returnType: void
    signature: void perf_stop(cli_ctx *ctx, int id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_time_nested_start
      Src: /src/clamav/libclamav/scanners.c:3670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - id
    - nestedid
    argTypes:
    - cli_ctx*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3671
      start: 3668
    functionDepth: 3
    functionLinenumber: 3668
    functionLinenumberEnd: 3671
    functionName: perf_nested_start
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_event_time_nested_start
    linkageType: ''
    returnType: void
    signature: void perf_nested_start(cli_ctx *ctx, int id, int nestedid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_event_time_nested_stop
      Src: /src/clamav/libclamav/scanners.c:3675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - id
    - nestedid
    argTypes:
    - cli_ctx*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3676
      start: 3673
    functionDepth: 3
    functionLinenumber: 3673
    functionLinenumberEnd: 3676
    functionName: perf_nested_stop
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_event_time_nested_stop
    linkageType: ''
    returnType: void
    signature: void perf_nested_stop(cli_ctx *ctx, int id, int nestedid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3682
      start: 3679
    functionDepth: 0
    functionLinenumber: 3679
    functionLinenumberEnd: 3682
    functionName: perf_init
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void perf_init(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3685,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 3687
      start: 3683
    functionDepth: 0
    functionLinenumber: 3683
    functionLinenumberEnd: 3687
    functionName: perf_start
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void perf_start(cli_ctx *ctx, int id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3690,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - cli_ctx*
    - int
    constantsTouched: []
    func_position:
      end: 3692
      start: 3688
    functionDepth: 0
    functionLinenumber: 3688
    functionLinenumberEnd: 3692
    functionName: perf_stop
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void perf_stop(cli_ctx *ctx, int id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3695,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3696,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - id
    - nestedid
    argTypes:
    - cli_ctx*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3698
      start: 3693
    functionDepth: 0
    functionLinenumber: 3693
    functionLinenumberEnd: 3698
    functionName: perf_nested_start
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void perf_nested_start(cli_ctx *ctx, int id, int nestedid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3701,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3702,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - id
    - nestedid
    argTypes:
    - cli_ctx*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3704
      start: 3699
    functionDepth: 0
    functionLinenumber: 3699
    functionLinenumberEnd: 3704
    functionName: perf_nested_stop
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void perf_nested_stop(cli_ctx *ctx, int id, int nestedid)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/scanners.c:3707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 3708
      start: 3705
    functionDepth: 0
    functionLinenumber: 3705
    functionLinenumberEnd: 3708
    functionName: perf_done
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void perf_done(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:3753,1
    - Dst: cli_scan_fmap
      Src: /src/clamav/libclamav/scanners.c:3754,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:3755,1
    - Dst: perf_nested_start
      Src: /src/clamav/libclamav/scanners.c:3763,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/scanners.c:3778,1
    - Dst: json_object_new_array
      Src: /src/clamav/libclamav/scanners.c:3779,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:3781,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/scanners.c:3785,1
    - Dst: json_object_new_object
      Src: /src/clamav/libclamav/scanners.c:3787,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:3789,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/scanners.c:3793,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:3795,1
    - Dst: cli_ftname
      Src: /src/clamav/libclamav/scanners.c:3795,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:3797,1
    - Dst: cli_jsonint64
      Src: /src/clamav/libclamav/scanners.c:3802,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:3804,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3826,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3828,1
    - Dst: cli_scanmail
      Src: /src/clamav/libclamav/scanners.c:3829,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3842,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3844,1
    - Dst: cli_scanxdp
      Src: /src/clamav/libclamav/scanners.c:3845,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3858,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3860,1
    - Dst: cli_scanmsxml
      Src: /src/clamav/libclamav/scanners.c:3861,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3873,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3875,1
    - Dst: cli_scanmsxml
      Src: /src/clamav/libclamav/scanners.c:3876,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3888,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3890,1
    - Dst: cli_scanhwpml
      Src: /src/clamav/libclamav/scanners.c:3891,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3902,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3904,1
    - Dst: cli_scandmg
      Src: /src/clamav/libclamav/scanners.c:3905,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3916,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3918,1
    - Dst: cli_scaniso
      Src: /src/clamav/libclamav/scanners.c:3919,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3928,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3930,1
    - Dst: cli_scanudf
      Src: /src/clamav/libclamav/scanners.c:3931,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3946,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3948,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3949,1
    - Dst: cli_scangpt
      Src: /src/clamav/libclamav/scanners.c:3950,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:3953,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3955,1
    - Dst: cli_scanmbr
      Src: /src/clamav/libclamav/scanners.c:3956,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3985,1
    - Dst: cli_ftname
      Src: /src/clamav/libclamav/scanners.c:3985,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:3995,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:3998,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4003,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4006,1
    - Dst: cli_scanrar
      Src: /src/clamav/libclamav/scanners.c:4010,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4012,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4019,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4022,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4027,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4030,1
    - Dst: cli_scanegg
      Src: /src/clamav/libclamav/scanners.c:4034,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4036,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4043,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4046,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4051,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4054,1
    - Dst: cli_unzip_single
      Src: /src/clamav/libclamav/scanners.c:4058,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4060,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4067,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4070,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4075,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4078,1
    - Dst: cli_scanmscab
      Src: /src/clamav/libclamav/scanners.c:4082,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4084,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4091,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4094,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4099,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4102,1
    - Dst: cli_scanarj
      Src: /src/clamav/libclamav/scanners.c:4106,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4108,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4115,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4118,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4123,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4126,1
    - Dst: cli_7unz
      Src: /src/clamav/libclamav/scanners.c:4130,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4132,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4139,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4142,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4147,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4150,1
    - Dst: cli_scannulsft
      Src: /src/clamav/libclamav/scanners.c:4154,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4156,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4166,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4171,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4174,1
    - Dst: cli_scanautoit
      Src: /src/clamav/libclamav/scanners.c:4178,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4180,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4187,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4190,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4195,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4198,1
    - Dst: cli_scanishield_msi
      Src: /src/clamav/libclamav/scanners.c:4202,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4204,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4211,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4214,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4219,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4222,1
    - Dst: cli_scanpdf
      Src: /src/clamav/libclamav/scanners.c:4226,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4228,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4236,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:4240,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4243,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:4248,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4251,1
    - Dst: cli_exe_info_init
      Src: /src/clamav/libclamav/scanners.c:4256,1
    - Dst: cli_peheader
      Src: /src/clamav/libclamav/scanners.c:4261,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4262,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/scanners.c:4265,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4268,1
    - Dst: cli_exe_info_destroy
      Src: /src/clamav/libclamav/scanners.c:4271,1
    - Dst: cli_scanembpe
      Src: /src/clamav/libclamav/scanners.c:4273,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:4301,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4307,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/libclamav/scanners.c:4311,1
    - Dst: cli_recursion_stack_get_type
      Src: /src/clamav/libclamav/scanners.c:4337,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:4345,1
    - Dst: cli_scanhtml
      Src: /src/clamav/libclamav/scanners.c:4346,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:4353,1
    - Dst: cli_scanmail
      Src: /src/clamav/libclamav/scanners.c:4354,1
    - Dst: perf_nested_stop
      Src: /src/clamav/libclamav/scanners.c:4363,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:4374,1
    CyclomaticComplexity: 190
    EdgeCount: 190
    ICount: 404
    argCount: 5
    argNames:
    - ctx
    - type
    - typercg
    - dettype
    - refhash
    argTypes:
    - cli_ctx*
    - cli_file_t
    - uint8_t
    - cli_file_t*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 4378
      start: 3723
    functionDepth: 12
    functionLinenumber: 3723
    functionLinenumberEnd: 4378
    functionName: scanraw
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_exe_info_destroy
    - perf_nested_stop
    - cli_scanautoit
    - cli_peheader
    - cli_scanmscab
    - cli_ftname
    - cli_scanmail
    - cli_scanarj
    - cli_7unz
    - cli_scanhwpml
    - cli_recursion_stack_get_type
    - json_object_object_add
    - cli_scandmg
    - json_object_new_array
    - cli_scanudf
    - cli_scanrar
    - cli_dbgmsg
    - cli_scanmbr
    - cli_recursion_stack_pop
    - cli_scanishield_msi
    - cli_scanegg
    - cli_scaniso
    - cli_jsonstr
    - cli_scanpdf
    - cli_scanmsxml
    - fmap_duplicate
    - cli_scanembpe
    - json_object_array_add
    - json_object_new_object
    - perf_nested_start
    - free_duplicate_fmap
    - cli_unzip_single
    - cli_scan_fmap
    - cli_recursion_stack_push
    - free
    - cli_scanhtml
    - perf_start
    - cli_recursion_stack_change_type
    - perf_stop
    - json_object_object_get_ex
    - cli_exe_info_init
    - cli_scannulsft
    - cli_scangpt
    - cli_jsonint64
    - cli_errmsg
    - cli_scanxdp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scanraw(cli_ctx *ctx, cli_file_t type, uint8_t typercg,
      cli_file_t *dettype, unsigned char *refhash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 4401
      start: 4380
    functionDepth: 2
    functionLinenumber: 4380
    functionLinenumberEnd: 4401
    functionName: emax_reached
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void emax_reached(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:4444,1
    - Dst: CLI_MAX_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/scanners.c:4446,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/scanners.c:4449,1
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:4464,1
    - Dst: cb
      Src: /src/clamav/libclamav/scanners.c:4465,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:4467,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4471,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4475,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/scanners.c:4476,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/scanners.c:4483,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/scanners.c:4488,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - cb
    - ctx
    - filetype
    argTypes:
    - clcb_file_inspection
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 4490
      start: 4423
    functionDepth: 6
    functionLinenumber: 4423
    functionLinenumberEnd: 4490
    functionName: dispatch_file_inspection_callback
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - CLI_MAX_CALLOC_OR_GOTO_DONE
    - cli_append_virus
    - perf_start
    - cli_warnmsg
    - perf_stop
    - fmap_fd
    - cli_dbgmsg
    - fmap_need_off_once_len
    - CLI_FREE_AND_SET_NULL
    - cb
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t dispatch_file_inspection_callback(clcb_file_inspection cb,
      cli_ctx *ctx, const char *filetype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:4497,1
    - Dst: cb
      Src: /src/clamav/libclamav/scanners.c:4498,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:4498,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:4499,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4503,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4507,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/scanners.c:4508,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/scanners.c:4514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - cb
    - ctx
    - filetype
    argTypes:
    - clcb_pre_scan
    - cli_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 4519
      start: 4492
    functionDepth: 6
    functionLinenumber: 4492
    functionLinenumberEnd: 4519
    functionName: dispatch_prescan_callback
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cli_append_virus
    - perf_start
    - cli_warnmsg
    - perf_stop
    - fmap_fd
    - cli_dbgmsg
    - cb
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t dispatch_prescan_callback(clcb_pre_scan cb, cli_ctx *ctx,
      const char *filetype)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off
      Src: /src/clamav/libclamav/scanners.c:4530,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/scanners.c:4533,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4534,1
    - Dst: fuzzy_hash_calculate_image
      Src: /src/clamav/libclamav/scanners.c:4540,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4541,1
    - Dst: cli_ftname
      Src: /src/clamav/libclamav/scanners.c:4542,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/scanners.c:4543,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4546,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/scanners.c:4546,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:4554,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4557,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/scanners.c:4567,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - cli_ctx*
    - cli_file_t
    constantsTouched: []
    func_position:
      end: 4570
      start: 4521
    functionDepth: 2
    functionLinenumber: 4521
    functionLinenumberEnd: 4570
    functionName: calculate_fuzzy_image_hash
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - fmap_need_off
    - snprintf
    - cli_jsonstr
    - cli_jsonobj
    - ffierror_free
    - cli_dbgmsg
    - fuzzy_hash_calculate_image
    - cli_ftname
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t calculate_fuzzy_image_hash(cli_ctx *ctx, cli_file_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4589,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4617,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:4617,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/scanners.c:4617,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4634,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:4634,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/scanners.c:4634,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4661,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:4662,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/scanners.c:4662,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 3
    argNames:
    - ctx
    - result_in
    - result_out
    argTypes:
    - cli_ctx*
    - cl_error_t
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 4668
      start: 4584
    functionDepth: 2
    functionLinenumber: 4584
    functionLinenumberEnd: 4668
    functionName: result_should_goto_done
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - cli_dbgmsg
    - fmap_fd
    linkageType: ''
    returnType: bool
    signature: bool result_should_goto_done(cli_ctx *ctx, cl_error_t result_in, cl_error_t
      *result_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4689,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4695,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4701,1
    - Dst: cli_updatelimits
      Src: /src/clamav/libclamav/scanners.c:4706,1
    - Dst: emax_reached
      Src: /src/clamav/libclamav/scanners.c:4707,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4709,1
    - Dst: cli_basename
      Src: /src/clamav/libclamav/scanners.c:4719,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:4719,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/scanners.c:4723,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:4724,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4726,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/scanners.c:4734,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4736,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/scanners.c:4745,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4746,1
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:4763,1
    - Dst: cli_determine_fmap_type
      Src: /src/clamav/libclamav/scanners.c:4765,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:4767,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4769,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4771,1
    - Dst: cli_ftname
      Src: /src/clamav/libclamav/scanners.c:4774,1
    - Dst: cli_recursion_stack_change_type
      Src: /src/clamav/libclamav/scanners.c:4777,1
    - Dst: json_object_new_object
      Src: /src/clamav/libclamav/scanners.c:4784,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4786,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4788,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4793,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4795,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4798,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4800,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/scanners.c:4808,1
    - Dst: json_object_new_array
      Src: /src/clamav/libclamav/scanners.c:4809,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4811,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4813,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/scanners.c:4816,1
    - Dst: json_object_new_object
      Src: /src/clamav/libclamav/scanners.c:4818,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:4820,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4822,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/scanners.c:4825,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4829,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4831,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4836,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4838,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4842,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4844,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/scanners.c:4847,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4849,1
    - Dst: dispatch_prescan_callback
      Src: /src/clamav/libclamav/scanners.c:4857,1
    - Dst: fmap_get_hash
      Src: /src/clamav/libclamav/scanners.c:4866,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4867,1
    - Dst: dispatch_file_inspection_callback
      Src: /src/clamav/libclamav/scanners.c:4877,1
    - Dst: cli_check_fp
      Src: /src/clamav/libclamav/scanners.c:4880,1
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:4891,1
    - Dst: clean_cache_check
      Src: /src/clamav/libclamav/scanners.c:4892,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:4893,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/scanners.c:4898,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/scanners.c:4902,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4904,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:4910,1
    - Dst: dispatch_prescan_callback
      Src: /src/clamav/libclamav/scanners.c:4921,1
    - Dst: cli_scan_fmap
      Src: /src/clamav/libclamav/scanners.c:4932,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/scanners.c:4944,1
    - Dst: scanraw
      Src: /src/clamav/libclamav/scanners.c:4955,1
    - Dst: result_should_goto_done
      Src: /src/clamav/libclamav/scanners.c:4959,1
    - Dst: perf_nested_start
      Src: /src/clamav/libclamav/scanners.c:4967,1
    - Dst: cli_scanhwp3
      Src: /src/clamav/libclamav/scanners.c:4974,1
    - Dst: cli_scanhwpole2
      Src: /src/clamav/libclamav/scanners.c:4979,1
    - Dst: cli_scanmsxml
      Src: /src/clamav/libclamav/scanners.c:4984,1
    - Dst: cli_scanmsxml
      Src: /src/clamav/libclamav/scanners.c:4989,1
    - Dst: cli_scanhwpml
      Src: /src/clamav/libclamav/scanners.c:4994,1
    - Dst: cli_scanxdp
      Src: /src/clamav/libclamav/scanners.c:4999,1
    - Dst: cli_scanrar
      Src: /src/clamav/libclamav/scanners.c:5004,1
    - Dst: cli_scanegg
      Src: /src/clamav/libclamav/scanners.c:5009,1
    - Dst: scan_onenote
      Src: /src/clamav/libclamav/scanners.c:5014,1
    - Dst: cli_scanalz
      Src: /src/clamav/libclamav/scanners.c:5019,1
    - Dst: scan_lha_lzh
      Src: /src/clamav/libclamav/scanners.c:5025,1
    - Dst: cli_process_ooxml
      Src: /src/clamav/libclamav/scanners.c:5034,1
    - Dst: cli_unzip
      Src: /src/clamav/libclamav/scanners.c:5053,1
    - Dst: cli_scangzip
      Src: /src/clamav/libclamav/scanners.c:5058,1
    - Dst: cli_scanbzip
      Src: /src/clamav/libclamav/scanners.c:5063,1
    - Dst: cli_scanxz
      Src: /src/clamav/libclamav/scanners.c:5068,1
    - Dst: cli_scangpt
      Src: /src/clamav/libclamav/scanners.c:5073,1
    - Dst: cli_scanapm
      Src: /src/clamav/libclamav/scanners.c:5078,1
    - Dst: cli_scanarj
      Src: /src/clamav/libclamav/scanners.c:5083,1
    - Dst: cli_scannulsft
      Src: /src/clamav/libclamav/scanners.c:5088,1
    - Dst: cli_scanautoit
      Src: /src/clamav/libclamav/scanners.c:5093,1
    - Dst: cli_scanszdd
      Src: /src/clamav/libclamav/scanners.c:5098,1
    - Dst: cli_scanmscab
      Src: /src/clamav/libclamav/scanners.c:5103,1
    - Dst: cli_scanhtml
      Src: /src/clamav/libclamav/scanners.c:5108,1
    - Dst: cli_scanhtml_utf16
      Src: /src/clamav/libclamav/scanners.c:5113,1
    - Dst: cli_scanscript
      Src: /src/clamav/libclamav/scanners.c:5118,1
    - Dst: cli_scanswf
      Src: /src/clamav/libclamav/scanners.c:5123,1
    - Dst: cli_scanrtf
      Src: /src/clamav/libclamav/scanners.c:5128,1
    - Dst: cli_scanmail
      Src: /src/clamav/libclamav/scanners.c:5133,1
    - Dst: cli_scanmail
      Src: /src/clamav/libclamav/scanners.c:5138,1
    - Dst: cli_scantnef
      Src: /src/clamav/libclamav/scanners.c:5143,1
    - Dst: cli_scanuuencoded
      Src: /src/clamav/libclamav/scanners.c:5148,1
    - Dst: cli_scanmschm
      Src: /src/clamav/libclamav/scanners.c:5153,1
    - Dst: cli_scanole2
      Src: /src/clamav/libclamav/scanners.c:5158,1
    - Dst: cli_7unz
      Src: /src/clamav/libclamav/scanners.c:5163,1
    - Dst: cli_scantar
      Src: /src/clamav/libclamav/scanners.c:5168,1
    - Dst: cli_scantar
      Src: /src/clamav/libclamav/scanners.c:5173,1
    - Dst: cli_scancpio_old
      Src: /src/clamav/libclamav/scanners.c:5178,1
    - Dst: cli_scancpio_odc
      Src: /src/clamav/libclamav/scanners.c:5183,1
    - Dst: cli_scancpio_newc
      Src: /src/clamav/libclamav/scanners.c:5188,1
    - Dst: cli_scancpio_newc
      Src: /src/clamav/libclamav/scanners.c:5193,1
    - Dst: cli_binhex
      Src: /src/clamav/libclamav/scanners.c:5198,1
    - Dst: cli_scanscrenc
      Src: /src/clamav/libclamav/scanners.c:5203,1
    - Dst: cli_scanriff
      Src: /src/clamav/libclamav/scanners.c:5208,1
    - Dst: calculate_fuzzy_image_hash
      Src: /src/clamav/libclamav/scanners.c:5222,1
    - Dst: cli_parsegif
      Src: /src/clamav/libclamav/scanners.c:5234,1
    - Dst: calculate_fuzzy_image_hash
      Src: /src/clamav/libclamav/scanners.c:5243,1
    - Dst: cli_parsepng
      Src: /src/clamav/libclamav/scanners.c:5255,1
    - Dst: calculate_fuzzy_image_hash
      Src: /src/clamav/libclamav/scanners.c:5264,1
    - Dst: cli_parsejpeg
      Src: /src/clamav/libclamav/scanners.c:5279,1
    - Dst: calculate_fuzzy_image_hash
      Src: /src/clamav/libclamav/scanners.c:5288,1
    - Dst: cli_parsetiff
      Src: /src/clamav/libclamav/scanners.c:5300,1
    - Dst: calculate_fuzzy_image_hash
      Src: /src/clamav/libclamav/scanners.c:5309,1
    - Dst: cli_scancryptff
      Src: /src/clamav/libclamav/scanners.c:5317,1
    - Dst: cli_scanelf
      Src: /src/clamav/libclamav/scanners.c:5322,1
    - Dst: cli_scanmacho
      Src: /src/clamav/libclamav/scanners.c:5327,1
    - Dst: cli_scanmacho_unibin
      Src: /src/clamav/libclamav/scanners.c:5332,1
    - Dst: cli_scansis
      Src: /src/clamav/libclamav/scanners.c:5337,1
    - Dst: cli_scanxar
      Src: /src/clamav/libclamav/scanners.c:5342,1
    - Dst: cli_scanhfsplus
      Src: /src/clamav/libclamav/scanners.c:5347,1
    - Dst: cli_check_mydoom_log
      Src: /src/clamav/libclamav/scanners.c:5353,1
    - Dst: cli_scan_structured
      Src: /src/clamav/libclamav/scanners.c:5362,1
    - Dst: perf_nested_stop
      Src: /src/clamav/libclamav/scanners.c:5368,1
    - Dst: result_should_goto_done
      Src: /src/clamav/libclamav/scanners.c:5372,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5385,1
    - Dst: scanraw
      Src: /src/clamav/libclamav/scanners.c:5392,1
    - Dst: result_should_goto_done
      Src: /src/clamav/libclamav/scanners.c:5396,1
    - Dst: perf_nested_start
      Src: /src/clamav/libclamav/scanners.c:5411,1
    - Dst: cli_scanscript
      Src: /src/clamav/libclamav/scanners.c:5414,1
    - Dst: cli_recursion_stack_get_type
      Src: /src/clamav/libclamav/scanners.c:5416,1
    - Dst: cli_scan_fmap
      Src: /src/clamav/libclamav/scanners.c:5418,1
    - Dst: perf_nested_stop
      Src: /src/clamav/libclamav/scanners.c:5420,1
    - Dst: perf_nested_start
      Src: /src/clamav/libclamav/scanners.c:5427,1
    - Dst: cli_scanpe
      Src: /src/clamav/libclamav/scanners.c:5432,1
    - Dst: perf_nested_stop
      Src: /src/clamav/libclamav/scanners.c:5435,1
    - Dst: perf_nested_start
      Src: /src/clamav/libclamav/scanners.c:5439,1
    - Dst: cli_unpackelf
      Src: /src/clamav/libclamav/scanners.c:5440,1
    - Dst: perf_nested_stop
      Src: /src/clamav/libclamav/scanners.c:5441,1
    - Dst: perf_nested_start
      Src: /src/clamav/libclamav/scanners.c:5446,1
    - Dst: cli_unpackmacho
      Src: /src/clamav/libclamav/scanners.c:5447,1
    - Dst: perf_nested_stop
      Src: /src/clamav/libclamav/scanners.c:5448,1
    - Dst: cli_scan_fmap
      Src: /src/clamav/libclamav/scanners.c:5454,1
    - Dst: cli_scanpdf
      Src: /src/clamav/libclamav/scanners.c:5459,1
    - Dst: result_should_goto_done
      Src: /src/clamav/libclamav/scanners.c:5469,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/scanners.c:5473,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/libclamav/scanners.c:5482,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5498,1
    - Dst: cli_get_last_virus
      Src: /src/clamav/libclamav/scanners.c:5505,1
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:5508,1
    - Dst: cli_ctx*::engine::cb_post_scan
      Src: /src/clamav/libclamav/scanners.c:5509,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:5509,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:5510,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5514,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5518,1
    - Dst: cli_append_virus
      Src: /src/clamav/libclamav/scanners.c:5519,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/scanners.c:5528,1
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:5538,1
    - Dst: clean_cache_add
      Src: /src/clamav/libclamav/scanners.c:5539,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:5540,1
    - Dst: rmdir
      Src: /src/clamav/libclamav/scanners.c:5547,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:5549,1
    CyclomaticComplexity: 330
    EdgeCount: 330
    ICount: 635
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - cli_ctx*
    - cli_file_t
    constantsTouched: []
    func_position:
      end: 5558
      start: 4670
    functionDepth: 15
    functionLinenumber: 4670
    functionLinenumberEnd: 5558
    functionName: cli_magic_scan
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 1
    functionsReached:
    - cli_scanmschm
    - perf_nested_stop
    - cli_scanxz
    - cli_scanalz
    - cli_scanscrenc
    - cli_scanhwpml
    - dispatch_prescan_callback
    - calculate_fuzzy_image_hash
    - cli_basename
    - fmap_get_hash
    - cli_determine_fmap_type
    - cli_process_ooxml
    - cli_scanegg
    - cli_jsonstr
    - perf_nested_start
    - cli_scantar
    - cli_scanpe
    - cli_parsetiff
    - mkdir
    - strlen
    - perf_start
    - perf_stop
    - cli_scannulsft
    - cli_check_mydoom_log
    - cli_gentemp_with_prefix
    - cli_scanxar
    - cli_bitset_free
    - cli_warnmsg
    - cli_scanmail
    - cli_get_last_virus
    - cli_recursion_stack_get_type
    - cli_parsepng
    - cli_unpackelf
    - cli_scansis
    - json_object_new_array
    - cli_scanrar
    - cli_dbgmsg
    - dispatch_file_inspection_callback
    - cli_ctx*::engine::cb_post_scan
    - cli_scancpio_odc
    - cli_scanmacho
    - cli_scanpdf
    - cli_scanole2
    - cli_parsegif
    - rmdir
    - cli_scanhtml_utf16
    - free
    - cli_unpackmacho
    - cli_scanszdd
    - cli_scan_structured
    - cli_gentemp
    - cli_scanelf
    - cli_errmsg
    - cli_scanxdp
    - result_should_goto_done
    - cli_scanautoit
    - clean_cache_check
    - cli_scanriff
    - cli_scanarj
    - cli_7unz
    - scan_lha_lzh
    - cli_jsonint
    - evidence_num_alerts
    - cli_scanhfsplus
    - cli_append_virus
    - cli_scanmsxml
    - scan_onenote
    - json_object_array_add
    - cli_scan_fmap
    - cli_scanscript
    - cli_scanswf
    - cli_scanhtml
    - clean_cache_add
    - cli_scancryptff
    - cli_scanhwp3
    - cli_recursion_stack_change_type
    - cli_scanmacho_unibin
    - cli_scanrtf
    - cli_scanhwpole2
    - cli_binhex
    - cli_scantnef
    - cli_scangpt
    - scanraw
    - snprintf
    - cli_parsejpeg
    - cli_scanmscab
    - cli_updatelimits
    - cli_bitset_init
    - cli_ftname
    - json_object_object_add
    - emax_reached
    - cli_unzip
    - cli_scancpio_old
    - cli_scanuuencoded
    - cli_scancpio_newc
    - json_object_new_object
    - cli_scanapm
    - cli_scanbzip
    - cli_check_fp
    - json_object_object_get_ex
    - cli_scangzip
    - fmap_fd
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_magic_scan(cli_ctx *ctx, cli_file_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5579,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/scanners.c:5581,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:5582,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5585,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5589,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5592,1
    - Dst: perf_start
      Src: /src/clamav/libclamav/scanners.c:5596,1
    - Dst: fmap
      Src: /src/clamav/libclamav/scanners.c:5597,1
    - Dst: perf_stop
      Src: /src/clamav/libclamav/scanners.c:5598,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:5600,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5602,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:5606,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5608,1
    - Dst: cli_magic_scan
      Src: /src/clamav/libclamav/scanners.c:5612,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:5614,1
    - Dst: funmap
      Src: /src/clamav/libclamav/scanners.c:5618,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 6
    argNames:
    - desc
    - filepath
    - ctx
    - type
    - name
    - attributes
    argTypes:
    - int
    - char*
    - cli_ctx*
    - cli_file_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 5624
      start: 5560
    functionDepth: 16
    functionLinenumber: 5560
    functionLinenumberEnd: 5624
    functionName: cli_magic_scan_desc_type
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 3
    functionsReached:
    - fmap
    - funmap
    - cli_magic_scan
    - perf_start
    - FSTAT
    - perf_stop
    - cli_dbgmsg
    - cli_recursion_stack_push
    - cli_recursion_stack_pop
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_magic_scan_desc_type(int desc, const char *filepath,
      cli_ctx *ctx, cli_file_t type,\n                                    const char
      *name, uint32_t attributes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_magic_scan_desc_type
      Src: /src/clamav/libclamav/scanners.c:5628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - desc
    - filepath
    - ctx
    - name
    - attributes
    argTypes:
    - int
    - char*
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 5629
      start: 5626
    functionDepth: 17
    functionLinenumber: 5626
    functionLinenumberEnd: 5629
    functionName: cli_magic_scan_desc
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 35
    functionsReached:
    - cli_magic_scan_desc_type
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_magic_scan_desc(int desc, const char *filepath, cli_ctx
      *ctx, const char *name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_scandesc_callback
      Src: /src/clamav/libclamav/scanners.c:5633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - desc
    - filename
    - virname
    - scanned
    - engine
    - scanoptions
    argTypes:
    - int
    - char*
    - char**
    - unsigned long int*
    - struct cl_engine*
    - struct cl_scan_options*
    constantsTouched: []
    func_position:
      end: 5634
      start: 5631
    functionDepth: 1
    functionLinenumber: 5631
    functionLinenumberEnd: 5634
    functionName: cl_scandesc
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 3
    functionsReached:
    - cl_scandesc_callback
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_scandesc(int desc, const char *filename, const char **virname,
      unsigned long int *scanned, const struct cl_engine *engine, struct cl_scan_options
      *scanoptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5655,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5659,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5667,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5673,1
    - Dst: fmap_duplicate
      Src: /src/clamav/libclamav/scanners.c:5677,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5679,1
    - Dst: cli_recursion_stack_push
      Src: /src/clamav/libclamav/scanners.c:5683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5685,1
    - Dst: cli_magic_scan
      Src: /src/clamav/libclamav/scanners.c:5689,1
    - Dst: cli_recursion_stack_pop
      Src: /src/clamav/libclamav/scanners.c:5691,1
    - Dst: free_duplicate_fmap
      Src: /src/clamav/libclamav/scanners.c:5695,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 7
    argNames:
    - map
    - offset
    - length
    - ctx
    - type
    - name
    - attributes
    argTypes:
    - cl_fmap_t*
    - size_t
    - size_t
    - cli_ctx*
    - cli_file_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 5699
      start: 5649
    functionDepth: 16
    functionLinenumber: 5649
    functionLinenumberEnd: 5699
    functionName: magic_scan_nested_fmap_type
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 12
    functionsReached:
    - cli_magic_scan
    - fmap_duplicate
    - cli_dbgmsg
    - free_duplicate_fmap
    - cli_recursion_stack_push
    - cli_recursion_stack_pop
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t magic_scan_nested_fmap_type(cl_fmap_t *map, size_t offset,
      size_t length, cli_ctx *ctx,\n                                              cli_file_t
      type, const char *name, uint32_t attributes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5707,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5709,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5730,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5734,1
    - Dst: CLI_ISCONTAINED_0_TO
      Src: /src/clamav/libclamav/scanners.c:5737,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5738,1
    - Dst: fmap_need_off_once_len
      Src: /src/clamav/libclamav/scanners.c:5743,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:5745,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/scanners.c:5749,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:5754,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/scanners.c:5755,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:5756,1
    - Dst: cli_magic_scan_desc_type
      Src: /src/clamav/libclamav/scanners.c:5761,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:5765,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/scanners.c:5768,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:5769,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:5773,1
    - Dst: magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/scanners.c:5780,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 7
    argNames:
    - map
    - offset
    - length
    - ctx
    - type
    - name
    - attributes
    argTypes:
    - cl_fmap_t*
    - size_t
    - size_t
    - cli_ctx*
    - cli_file_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 5783
      start: 5702
    functionDepth: 17
    functionLinenumber: 5702
    functionLinenumberEnd: 5783
    functionName: cli_magic_scan_nested_fmap_type
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 12
    functionsReached:
    - close
    - cli_unlink
    - magic_scan_nested_fmap_type
    - cli_dbgmsg
    - CLI_ISCONTAINED_0_TO
    - cli_gentempfd
    - fmap_need_off_once_len
    - free
    - cli_writen
    - cli_errmsg
    - cli_magic_scan_desc_type
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_magic_scan_nested_fmap_type(cl_fmap_t *map, size_t
      offset, size_t length, cli_ctx *ctx,\n                                           cli_file_t
      type, const char *name, uint32_t attributes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_open_memory
      Src: /src/clamav/libclamav/scanners.c:5790,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/scanners.c:5795,1
    - Dst: funmap
      Src: /src/clamav/libclamav/scanners.c:5797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - buffer
    - length
    - ctx
    - name
    - attributes
    argTypes:
    - void*
    - size_t
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 5800
      start: 5785
    functionDepth: 18
    functionLinenumber: 5785
    functionLinenumberEnd: 5800
    functionName: cli_magic_scan_buff
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 5
    functionsReached:
    - fmap_open_memory
    - funmap
    - cli_magic_scan_nested_fmap_type
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_magic_scan_buff(const void *buffer, size_t length, cli_ctx
      *ctx, const char *name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FSTAT
      Src: /src/clamav/libclamav/scanners.c:6162,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:6163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:6168,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:6173,1
    - Dst: struct cl_engine*::cb_virus_found
      Src: /src/clamav/libclamav/scanners.c:6176,1
    - Dst: cli_basename
      Src: /src/clamav/libclamav/scanners.c:6189,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:6189,1
    - Dst: fmap
      Src: /src/clamav/libclamav/scanners.c:6192,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/scanners.c:6193,1
    - Dst: scan_common
      Src: /src/clamav/libclamav/scanners.c:6198,1
    - Dst: funmap
      Src: /src/clamav/libclamav/scanners.c:6202,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:6205,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 7
    argNames:
    - desc
    - filename
    - virname
    - scanned
    - engine
    - scanoptions
    - context
    argTypes:
    - int
    - char*
    - char**
    - unsigned long int*
    - struct cl_engine*
    - struct cl_scan_options*
    - void*
    constantsTouched: []
    func_position:
      end: 6209
      start: 6155
    functionDepth: 3
    functionLinenumber: 6155
    functionLinenumberEnd: 6209
    functionName: cl_scandesc_callback
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 4
    functionsReached:
    - fmap
    - scan_common
    - funmap
    - strlen
    - struct cl_engine*::cb_virus_found
    - FSTAT
    - cli_basename
    - cli_dbgmsg
    - free
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_scandesc_callback(int desc, const char *filename, const
      char **virname, unsigned long int *scanned, const struct cl_engine *engine,
      struct cl_scan_options *scanoptions, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/scanners.c:6214,1
    - Dst: struct cl_engine*::cb_virus_found
      Src: /src/clamav/libclamav/scanners.c:6217,1
    - Dst: fmap_fd
      Src: /src/clamav/libclamav/scanners.c:6217,1
    - Dst: cli_basename
      Src: /src/clamav/libclamav/scanners.c:6229,1
    - Dst: strlen
      Src: /src/clamav/libclamav/scanners.c:6229,1
    - Dst: scan_common
      Src: /src/clamav/libclamav/scanners.c:6232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 7
    argNames:
    - map
    - filename
    - virname
    - scanned
    - engine
    - scanoptions
    - context
    argTypes:
    - cl_fmap_t*
    - char*
    - char**
    - unsigned long int*
    - struct cl_engine*
    - struct cl_scan_options*
    - void*
    constantsTouched: []
    func_position:
      end: 6233
      start: 6211
    functionDepth: 2
    functionLinenumber: 6211
    functionLinenumberEnd: 6233
    functionName: cl_scanmap_callback
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 4
    functionsReached:
    - scan_common
    - strlen
    - struct cl_engine*::cb_virus_found
    - cli_basename
    - cli_dbgmsg
    - fmap_fd
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_scanmap_callback(cl_fmap_t *map, const char *filename,
      const char **virname, unsigned long int *scanned, const struct cl_engine *engine,
      struct cl_scan_options *scanoptions, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: safe_open
      Src: /src/clamav/libclamav/scanners.c:6241,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/scanners.c:6246,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:6250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - filename
    - ctx
    - original_name
    - attributes
    argTypes:
    - char*
    - cli_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 6254
      start: 6235
    functionDepth: 18
    functionLinenumber: 6235
    functionLinenumberEnd: 6254
    functionName: cli_magic_scan_file
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 3
    functionsReached:
    - safe_open
    - close
    - cli_magic_scan_desc
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_magic_scan_file(const char *filename, cli_ctx *ctx,
      const char *original_name, uint32_t attributes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_scanfile_callback
      Src: /src/clamav/libclamav/scanners.c:6258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - filename
    - virname
    - scanned
    - engine
    - scanoptions
    argTypes:
    - char*
    - char**
    - unsigned long int*
    - struct cl_engine*
    - struct cl_scan_options*
    constantsTouched: []
    func_position:
      end: 6259
      start: 6256
    functionDepth: 1
    functionLinenumber: 6256
    functionLinenumberEnd: 6259
    functionName: cl_scanfile
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 2
    functionsReached:
    - cl_scanfile_callback
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_scanfile(const char *filename, const char **virname,
      unsigned long int *scanned, const struct cl_engine *engine, struct cl_scan_options
      *scanoptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: safe_open
      Src: /src/clamav/libclamav/scanners.c:6270,1
    - Dst: free
      Src: /src/clamav/libclamav/scanners.c:6279,1
    - Dst: cl_scandesc_callback
      Src: /src/clamav/libclamav/scanners.c:6281,1
    - Dst: close
      Src: /src/clamav/libclamav/scanners.c:6282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - filename
    - virname
    - scanned
    - engine
    - scanoptions
    - context
    argTypes:
    - char*
    - char**
    - unsigned long int*
    - struct cl_engine*
    - struct cl_scan_options*
    - void*
    constantsTouched: []
    func_position:
      end: 6285
      start: 6261
    functionDepth: 4
    functionLinenumber: 6261
    functionLinenumberEnd: 6285
    functionName: cl_scanfile_callback
    functionSourceFile: /src/clamav/libclamav/scanners.c
    functionUses: 4
    functionsReached:
    - safe_open
    - close
    - free
    - cl_scandesc_callback
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_scanfile_callback(const char *filename, const char **virname,
      unsigned long int *scanned, const struct cl_engine *engine, struct cl_scan_options
      *scanoptions, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - set
    argTypes:
    - icon_groupset*
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: cli_icongroupset_init
    functionSourceFile: /src/clamav/libclamav/pe_icons.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_icongroupset_init(icon_groupset *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hash
    - trees
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: getkey
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int getkey(uint8_t *hash, size_t trees)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/cache.c:89,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/cache.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - cs
    - mempool
    - nodes_per_tree
    argTypes:
    - struct cache_set*
    - mpool_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 107
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 107
    functionName: cacheset_init
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - MPOOL_CALLOC
    linkageType: ''
    returnType: int
    signature: int cacheset_init(struct cache_set *cs, mpool_t *mempool, uint32_t
      nodes_per_tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/cache.c:113,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/cache.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cs
    - mempool
    argTypes:
    - struct cache_set*
    - mpool_t*
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: cacheset_destroy
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - MPOOL_FREE
    linkageType: ''
    returnType: void
    signature: void cacheset_destroy(struct cache_set *cs, mpool_t *mempool)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - a
    - sa
    - b
    - sb
    argTypes:
    - int64_t*
    - ssize_t
    - int64_t*
    - ssize_t
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: cmp
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 319
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp(int64_t *a, ssize_t sa, int64_t *b, ssize_t sb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:148,1
    - Dst: printtree
      Src: /src/clamav/libclamav/cache.c:150,1
    - Dst: cmp
      Src: /src/clamav/libclamav/cache.c:152,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:153,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:154,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:158,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:159,1
    - Dst: cmp
      Src: /src/clamav/libclamav/cache.c:161,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:162,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:163,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:169,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:173,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:179,1
    - Dst: printtree
      Src: /src/clamav/libclamav/cache.c:183,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - cs
    - n
    - d
    argTypes:
    - struct cache_set*
    - struct node*
    - int
    constantsTouched: []
    func_position:
      end: 185
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 185
    functionName: printtree
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 1
    functionsReached:
    - printf
    - ptree
    - cmp
    - printtree
    linkageType: ''
    returnType: int
    signature: int printtree(struct cache_set *cs, struct node *n, int d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:196,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:200,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:203,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:204,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:205,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:207,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:209,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:210,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:212,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:214,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:215,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:217,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:219,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:221,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:223,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:225,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:226,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:228,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:230,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - prefix
    - cs
    - n
    argTypes:
    - char*
    - struct cache_set*
    - struct node*
    constantsTouched: []
    func_position:
      end: 231
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 231
    functionName: printnode
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printnode(const char *prefix, struct cache_set *cs, struct node
      *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:242,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:243,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:248,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:252,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:256,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - prefix
    - cs
    argTypes:
    - char*
    - struct cache_set*
    constantsTouched: []
    func_position:
      end: 262
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 262
    functionName: printchain
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printchain(const char *prefix, struct cache_set *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/clamav/libclamav/cache.c:277,1
    - Dst: cmp
      Src: /src/clamav/libclamav/cache.c:280,1
    - Dst: cmp
      Src: /src/clamav/libclamav/cache.c:295,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 3
    argNames:
    - md5
    - len
    - cs
    argTypes:
    - int64_t*
    - size_t
    - struct cache_set*
    constantsTouched: []
    func_position:
      end: 325
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 325
    functionName: splay
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: int
    signature: int splay(int64_t *md5, size_t len, struct cache_set *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/cache.c:332,1
    - Dst: splay
      Src: /src/clamav/libclamav/cache.c:333,1
    - Dst: printf
      Src: /src/clamav/libclamav/cache.c:336,1
    - Dst: printchain
      Src: /src/clamav/libclamav/cache.c:337,1
    - Dst: printchain
      Src: /src/clamav/libclamav/cache.c:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - cs
    - md5
    - size
    - recursion_level
    argTypes:
    - struct cache_set*
    - unsigned char*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 365
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 365
    functionName: cacheset_lookup
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - memcpy
    - printchain
    - splay
    - printf
    linkageType: ''
    returnType: int
    signature: int cacheset_lookup(struct cache_set *cs, unsigned char *md5, size_t
      size, uint32_t recursion_level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/cache.c:375,1
    - Dst: splay
      Src: /src/clamav/libclamav/cache.c:376,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:382,1
    - Dst: printtree
      Src: /src/clamav/libclamav/cache.c:383,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:421,1
    - Dst: printtree
      Src: /src/clamav/libclamav/cache.c:422,1
    - Dst: cmp
      Src: /src/clamav/libclamav/cache.c:430,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:449,1
    - Dst: printtree
      Src: /src/clamav/libclamav/cache.c:450,1
    - Dst: printnode
      Src: /src/clamav/libclamav/cache.c:453,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 4
    argNames:
    - cs
    - md5
    - size
    - recursion_level
    argTypes:
    - struct cache_set*
    - unsigned char*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 455
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 455
    functionName: cacheset_add
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - printnode
    - ptree
    - splay
    - printtree
    - cmp
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *cacheset_add(struct cache_set *cs, unsigned char *md5, size_t
      size, uint32_t recursion_level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/cache.c:466,1
    - Dst: splay
      Src: /src/clamav/libclamav/cache.c:467,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:468,1
    - Dst: ptree
      Src: /src/clamav/libclamav/cache.c:472,1
    - Dst: printnode
      Src: /src/clamav/libclamav/cache.c:474,1
    - Dst: splay
      Src: /src/clamav/libclamav/cache.c:487,1
    - Dst: printnode
      Src: /src/clamav/libclamav/cache.c:522,1
    - Dst: printnode
      Src: /src/clamav/libclamav/cache.c:523,1
    - Dst: printnode
      Src: /src/clamav/libclamav/cache.c:524,1
    - Dst: printchain
      Src: /src/clamav/libclamav/cache.c:526,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 3
    argNames:
    - cs
    - md5
    - size
    argTypes:
    - struct cache_set*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 527
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 527
    functionName: cacheset_remove
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - printchain
    - printnode
    - ptree
    - splay
    - cli_dbgmsg
    - memcpy
    linkageType: ''
    returnType: void
    signature: void cacheset_remove(struct cache_set *cs, unsigned char *md5, size_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:537,1
    - Dst: getkey
      Src: /src/clamav/libclamav/cache.c:541,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/cache.c:546,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cache.c:547,1
    - Dst: cacheset_lookup
      Src: /src/clamav/libclamav/cache.c:552,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/cache.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - md5
    - len
    - cache
    - recursion_level
    argTypes:
    - unsigned char*
    - size_t
    - struct CACHE*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 559
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 559
    functionName: cache_lookup_hash
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - cacheset_lookup
    - pthread_mutex_unlock
    - cli_dbgmsg
    - pthread_mutex_lock
    - getkey
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int cache_lookup_hash(unsigned char *md5, size_t len, struct CACHE
      *cache, uint32_t recursion_level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cache.c:567,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:572,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:583,1
    - Dst: MPOOL_MALLOC
      Src: /src/clamav/libclamav/cache.c:585,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cache.c:586,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/libclamav/cache.c:595,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cache.c:596,1
    - Dst: cacheset_destroy
      Src: /src/clamav/libclamav/cache.c:597,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/libclamav/cache.c:598,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/cache.c:599,1
    - Dst: cacheset_init
      Src: /src/clamav/libclamav/cache.c:603,1
    - Dst: cacheset_destroy
      Src: /src/clamav/libclamav/cache.c:604,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/libclamav/cache.c:606,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/cache.c:608,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 614
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 614
    functionName: clean_cache_init
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - MPOOL_MALLOC
    - pthread_mutex_destroy
    - MPOOL_FREE
    - pthread_mutex_init
    - cli_dbgmsg
    - cacheset_init
    - cacheset_destroy
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int clean_cache_init(struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cacheset_destroy
      Src: /src/clamav/libclamav/cache.c:629,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/libclamav/cache.c:631,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/cache.c:634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 635
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 635
    functionName: clean_cache_destroy
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - cacheset_destroy
    - MPOOL_FREE
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void clean_cache_destroy(struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:649,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:654,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:661,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:666,1
    - Dst: evidence_num_alerts
      Src: /src/clamav/libclamav/cache.c:670,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:674,1
    - Dst: getkey
      Src: /src/clamav/libclamav/cache.c:680,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/cache.c:684,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cache.c:685,1
    - Dst: cacheset_add
      Src: /src/clamav/libclamav/cache.c:690,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/cache.c:693,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cache.c:696,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:699,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - md5
    - size
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 702
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 702
    functionName: clean_cache_add
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - evidence_num_alerts
    - cli_dbgmsg
    - pthread_mutex_lock
    - getkey
    - cli_errmsg
    - cacheset_add
    linkageType: ''
    returnType: void
    signature: void clean_cache_add(unsigned char *md5, size_t size, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:713,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:718,1
    - Dst: getkey
      Src: /src/clamav/libclamav/cache.c:722,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/cache.c:726,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/cache.c:727,1
    - Dst: cacheset_remove
      Src: /src/clamav/libclamav/cache.c:732,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/cache.c:735,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - md5
    - size
    - engine
    argTypes:
    - unsigned char*
    - size_t
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 739
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 739
    functionName: clean_cache_remove
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - cli_dbgmsg
    - cacheset_remove
    - pthread_mutex_lock
    - getkey
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void clean_cache_remove(unsigned char *md5, size_t size, const struct
      cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:751,1
    - Dst: cache_lookup_hash
      Src: /src/clamav/libclamav/cache.c:755,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/cache.c:756,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - md5
    - size
    - ctx
    argTypes:
    - unsigned char*
    - size_t
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 758
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 758
    functionName: clean_cache_check
    functionSourceFile: /src/clamav/libclamav/cache.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    - cache_lookup_hash
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t clean_cache_check(unsigned char *md5, size_t size, cli_ctx
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/clamav/libclamav/fpu.c:38,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fpu.c:39,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/fpu.c:41,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fpu.c:42,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/fpu.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: get_fpu_endian
    functionSourceFile: /src/clamav/libclamav/fpu.c
    functionUses: 6
    functionsReached:
    - memcmp
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int get_fpu_endian(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_checktimelimit
      Src: /src/clamav/libclamav/json_api.c:34,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - toval
    argTypes:
    - cli_ctx*
    - int*
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: cli_json_timeout_cycle_check
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 8
    functionsReached:
    - cli_checktimelimit
    - cli_dbgmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_json_timeout_cycle_check(cli_ctx *ctx, int *toval)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/json_api.c:54,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/json_api.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - root
    - errstr
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: cli_json_parse_error
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 10
    functionsReached:
    - cli_jsonstr
    - cli_jsonarray
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_json_parse_error(json_object *root, const char *errstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:67,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:70,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:74,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:78,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: cli_jsonnull
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 1
    functionsReached:
    - json_object_object_add
    - json_object_array_add
    - cli_dbgmsg
    - json_object_get_type
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsonnull(json_object *obj, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:91,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:94,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:98,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:106,1
    - Dst: json_object_new_string
      Src: /src/clamav/libclamav/json_api.c:110,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/json_api.c:112,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:117,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - obj
    - key
    - s
    argTypes:
    - json_object*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 122
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 122
    functionName: cli_jsonstr
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 19
    functionsReached:
    - json_object_new_string
    - json_object_object_add
    - json_object_array_add
    - cli_dbgmsg
    - json_object_get_type
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsonstr(json_object *obj, const char *key, const char
      *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:129,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:132,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:136,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:144,1
    - Dst: json_object_new_string_len
      Src: /src/clamav/libclamav/json_api.c:148,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/json_api.c:150,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:155,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - obj
    - key
    - s
    - len
    argTypes:
    - json_object*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 160
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 160
    functionName: cli_jsonstrlen
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 0
    functionsReached:
    - json_object_object_add
    - json_object_array_add
    - cli_dbgmsg
    - json_object_get_type
    - json_object_new_string_len
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsonstrlen(json_object *obj, const char *key, const
      char *s, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:167,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:170,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:174,1
    - Dst: json_object_new_int
      Src: /src/clamav/libclamav/json_api.c:181,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/json_api.c:183,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:188,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:190,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - obj
    - key
    - i
    argTypes:
    - json_object*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: cli_jsonint
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 8
    functionsReached:
    - json_object_object_add
    - json_object_array_add
    - cli_dbgmsg
    - json_object_get_type
    - json_object_new_int
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsonint(json_object *obj, const char *key, int32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:200,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:203,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:207,1
    - Dst: json_object_new_int64
      Src: /src/clamav/libclamav/json_api.c:214,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/json_api.c:216,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:221,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - obj
    - key
    - i
    argTypes:
    - json_object*
    - char*
    - int64_t
    constantsTouched: []
    func_position:
      end: 226
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 226
    functionName: cli_jsonint64
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 2
    functionsReached:
    - json_object_object_add
    - json_object_new_int64
    - json_object_array_add
    - cli_dbgmsg
    - json_object_get_type
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsonint64(json_object *obj, const char *key, int64_t
      i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:233,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:236,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:240,1
    - Dst: json_object_new_boolean
      Src: /src/clamav/libclamav/json_api.c:247,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/json_api.c:249,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:254,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - obj
    - key
    - i
    argTypes:
    - json_object*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 259
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 259
    functionName: cli_jsonbool
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 8
    functionsReached:
    - json_object_object_add
    - json_object_array_add
    - cli_dbgmsg
    - json_object_get_type
    - json_object_new_boolean
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsonbool(json_object *obj, const char *key, int i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:266,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:269,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:273,1
    - Dst: json_object_new_double
      Src: /src/clamav/libclamav/json_api.c:280,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/json_api.c:282,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:287,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - obj
    - key
    - d
    argTypes:
    - json_object*
    - char*
    - double
    constantsTouched: []
    func_position:
      end: 292
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 292
    functionName: cli_jsondouble
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 1
    functionsReached:
    - json_object_new_double
    - json_object_object_add
    - json_object_array_add
    - cli_dbgmsg
    - json_object_get_type
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsondouble(json_object *obj, const char *key, double
      d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/json_api.c:300,1
    - Dst: json_object_is_type
      Src: /src/clamav/libclamav/json_api.c:301,1
    - Dst: json_object_new_array
      Src: /src/clamav/libclamav/json_api.c:304,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:309,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:312,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/json_api.c:313,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:316,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 321
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 321
    functionName: cli_jsonarray
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 15
    functionsReached:
    - json_object_object_add
    - json_object_new_array
    - json_object_object_get_ex
    - json_object_array_add
    - json_object_is_type
    - json_object_get_type
    linkageType: ''
    returnType: json_object
    signature: json_object *cli_jsonarray(json_object *obj, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/json_api.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - val
    argTypes:
    - json_object*
    - int32_t
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: cli_jsonint_array
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 5
    functionsReached:
    - cli_jsonint
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_jsonint_array(json_object *obj, int32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/json_api.c:333,1
    - Dst: json_object_is_type
      Src: /src/clamav/libclamav/json_api.c:334,1
    - Dst: json_object_new_object
      Src: /src/clamav/libclamav/json_api.c:336,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:341,1
    - Dst: json_object_object_add
      Src: /src/clamav/libclamav/json_api.c:344,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/json_api.c:345,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/json_api.c:348,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - json_object*
    - char*
    constantsTouched: []
    func_position:
      end: 353
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 353
    functionName: cli_jsonobj
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 13
    functionsReached:
    - json_object_object_add
    - json_object_array_add
    - json_object_object_get_ex
    - json_object_new_object
    - json_object_is_type
    - json_object_get_type
    linkageType: ''
    returnType: json_object
    signature: json_object *cli_jsonobj(json_object *obj, const char *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:361,1
    - Dst: json_object_get_type
      Src: /src/clamav/libclamav/json_api.c:364,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:368,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/json_api.c:372,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:373,1
    - Dst: json_object_object_del
      Src: /src/clamav/libclamav/json_api.c:377,1
    - Dst: json_object_array_get_idx
      Src: /src/clamav/libclamav/json_api.c:381,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:382,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/json_api.c:387,1
    - Dst: json_object_array_put_idx
      Src: /src/clamav/libclamav/json_api.c:391,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:393,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/json_api.c:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - owner
    - key
    - idx
    argTypes:
    - json_object*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 402
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 402
    functionName: cli_json_delowner
    functionSourceFile: /src/clamav/libclamav/json_api.c
    functionUses: 0
    functionsReached:
    - json_object_array_get_idx
    - cli_jsonobj
    - json_object_object_get_ex
    - cli_dbgmsg
    - json_object_get_type
    - json_object_object_del
    - json_object_array_put_idx
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_json_delowner(json_object *owner, const char *key, int
      idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 5
    argNames:
    - inbuf
    - inbuf_size
    - outbuf
    - outbuf_size
    - bytes_written
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 131
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 131
    functionName: sf_base64decode
    functionSourceFile: /src/clamav/libclamav/sf_base64decode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sf_base64decode(uint8_t *inbuf, size_t inbuf_size, uint8_t *outbuf,
      size_t outbuf_size, size_t *bytes_written)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/unsp.c:154,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unsp.c:157,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/unsp.c:158,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unsp.c:159,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/unsp.c:163,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/unsp.c:164,1
    - Dst: free
      Src: /src/clamav/libclamav/unsp.c:166,1
    - Dst: very_real_unpack
      Src: /src/clamav/libclamav/unsp.c:170,1
    - Dst: free
      Src: /src/clamav/libclamav/unsp.c:171,1
    - Dst: cli_rebuildpe
      Src: /src/clamav/libclamav/unsp.c:178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 7
    argNames:
    - start_of_stuff
    - dest
    - ctx
    - rva
    - base
    - ep
    - file
    argTypes:
    - char*
    - char*
    - cli_ctx*
    - uint32_t
    - uint32_t
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 179
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 179
    functionName: unspack
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - cli_rebuildpe
    - cli_readint32
    - very_real_unpack
    - cli_max_malloc
    - cli_dbgmsg
    - cli_checklimits
    - free
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t unspack(const char *start_of_stuff, char *dest, cli_ctx *ctx,
      uint32_t rva, uint32_t base, uint32_t ep, int file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_byte
      Src: /src/clamav/libclamav/unsp.c:216,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:229,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/unsp.c:249,1
    - Dst: get_100_bits_from_tablesize
      Src: /src/clamav/libclamav/unsp.c:251,1
    - Dst: get_100_bits_from_table
      Src: /src/clamav/libclamav/unsp.c:254,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/unsp.c:258,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:268,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:269,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:273,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/unsp.c:277,1
    - Dst: get_n_bits_from_tablesize
      Src: /src/clamav/libclamav/unsp.c:286,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:292,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:295,1
    - Dst: get_n_bits_from_tablesize
      Src: /src/clamav/libclamav/unsp.c:309,1
    - Dst: get_n_bits_from_tablesize
      Src: /src/clamav/libclamav/unsp.c:323,1
    - Dst: get_n_bits_from_table
      Src: /src/clamav/libclamav/unsp.c:327,1
    - Dst: get_bb
      Src: /src/clamav/libclamav/unsp.c:339,1
    - Dst: get_bitmap
      Src: /src/clamav/libclamav/unsp.c:342,1
    - Dst: get_bb
      Src: /src/clamav/libclamav/unsp.c:345,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/unsp.c:362,1
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/unsp.c:363,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/unsp.c:364,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 139
    argCount: 9
    argNames:
    - table
    - tablesz
    - tre
    - allocsz
    - firstbyte
    - src
    - ssize
    - dst
    - dsize
    argTypes:
    - uint16_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - char*
    - uint32_t
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 379
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 379
    functionName: very_real_unpack
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - get_n_bits_from_tablesize
    - get_bb
    - get_100_bits_from_table
    - get_100_bits_from_tablesize
    - CLI_ISCONTAINED
    - getbit_from_table
    - cli_dbgmsg
    - get_n_bits_from_table
    - get_bitmap
    - get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t very_real_unpack(uint16_t *table, uint32_t tablesz, uint32_t
      tre, uint32_t allocsz, uint32_t firstbyte, const char *src, uint32_t ssize,
      char *dst, uint32_t dsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - read_struct
    argTypes:
    - struct UNSP*
    constantsTouched: []
    func_position:
      end: 393
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 393
    functionName: get_byte
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_byte(struct UNSP *read_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_ISCONTAINED
      Src: /src/clamav/libclamav/unsp.c:399,1
    - Dst: CLI_SRS
      Src: /src/clamav/libclamav/unsp.c:410,1
    - Dst: get_byte
      Src: /src/clamav/libclamav/unsp.c:414,1
    - Dst: get_byte
      Src: /src/clamav/libclamav/unsp.c:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - intable
    - read_struct
    argTypes:
    - uint16_t*
    - struct UNSP*
    constantsTouched: []
    func_position:
      end: 433
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 433
    functionName: getbit_from_table
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - CLI_ISCONTAINED
    - CLI_SRS
    - get_byte
    linkageType: ''
    returnType: int
    signature: int getbit_from_table(uint16_t *intable, struct UNSP *read_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:448,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - intable
    - read_struct
    - ssize
    argTypes:
    - uint16_t*
    - struct UNSP*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 457
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 457
    functionName: get_100_bits_from_tablesize
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - getbit_from_table
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_100_bits_from_tablesize(uint16_t *intable, struct UNSP
      *read_struct, uint32_t ssize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - intable
    - read_struct
    argTypes:
    - uint16_t*
    - struct UNSP*
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: get_100_bits_from_table
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - getbit_from_table
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_100_bits_from_table(uint16_t *intable, struct UNSP *read_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - intable
    - bits
    - read_struct
    argTypes:
    - uint16_t*
    - uint32_t
    - struct UNSP*
    constantsTouched: []
    func_position:
      end: 480
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 480
    functionName: get_n_bits_from_table
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - getbit_from_table
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_n_bits_from_table(uint16_t *intable, uint32_t bits, struct
      UNSP *read_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:485,1
    - Dst: get_n_bits_from_table
      Src: /src/clamav/libclamav/unsp.c:486,1
    - Dst: getbit_from_table
      Src: /src/clamav/libclamav/unsp.c:488,1
    - Dst: get_n_bits_from_table
      Src: /src/clamav/libclamav/unsp.c:489,1
    - Dst: get_n_bits_from_table
      Src: /src/clamav/libclamav/unsp.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - intable
    - read_struct
    - backsize
    argTypes:
    - uint16_t*
    - struct UNSP*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: get_n_bits_from_tablesize
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - getbit_from_table
    - get_n_bits_from_table
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_n_bits_from_tablesize(uint16_t *intable, struct UNSP *read_struct,
      uint32_t backsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - intable
    - back
    - read_struct
    argTypes:
    - uint16_t*
    - uint32_t
    - struct UNSP*
    constantsTouched: []
    func_position:
      end: 509
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 509
    functionName: get_bb
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_bb(uint16_t *intable, uint32_t back, struct UNSP *read_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_byte
      Src: /src/clamav/libclamav/unsp.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - read_struct
    - bits
    argTypes:
    - struct UNSP*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 530
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 530
    functionName: get_bitmap
    functionSourceFile: /src/clamav/libclamav/unsp.c
    functionUses: 1
    functionsReached:
    - get_byte
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_bitmap(struct UNSP *read_struct, uint32_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/hwp.c:90,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:91,1
    - Dst: memset
      Src: /src/clamav/libclamav/hwp.c:96,1
    - Dst: inflateInit2
      Src: /src/clamav/libclamav/hwp.c:105,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:107,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:117,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:119,1
    - Dst: inflate
      Src: /src/clamav/libclamav/hwp.c:134,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/hwp.c:137,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/hwp.c:140,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:141,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:151,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/hwp.c:156,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/hwp.c:161,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/hwp.c:167,1
    - Dst: cb
      Src: /src/clamav/libclamav/hwp.c:170,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hwp.c:173,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/hwp.c:178,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:180,1
    - Dst: close
      Src: /src/clamav/libclamav/hwp.c:184,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/hwp.c:186,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:188,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 91
    argCount: 7
    argNames:
    - ctx
    - input
    - at
    - len
    - parent
    - cb
    - cbdata
    argTypes:
    - cli_ctx*
    - fmap_t*
    - size_t
    - size_t
    - char*
    - hwp_cb
    - void*
    constantsTouched: []
    func_position:
      end: 190
      start: 72
    functionDepth: 18
    functionLinenumber: 72
    functionLinenumberEnd: 190
    functionName: decompress_and_callback
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - cli_magic_scan_desc
    - memset
    - close
    - cli_unlink
    - cli_infomsg
    - fmap_readn
    - cli_dbgmsg
    - cli_gentempfd
    - cli_checklimits
    - inflate
    - inflateInit2
    - inflateEnd
    - cli_writen
    - cb
    - cli_errmsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t decompress_and_callback(cli_ctx *ctx, fmap_t *input, size_t
      at, size_t len, const char *parent, hwp_cb cb, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/hwp.c:204,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:206,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hwp.c:210,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/hwp.c:211,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:213,1
    - Dst: iconv_open
      Src: /src/clamav/libclamav/hwp.c:219,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/hwp.c:222,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:223,1
    - Dst: iconv
      Src: /src/clamav/libclamav/hwp.c:227,1
    - Dst: iconv_close
      Src: /src/clamav/libclamav/hwp.c:228,1
    - Dst: strdup
      Src: /src/clamav/libclamav/hwp.c:236,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:237,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:244,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:246,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/hwp.c:252,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hwp.c:254,1
    - Dst: cl_base64_encode
      Src: /src/clamav/libclamav/hwp.c:256,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:262,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:264,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 4
    argNames:
    - begin
    - sz
    - parent
    - ret
    argTypes:
    - char*
    - size_t
    - char*
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 271
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 271
    functionName: convert_hstr_to_utf8
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - cl_base64_encode
    - cli_strerror
    - strdup
    - iconv
    - memcpy
    - iconv_close
    - cli_max_calloc
    - iconv_open
    - cli_errmsg
    - free
    linkageType: ''
    returnType: char
    signature: char *convert_hstr_to_utf8(const char *begin, size_t sz, const char
      *parent, cl_error_t *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:281,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:282,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/hwp.c:287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:289,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/hwp.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 293
      start: 274
    functionDepth: 18
    functionLinenumber: 274
    functionLinenumberEnd: 293
    functionName: cli_scanhwpole2
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - cli_magic_scan_nested_fmap_type
    - fmap_readn
    - cli_dbgmsg
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanhwpole2(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/hwp.c:305,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:307,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:312,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:315,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/hwp.c:317,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:319,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:324,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:327,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:330,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:333,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:336,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:339,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:342,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:345,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:348,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:351,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:354,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:357,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - ctx
    - hwp5
    argTypes:
    - cli_ctx*
    - hwp5_header_t*
    constantsTouched: []
    func_position:
      end: 362
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 362
    functionName: cli_hwp5header
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - cli_jsonstr
    - cli_jsonobj
    - cli_jsonint
    - cli_errmsg
    - cli_jsonarray
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_hwp5header(cli_ctx *ctx, hwp5_header_t *hwp5)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hwp.c:366,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hwp.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - cbdata
    - fd
    - filepath
    - ctx
    argTypes:
    - void*
    - int
    - char*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 18
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: hwp5_cb
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_magic_scan_desc
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hwp5_cb(void *cbdata, int fd, const char *filepath, cli_ctx
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hwp5_debug
      Src: /src/clamav/libclamav/hwp.c:376,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:379,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hwp.c:385,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hwp.c:385,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hwp.c:386,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hwp.c:386,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hwp.c:387,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hwp.c:387,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:390,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hwp.c:391,1
    - Dst: hwp5_debug
      Src: /src/clamav/libclamav/hwp.c:400,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/hwp.c:403,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:404,1
    - Dst: fmap
      Src: /src/clamav/libclamav/hwp.c:408,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:410,1
    - Dst: decompress_and_callback
      Src: /src/clamav/libclamav/hwp.c:413,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:414,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/hwp.c:421,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:422,1
    - Dst: cli_ole2_summary_json
      Src: /src/clamav/libclamav/hwp.c:424,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hwp.c:431,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 5
    argNames:
    - ctx
    - hwp5
    - name
    - fd
    - filepath
    argTypes:
    - cli_ctx*
    - hwp5_header_t*
    - char*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 432
      start: 374
    functionDepth: 19
    functionLinenumber: 374
    functionLinenumberEnd: 432
    functionName: cli_scanhwp5_stream
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - fmap
    - cli_magic_scan_desc
    - funmap
    - hwp5_debug
    - FSTAT
    - cli_dbgmsg
    - decompress_and_callback
    - cli_ole2_summary_json
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanhwp5_stream(cli_ctx *ctx, hwp5_header_t *hwp5, char
      *name, int fd, const char *filepath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/hwp.c:507,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:508,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hwp.c:512,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hwp.c:513,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hwp.c:514,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hwp.c:515,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/hwp.c:516,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:518,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:519,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:520,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:521,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:523,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:524,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:525,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:526,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:527,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/hwp.c:533,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:535,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/hwp.c:539,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:541,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:546,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:549,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:552,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:555,1
    - Dst: convert_hstr_to_utf8
      Src: /src/clamav/libclamav/hwp.c:559,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/hwp.c:564,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:566,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:567,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:568,1
    - Dst: convert_hstr_to_utf8
      Src: /src/clamav/libclamav/hwp.c:571,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/hwp.c:576,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:578,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:579,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:580,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 3
    argNames:
    - ctx
    - offset
    - docinfo
    argTypes:
    - cli_ctx*
    - size_t
    - struct hwp3_docinfo*
    constantsTouched: []
    func_position:
      end: 584
      start: 501
    functionDepth: 4
    functionLinenumber: 501
    functionLinenumberEnd: 584
    functionName: parsehwp3_docinfo
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - cli_jsonstr
    - free
    - fmap_need_off_once
    - le16_to_host
    - cli_jsonobj
    - cli_jsonbool
    - hwp3_debug
    - memcpy
    - convert_hstr_to_utf8
    - cli_errmsg
    - cli_jsonarray
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parsehwp3_docinfo(cli_ctx *ctx, size_t offset, struct hwp3_docinfo
      *docinfo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/hwp.c:598,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:599,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/hwp.c:603,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:605,1
    - Dst: convert_hstr_to_utf8
      Src: /src/clamav/libclamav/hwp.c:610,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/hwp.c:617,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:619,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:620,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/hwp.c:623,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/hwp.c:624,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:625,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:628,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:629,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:630,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - size_t
    constantsTouched: []
    func_position:
      end: 636
      start: 586
    functionDepth: 4
    functionLinenumber: 586
    functionLinenumberEnd: 636
    functionName: parsehwp3_docsummary
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cli_jsonstr
    - cli_errmsg
    - fmap_need_off_once
    - cli_jsonobj
    - cli_jsonbool
    - hwp3_debug
    - free
    - cli_max_calloc
    - convert_hstr_to_utf8
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parsehwp3_docsummary(cli_ctx *ctx, size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:683,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:684,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:689,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:692,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:695,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:697,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:700,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:702,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:705,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:706,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:707,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:708,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:711,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:714,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:717,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:720,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:723,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:724,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:725,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:726,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:731,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:732,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:746,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:747,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:750,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:753,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:756,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:759,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:760,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:761,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:762,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:764,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:765,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:766,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:767,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:774,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:786,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:793,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:796,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:799,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:802,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:804,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:805,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:814,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:815,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:820,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:822,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:826,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:832,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:835,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:839,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:852,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:862,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:864,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:867,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:870,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:876,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:885,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:895,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:897,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:900,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:903,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:915,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:928,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:931,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:934,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:937,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:946,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:956,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:963,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:975,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:982,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:993,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1004,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1008,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1010,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1018,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:1021,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1023,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1025,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1027,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1029,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1031,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1035,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:1038,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1041,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1044,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1048,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1054,1
    - Dst: parsehwp3_paragraph
      Src: /src/clamav/libclamav/hwp.c:1057,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1063,1
    - Dst: parsehwp3_paragraph
      Src: /src/clamav/libclamav/hwp.c:1065,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1073,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1077,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1079,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1086,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1089,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:1091,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1094,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1100,1
    - Dst: parsehwp3_paragraph
      Src: /src/clamav/libclamav/hwp.c:1102,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1108,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1115,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1119,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1121,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1129,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1140,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1145,1
    - Dst: parsehwp3_paragraph
      Src: /src/clamav/libclamav/hwp.c:1147,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1158,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1171,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1174,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1178,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1180,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1182,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1187,1
    - Dst: parsehwp3_paragraph
      Src: /src/clamav/libclamav/hwp.c:1189,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1196,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1210,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1215,1
    - Dst: parsehwp3_paragraph
      Src: /src/clamav/libclamav/hwp.c:1217,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1228,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1239,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1242,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1246,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1248,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1250,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1252,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1254,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1256,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1258,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1265,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1276,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1282,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1293,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1300,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1311,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1318,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1328,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1335,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1345,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1352,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1362,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1369,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1379,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1386,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1398,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1405,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1420,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1429,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1439,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1441,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:1444,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1447,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1455,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1464,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1471,1
    - Dst: HWP3_PSPECIAL_VERIFY
      Src: /src/clamav/libclamav/hwp.c:1480,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1486,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1487,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1495,1
    CyclomaticComplexity: 117
    EdgeCount: 117
    ICount: 411
    argCount: 6
    argNames:
    - ctx
    - map
    - p
    - level
    - roffset
    - last
    argTypes:
    - cli_ctx*
    - fmap_t*
    - int
    - uint32_t
    - size_t*
    - int*
    constantsTouched: []
    func_position:
      end: 1499
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 1499
    functionName: parsehwp3_paragraph
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 1
    functionsReached:
    - le32_to_host
    - HWP3_PSPECIAL_VERIFY
    - le16_to_host
    - fmap_readn
    - hwp3_debug
    - parsehwp3_paragraph
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parsehwp3_paragraph(cli_ctx *ctx, fmap_t *map, int p, uint32_t
      level, size_t *roffset, int *last)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1514,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/hwp.c:1517,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1519,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/hwp.c:1523,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1525,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/hwp.c:1529,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1530,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1533,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1537,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1538,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:1542,1
    - Dst: cli_jsonobj
      Src: /src/clamav/libclamav/hwp.c:1545,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1547,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1551,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1554,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1558,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1561,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1566,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1567,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/hwp.c:1571,1
    - Dst: cli_jsonint64
      Src: /src/clamav/libclamav/hwp.c:1574,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1575,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1578,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1582,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1590,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1593,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1598,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1602,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1605,1
    - Dst: memset
      Src: /src/clamav/libclamav/hwp.c:1608,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1609,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1610,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1613,1
    - Dst: memset
      Src: /src/clamav/libclamav/hwp.c:1615,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1616,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1617,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1620,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/hwp.c:1624,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1628,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1631,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/hwp.c:1634,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1638,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1640,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1645,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1648,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1649,1
    - Dst: memset
      Src: /src/clamav/libclamav/hwp.c:1654,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1655,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1656,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1659,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/hwp.c:1662,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1667,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1670,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1676,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1679,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1683,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1686,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1687,1
    - Dst: memset
      Src: /src/clamav/libclamav/hwp.c:1691,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1692,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1693,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1696,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/hwp.c:1700,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1704,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1707,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1712,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/hwp.c:1715,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/hwp.c:1720,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/hwp.c:1722,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 158
    argCount: 4
    argNames:
    - ctx
    - dmap
    - offset
    - last
    argTypes:
    - cli_ctx*
    - fmap_t*
    - size_t*
    - int*
    constantsTouched: []
    func_position:
      end: 1728
      start: 1501
    functionDepth: 18
    functionLinenumber: 1501
    functionLinenumberEnd: 1728
    functionName: parsehwp3_infoblk_1
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - le32_to_host
    - memset
    - cli_jsonstr
    - cli_warnmsg
    - cli_jsonobj
    - cli_jsonint
    - json_object_object_get_ex
    - fmap_readn
    - cli_magic_scan_nested_fmap_type
    - hwp3_debug
    - cli_jsonint64
    - cli_errmsg
    - cli_jsonarray
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t parsehwp3_infoblk_1(cli_ctx *ctx, fmap_t *dmap, size_t *offset,
      int *last)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hwp.c:1739,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1745,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/hwp.c:1750,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1751,1
    - Dst: fmap
      Src: /src/clamav/libclamav/hwp.c:1755,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1757,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1762,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/hwp.c:1770,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1775,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:1777,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:1780,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1783,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1785,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1788,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:1790,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/hwp.c:1797,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:1799,1
    - Dst: le16_to_host
      Src: /src/clamav/libclamav/hwp.c:1802,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1805,1
    - Dst: hwp3_debug
      Src: /src/clamav/libclamav/hwp.c:1807,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1810,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:1812,1
    - Dst: parsehwp3_paragraph
      Src: /src/clamav/libclamav/hwp.c:1820,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:1824,1
    - Dst: cli_jsonint
      Src: /src/clamav/libclamav/hwp.c:1829,1
    - Dst: parsehwp3_infoblk_1
      Src: /src/clamav/libclamav/hwp.c:1833,1
    - Dst: cli_magic_scan_nested_fmap_type
      Src: /src/clamav/libclamav/hwp.c:1839,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:1843,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 4
    argNames:
    - cbdata
    - fd
    - filepath
    - ctx
    argTypes:
    - void*
    - int
    - char*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1845
      start: 1730
    functionDepth: 19
    functionLinenumber: 1730
    functionLinenumberEnd: 1845
    functionName: hwp3_cb
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - fmap
    - funmap
    - UNUSEDPARAM
    - parsehwp3_infoblk_1
    - le16_to_host
    - FSTAT
    - fmap_readn
    - cli_jsonint
    - cli_magic_scan_nested_fmap_type
    - hwp3_debug
    - parsehwp3_paragraph
    - cli_errmsg
    - cli_jsonarray
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hwp3_cb(void *cbdata, int fd, const char *filepath, cli_ctx
      *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parsehwp3_docinfo
      Src: /src/clamav/libclamav/hwp.c:1861,1
    - Dst: parsehwp3_docsummary
      Src: /src/clamav/libclamav/hwp.c:1866,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:1873,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1881,1
    - Dst: decompress_and_callback
      Src: /src/clamav/libclamav/hwp.c:1888,1
    - Dst: hwp3_cb
      Src: /src/clamav/libclamav/hwp.c:1890,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1898
      start: 1847
    functionDepth: 20
    functionLinenumber: 1847
    functionLinenumberEnd: 1898
    functionName: cli_scanhwp3
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 1
    functionsReached:
    - parsehwp3_docsummary
    - parsehwp3_docinfo
    - hwp3_cb
    - cli_dbgmsg
    - decompress_and_callback
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanhwp3(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hwp.c:1939,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hwp.c:1944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - cbdata
    - fd
    - filepath
    - ctx
    argTypes:
    - void*
    - int
    - char*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1945
      start: 1937
    functionDepth: 18
    functionLinenumber: 1937
    functionLinenumberEnd: 1945
    functionName: hwpml_scan_cb
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - cli_magic_scan_desc
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hwpml_scan_cb(void *cbdata, int fd, const char *filepath,
      cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/hwp.c:1954,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/hwp.c:1958,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/hwp.c:1959,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/hwp.c:1961,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/hwp.c:1967,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/hwp.c:1968,1
    - Dst: hwpml_debug
      Src: /src/clamav/libclamav/hwp.c:1975,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1979,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hwp.c:1980,1
    - Dst: hwpml_debug
      Src: /src/clamav/libclamav/hwp.c:1988,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/hwp.c:1991,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1992,1
    - Dst: fmap
      Src: /src/clamav/libclamav/hwp.c:1996,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:1997,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/hwp.c:2002,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:2003,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:2004,1
    - Dst: cl_base64_decode
      Src: /src/clamav/libclamav/hwp.c:2008,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:2009,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:2011,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/hwp.c:2012,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/hwp.c:2016,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/hwp.c:2017,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/hwp.c:2021,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:2022,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:2026,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:2031,1
    - Dst: hwpml_debug
      Src: /src/clamav/libclamav/hwp.c:2039,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/hwp.c:2042,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:2043,1
    - Dst: fmap
      Src: /src/clamav/libclamav/hwp.c:2048,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/hwp.c:2050,1
    - Dst: decompress_and_callback
      Src: /src/clamav/libclamav/hwp.c:2054,1
    - Dst: funmap
      Src: /src/clamav/libclamav/hwp.c:2055,1
    - Dst: hwpml_scan_cb
      Src: /src/clamav/libclamav/hwp.c:2058,1
    - Dst: hwpml_scan_cb
      Src: /src/clamav/libclamav/hwp.c:2060,1
    - Dst: close
      Src: /src/clamav/libclamav/hwp.c:2067,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/hwp.c:2069,1
    - Dst: free
      Src: /src/clamav/libclamav/hwp.c:2070,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 89
    argCount: 6
    argNames:
    - fd
    - filepath
    - ctx
    - num_attribs
    - attribs
    - cbdata
    argTypes:
    - int
    - char*
    - cli_ctx*
    - int
    - struct attrib_entry*
    - void*
    constantsTouched: []
    func_position:
      end: 2073
      start: 1947
    functionDepth: 19
    functionLinenumber: 1947
    functionLinenumberEnd: 2073
    functionName: hwpml_binary_cb
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 0
    functionsReached:
    - fmap
    - cli_magic_scan_desc
    - cli_warnmsg
    - cl_base64_decode
    - decompress_and_callback
    - funmap
    - strcmp
    - fmap_need_off_once
    - cli_dbgmsg
    - cli_writen
    - close
    - cli_unlink
    - FSTAT
    - hwpml_debug
    - cli_gentempfd
    - hwpml_scan_cb
    - free
    - UNUSEDPARAM
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t hwpml_binary_cb(int fd, const char *filepath, cli_ctx *ctx,
      int num_attribs, struct attrib_entry *attribs, void *cbdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:2083,1
    - Dst: memset
      Src: /src/clamav/libclamav/hwp.c:2088,1
    - Dst: xmlReaderForIO
      Src: /src/clamav/libclamav/hwp.c:2091,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/hwp.c:2093,1
    - Dst: cli_json_parse_error
      Src: /src/clamav/libclamav/hwp.c:2095,1
    - Dst: memset
      Src: /src/clamav/libclamav/hwp.c:2100,1
    - Dst: cli_msxml_parse_document
      Src: /src/clamav/libclamav/hwp.c:2102,1
    - Dst: xmlTextReaderClose
      Src: /src/clamav/libclamav/hwp.c:2104,1
    - Dst: xmlFreeTextReader
      Src: /src/clamav/libclamav/hwp.c:2105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 2108
      start: 2075
    functionDepth: 4
    functionLinenumber: 2075
    functionLinenumberEnd: 2108
    functionName: cli_scanhwpml
    functionSourceFile: /src/clamav/libclamav/hwp.c
    functionUses: 2
    functionsReached:
    - memset
    - xmlReaderForIO
    - xmlTextReaderClose
    - cli_dbgmsg
    - xmlFreeTextReader
    - cli_msxml_parse_document
    - cli_json_parse_error
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_scanhwpml(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - k
    - v
    - elements
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 77
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 77
    functionName: bs
    functionSourceFile: /src/clamav/libclamav/explode.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bs(uint8_t *k, uint8_t *v, unsigned int elements)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bs
      Src: /src/clamav/libclamav/explode.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - X
    - tree
    - expected
    argTypes:
    - struct xplstate*
    - uint32_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 119
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 119
    functionName: unpack_tree
    functionSourceFile: /src/clamav/libclamav/explode.c
    functionUses: 0
    functionsReached:
    - bs
    linkageType: ''
    returnType: int
    signature: int unpack_tree(struct xplstate *X, uint32_t *tree, unsigned int expected)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - tree
    - size
    - code
    - len
    argTypes:
    - uint32_t*
    - unsigned int
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: lookup_tree
    functionSourceFile: /src/clamav/libclamav/explode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lookup_tree(uint32_t *tree, unsigned int size, uint16_t code, uint8_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - X
    - flags
    argTypes:
    - struct xplstate*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: explode_init
    functionSourceFile: /src/clamav/libclamav/explode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int explode_init(struct xplstate *X, uint16_t flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - ole2_list_t*
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: ole2_list_init
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ole2_list_init(ole2_list_t *list)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - ole2_list_t*
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ole2_list_is_empty
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ole2_list_is_empty(ole2_list_t *list)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - ole2_list_t*
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: ole2_list_size
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ole2_list_size(ole2_list_t *list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:219,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - list
    - val
    argTypes:
    - ole2_list_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: ole2_list_push
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - CLI_MALLOC_OR_GOTO_DONE
    - cli_dbgmsg
    linkageType: ''
    returnType: int
    signature: int ole2_list_push(ole2_list_t *list, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ole2_list_is_empty
      Src: /src/clamav/libclamav/ole2_extract.c:239,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:240,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - list
    argTypes:
    - ole2_list_t*
    constantsTouched: []
    func_position:
      end: 251
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 251
    functionName: ole2_list_pop
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - ole2_list_is_empty
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ole2_list_pop(ole2_list_t *list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ole2_list_is_empty
      Src: /src/clamav/libclamav/ole2_extract.c:255,1
    - Dst: ole2_list_pop
      Src: /src/clamav/libclamav/ole2_extract.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - ole2_list_t*
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: ole2_list_delete
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - ole2_list_is_empty
    - ole2_list_pop
    linkageType: ''
    returnType: int
    signature: int ole2_list_delete(ole2_list_t *list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:289,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:290,1
    - Dst: isprint
      Src: /src/clamav/libclamav/ole2_extract.c:296,1
    - Dst: tolower
      Src: /src/clamav/libclamav/ole2_extract.c:299,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:319,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:320,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - name
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 326
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 326
    functionName: cli_ole2_get_property_name2
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 1
    functionsReached:
    - tolower
    - strlen
    - isprint
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - cli_errmsg
    - free
    linkageType: ''
    returnType: char
    signature: char *cli_ole2_get_property_name2(const char *name, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:341,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:342,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:350,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - name
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 364
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 364
    functionName: get_property_name
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - CLI_FREE_AND_SET_NULL
    - cli_ole2_get_property_name2
    - cli_errmsg
    linkageType: ''
    returnType: char
    signature: 'char *

      get_property_name(char *name, int size)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:372,1
    - Dst: get_property_name
      Src: /src/clamav/libclamav/ole2_extract.c:375,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/ole2_extract.c:376,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:379,1
    - Dst: strncat
      Src: /src/clamav/libclamav/ole2_extract.c:382,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:382,1
    - Dst: strncat
      Src: /src/clamav/libclamav/ole2_extract.c:385,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:385,1
    - Dst: strncat
      Src: /src/clamav/libclamav/ole2_extract.c:388,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:388,1
    - Dst: strncat
      Src: /src/clamav/libclamav/ole2_extract.c:391,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:391,1
    - Dst: strncat
      Src: /src/clamav/libclamav/ole2_extract.c:396,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:396,1
    - Dst: strncat
      Src: /src/clamav/libclamav/ole2_extract.c:399,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:399,1
    - Dst: strncat
      Src: /src/clamav/libclamav/ole2_extract.c:402,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:402,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - property
    argTypes:
    - property_t*
    constantsTouched: []
    func_position:
      end: 406
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 406
    functionName: print_ole2_property
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - get_property_name
    - snprintf
    - strlen
    - strncat
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: void
    signature: void print_ole2_property(property_t *property)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:414,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:415,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:419,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:425,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:426,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:427,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:428,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:429,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:430,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:431,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:432,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:433,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:434,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:435,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:436,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - ole2_header_t*
    constantsTouched: []
    func_position:
      end: 439
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 439
    functionName: print_ole2_header
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    linkageType: ''
    returnType: void
    signature: void print_ole2_header(ole2_header_t *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/clamav/libclamav/ole2_extract.c:450,1
    - Dst: MAX
      Src: /src/clamav/libclamav/ole2_extract.c:452,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:463,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/ole2_extract.c:466,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - hdr
    - buff
    - size
    - blockno
    argTypes:
    - ole2_header_t*
    - void*
    - size_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 471
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 471
    functionName: ole2_read_block
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - MAX
    - fmap_need_off_once
    linkageType: ''
    returnType: bool
    signature: bool ole2_read_block(ole2_header_t *hdr, void *buff, size_t size, int32_t
      blockno)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:484,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:487,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:488,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - hdr
    - current_block
    argTypes:
    - ole2_header_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 492
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 492
    functionName: ole2_get_next_bat_block
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - ole2_read_block
    - ole2_endian_convert_32
    linkageType: ''
    returnType: int32_t
    signature: int32_t ole2_get_next_bat_block(ole2_header_t *hdr, int32_t current_block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:514,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:519,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:520,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:526,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:526,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - hdr
    - current_block
    argTypes:
    - ole2_header_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 530
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 530
    functionName: ole2_get_next_xbat_block
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - ole2_read_block
    - ole2_endian_convert_32
    linkageType: ''
    returnType: int32_t
    signature: int32_t ole2_get_next_xbat_block(ole2_header_t *hdr, int32_t current_block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ole2_get_next_xbat_block
      Src: /src/clamav/libclamav/ole2_extract.c:539,1
    - Dst: ole2_get_next_bat_block
      Src: /src/clamav/libclamav/ole2_extract.c:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - hdr
    - current_block
    argTypes:
    - ole2_header_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 543
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 543
    functionName: ole2_get_next_block_number
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - ole2_get_next_bat_block
    - ole2_get_next_xbat_block
    linkageType: ''
    returnType: int32_t
    signature: int32_t ole2_get_next_block_number(ole2_header_t *hdr, int32_t current_block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ole2_get_next_block_number
      Src: /src/clamav/libclamav/ole2_extract.c:557,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:560,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - hdr
    - current_block
    argTypes:
    - ole2_header_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 564
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 564
    functionName: ole2_get_next_sbat_block
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - ole2_get_next_block_number
    - ole2_read_block
    - ole2_endian_convert_32
    linkageType: ''
    returnType: int32_t
    signature: int32_t ole2_get_next_sbat_block(ole2_header_t *hdr, int32_t current_block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:575,1
    - Dst: ole2_get_next_block_number
      Src: /src/clamav/libclamav/ole2_extract.c:581,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - hdr
    - buff
    - sbat_index
    argTypes:
    - ole2_header_t*
    - void*
    - int32_t
    constantsTouched: []
    func_position:
      end: 591
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 591
    functionName: ole2_get_sbat_data_block
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - ole2_get_next_block_number
    - cli_dbgmsg
    - ole2_read_block
    linkageType: ''
    returnType: bool
    signature: bool ole2_get_sbat_data_block(ole2_header_t *hdr, void *buff, int32_t
      sbat_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:632,1
    - Dst: strcasecmp
      Src: /src/clamav/libclamav/ole2_extract.c:638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - name
    - name_size
    - keyword
    argTypes:
    - char*
    - uint32_t
    - char*
    constantsTouched: []
    func_position:
      end: 639
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 639
    functionName: ole2_cmp_name
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - memset
    linkageType: ''
    returnType: int
    signature: int ole2_cmp_name(const char *const name, uint32_t name_size, const
      char *const keyword)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:643,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:644,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:645,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:646,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:647,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:648,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:651,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:653,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:654,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:655,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:656,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:657,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - pFib
    - ptr
    argTypes:
    - fib_base_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: copy_fib_base
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ole2_endian_convert_32
    - ole2_endian_convert_16
    linkageType: ''
    returnType: void
    signature: void copy_fib_base(fib_base_t *pFib, const uint8_t *const ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFib
    argTypes:
    - fib_base_t*
    constantsTouched: []
    func_position:
      end: 664
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 664
    functionName: is_encrypted
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_encrypted(const fib_base_t *const pFib)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFib
    argTypes:
    - fib_base_t*
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: is_obfuscated
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_obfuscated(const fib_base_t *const pFib)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hdr
    - word_block
    - sector
    argTypes:
    - ole2_header_t*
    - property_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 723
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 723
    functionName: get_stream_data_offset
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_stream_data_offset(ole2_header_t *hdr, const property_t
      *word_block, uint16_t sector)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:738,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/ole2_extract.c:742,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:744,1
    - Dst: copy_fib_base
      Src: /src/clamav/libclamav/ole2_extract.c:747,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:752,1
    - Dst: is_encrypted
      Src: /src/clamav/libclamav/ole2_extract.c:760,1
    - Dst: is_obfuscated
      Src: /src/clamav/libclamav/ole2_extract.c:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - word_block
    - hdr
    - pEncryptionStatus
    argTypes:
    - property_t*
    - ole2_header_t*
    - encryption_status_t*
    constantsTouched: []
    func_position:
      end: 765
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 765
    functionName: test_for_encryption
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - is_obfuscated
    - fmap_need_off_once
    - is_encrypted
    - cli_dbgmsg
    - copy_fib_base
    linkageType: ''
    returnType: void
    signature: void test_for_encryption(const property_t *word_block, ole2_header_t
      *hdr, encryption_status_t *pEncryptionStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:773,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ptr
    - ptr_size
    - idx
    - dst
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 777
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 777
    functionName: read_uint16
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 7
    functionsReached:
    - memcpy
    - ole2_endian_convert_16
    linkageType: ''
    returnType: size_t
    signature: size_t read_uint16(const uint8_t *const ptr, uint32_t ptr_size, uint32_t
      *idx, uint16_t *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/clamav/libclamav/ole2_extract.c:791,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/ole2_extract.c:795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ptr
    - ptr_size
    - idx
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 808
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 808
    functionName: find_file_pass
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - read_uint16
    linkageType: ''
    returnType: bool
    signature: bool find_file_pass(const uint8_t *const ptr, uint32_t ptr_size, uint32_t
      *idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:824,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/ole2_extract.c:830,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/ole2_extract.c:840,1
    - Dst: find_file_pass
      Src: /src/clamav/libclamav/ole2_extract.c:845,1
    - Dst: read_uint16
      Src: /src/clamav/libclamav/ole2_extract.c:849,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - word_block
    - hdr
    - pEncryptionStatus
    argTypes:
    - property_t*
    - ole2_header_t*
    - encryption_status_t*
    constantsTouched: []
    func_position:
      end: 860
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 860
    functionName: test_for_xls_encryption
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - find_file_pass
    - read_uint16
    linkageType: ''
    returnType: void
    signature: void test_for_xls_encryption(const property_t *word_block, ole2_header_t
      *hdr, encryption_status_t *pEncryptionStatus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:889,1
    - Dst: ole2_list_init
      Src: /src/clamav/libclamav/ole2_extract.c:890,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:892,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:893,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:902,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/ole2_extract.c:903,1
    - Dst: ole2_list_push
      Src: /src/clamav/libclamav/ole2_extract.c:908,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:909,1
    - Dst: ole2_list_is_empty
      Src: /src/clamav/libclamav/ole2_extract.c:913,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:914,1
    - Dst: ole2_list_size
      Src: /src/clamav/libclamav/ole2_extract.c:914,1
    - Dst: cli_json_timeout_cycle_check
      Src: /src/clamav/libclamav/ole2_extract.c:916,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:917,1
    - Dst: ole2_list_pop
      Src: /src/clamav/libclamav/ole2_extract.c:924,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:925,1
    - Dst: ole2_get_next_block_number
      Src: /src/clamav/libclamav/ole2_extract.c:932,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:938,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:944,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:946,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:947,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:948,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:949,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:950,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:951,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:952,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:953,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:954,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:955,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:956,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:959,1
    - Dst: ole2_cmp_name
      Src: /src/clamav/libclamav/ole2_extract.c:963,1
    - Dst: test_for_encryption
      Src: /src/clamav/libclamav/ole2_extract.c:964,1
    - Dst: ole2_cmp_name
      Src: /src/clamav/libclamav/ole2_extract.c:965,1
    - Dst: test_for_xls_encryption
      Src: /src/clamav/libclamav/ole2_extract.c:966,1
    - Dst: ole2_cmp_name
      Src: /src/clamav/libclamav/ole2_extract.c:967,1
    - Dst: test_for_encryption
      Src: /src/clamav/libclamav/ole2_extract.c:968,1
    - Dst: ole2_cmp_name
      Src: /src/clamav/libclamav/ole2_extract.c:969,1
    - Dst: ole2_cmp_name
      Src: /src/clamav/libclamav/ole2_extract.c:971,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:975,1
    - Dst: print_ole2_property
      Src: /src/clamav/libclamav/ole2_extract.c:977,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:979,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/ole2_extract.c:981,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:983,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:984,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:987,1
    - Dst: cli_bitset_set
      Src: /src/clamav/libclamav/ole2_extract.c:988,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:991,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:993,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:996,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1000,1
    - Dst: ole2_walk_property_tree
      Src: /src/clamav/libclamav/ole2_extract.c:1005,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1007,1
    - Dst: ole2_list_push
      Src: /src/clamav/libclamav/ole2_extract.c:1012,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1013,1
    - Dst: ole2_list_push
      Src: /src/clamav/libclamav/ole2_extract.c:1018,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1019,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1025,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1027,1
    - Dst: cli_append_potentially_unwanted_if_heur_exceedsmax
      Src: /src/clamav/libclamav/ole2_extract.c:1028,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1029,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1035,1
    - Dst: handler
      Src: /src/clamav/libclamav/ole2_extract.c:1036,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1038,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1039,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1043,1
    - Dst: ole2_walk_property_tree
      Src: /src/clamav/libclamav/ole2_extract.c:1046,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1048,1
    - Dst: ole2_list_push
      Src: /src/clamav/libclamav/ole2_extract.c:1053,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1054,1
    - Dst: ole2_list_push
      Src: /src/clamav/libclamav/ole2_extract.c:1059,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1060,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1066,1
    - Dst: json_object_object_get_ex
      Src: /src/clamav/libclamav/ole2_extract.c:1069,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1070,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1072,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1072,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/ole2_extract.c:1073,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:1075,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/ole2_extract.c:1080,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:1080,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1082,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1083,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/ole2_extract.c:1086,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:1086,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/ole2_extract.c:1087,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1088,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:1089,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1090,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1093,1
    - Dst: ole2_walk_property_tree
      Src: /src/clamav/libclamav/ole2_extract.c:1097,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1099,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:1101,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:1107,1
    - Dst: ole2_list_push
      Src: /src/clamav/libclamav/ole2_extract.c:1111,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1112,1
    - Dst: ole2_list_push
      Src: /src/clamav/libclamav/ole2_extract.c:1117,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1118,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1124,1
    - Dst: ole2_listmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1127,1
    - Dst: ole2_list_size
      Src: /src/clamav/libclamav/ole2_extract.c:1127,1
    - Dst: ole2_list_is_empty
      Src: /src/clamav/libclamav/ole2_extract.c:1127,1
    - Dst: ole2_list_delete
      Src: /src/clamav/libclamav/ole2_extract.c:1130,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 223
    argCount: 10
    argNames:
    - hdr
    - dir
    - prop_index
    - handler
    - rec_level
    - file_count
    - ctx
    - scansize
    - handler_ctx
    - pEncryptionStatus
    argTypes:
    - ole2_header_t*
    - char*
    - int32_t
    - ole2_walk_property_tree_file_handler
    - unsigned int
    - unsigned int*
    - cli_ctx*
    - unsigned long*
    - void*
    - encryption_status_t*
    constantsTouched: []
    func_position:
      end: 1132
      start: 875
    functionDepth: 5
    functionLinenumber: 875
    functionLinenumberEnd: 1132
    functionName: ole2_walk_property_tree
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 1
    functionsReached:
    - snprintf
    - ole2_list_init
    - print_ole2_property
    - cli_json_timeout_cycle_check
    - ole2_listmsg
    - cli_bitset_test
    - ole2_cmp_name
    - strcmp
    - ole2_list_delete
    - cli_dbgmsg
    - cli_jsonbool
    - ole2_list_pop
    - ole2_list_size
    - test_for_encryption
    - ole2_walk_property_tree
    - handler
    - test_for_xls_encryption
    - ole2_read_block
    - cli_max_malloc
    - ole2_list_is_empty
    - cli_ole2_get_property_name2
    - free
    - ole2_endian_convert_32
    - ole2_endian_convert_16
    - ole2_get_next_block_number
    - mkdir
    - strlen
    - cli_append_potentially_unwanted_if_heur_exceedsmax
    - json_object_object_get_ex
    - cli_bitset_set
    - ole2_list_push
    linkageType: ''
    returnType: int
    signature: "int ole2_walk_property_tree(ole2_header_t *hdr, const char *dir, int32_t
      prop_index,\n                                   ole2_walk_property_tree_file_handler
      handler,\n                                   unsigned int rec_level, unsigned
      int *file_count,\n                                   cli_ctx *ctx, unsigned
      long *scansize, void *handler_ctx,\n                                   encryption_status_t
      *pEncryptionStatus)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ole2_extract.c:1148,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ole2_extract.c:1149,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1158,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1163,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1165,1
    - Dst: uniq_add
      Src: /src/clamav/libclamav/ole2_extract.c:1166,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:1166,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1167,1
    - Dst: uniq_add
      Src: /src/clamav/libclamav/ole2_extract.c:1171,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1172,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/ole2_extract.c:1177,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1179,1
    - Dst: open
      Src: /src/clamav/libclamav/ole2_extract.c:1181,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1183,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:1191,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1192,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/ole2_extract.c:1195,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1197,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1203,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/ole2_extract.c:1208,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1210,1
    - Dst: cli_bitset_set
      Src: /src/clamav/libclamav/ole2_extract.c:1214,1
    - Dst: ole2_get_sbat_data_block
      Src: /src/clamav/libclamav/ole2_extract.c:1220,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1221,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ole2_extract.c:1228,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1228,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1228,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1232,1
    - Dst: ole2_get_next_sbat_block
      Src: /src/clamav/libclamav/ole2_extract.c:1233,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:1236,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ole2_extract.c:1240,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1240,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1240,1
    - Dst: ole2_get_next_block_number
      Src: /src/clamav/libclamav/ole2_extract.c:1245,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1246,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:1259,1
    - Dst: close
      Src: /src/clamav/libclamav/ole2_extract.c:1261,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:1263,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/ole2_extract.c:1265,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 98
    argCount: 5
    argNames:
    - hdr
    - prop
    - dir
    - ctx
    - handler_ctx
    argTypes:
    - ole2_header_t*
    - property_t*
    - char*
    - cli_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 1269
      start: 1135
    functionDepth: 5
    functionLinenumber: 1135
    functionLinenumberEnd: 1269
    functionName: handler_writefile
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cli_bitset_free
    - cli_bitset_init
    - cli_bitset_test
    - ole2_get_next_sbat_block
    - cli_dbgmsg
    - CLI_FREE_AND_SET_NULL
    - MIN
    - cli_writen
    - close
    - open
    - ole2_read_block
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - cli_ole2_get_property_name2
    - ole2_get_next_block_number
    - UNUSEDPARAM
    - uniq_add
    - strlen
    - ole2_get_sbat_data_block
    - cli_bitset_set
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t handler_writefile(ole2_header_t *hdr, property_t *prop,
      const char *dir, cli_ctx *ctx, void *handler_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/ole2_extract.c:1356,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:1358,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1360,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1374,1
    - Dst: cli_jsonbool
      Src: /src/clamav/libclamav/ole2_extract.c:1377,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/ole2_extract.c:1378,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:1380,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1382,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/ole2_extract.c:1385,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:1387,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1389,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1403,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1408,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 101
    argCount: 6
    argNames:
    - state
    - buff
    - len
    - ctx
    - found_macro
    - found_image
    argTypes:
    - struct biff_parser_state*
    - unsigned char*
    - size_t
    - cli_ctx*
    - bool*
    - bool*
    constantsTouched: []
    func_position:
      end: 1422
      start: 1302
    functionDepth: 3
    functionLinenumber: 1302
    functionLinenumberEnd: 1422
    functionName: scan_biff_for_xlm_macros_and_images
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - cli_dbgmsg
    - cli_jsonbool
    - cli_jsonstr
    - cli_jsonarray
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t scan_biff_for_xlm_macros_and_images(\n    struct biff_parser_state
      *state,\n    unsigned char *buff,\n    size_t len,\n    cli_ctx *ctx,\n    bool
      *found_macro,\n    bool *found_image)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:1453,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:1458,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1459,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/ole2_extract.c:1462,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1464,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1469,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/ole2_extract.c:1473,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1475,1
    - Dst: cli_bitset_set
      Src: /src/clamav/libclamav/ole2_extract.c:1478,1
    - Dst: ole2_get_sbat_data_block
      Src: /src/clamav/libclamav/ole2_extract.c:1483,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1484,1
    - Dst: scan_biff_for_xlm_macros_and_images
      Src: /src/clamav/libclamav/ole2_extract.c:1490,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1490,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1491,1
    - Dst: ole2_get_next_sbat_block
      Src: /src/clamav/libclamav/ole2_extract.c:1492,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:1495,1
    - Dst: scan_biff_for_xlm_macros_and_images
      Src: /src/clamav/libclamav/ole2_extract.c:1499,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1499,1
    - Dst: ole2_get_next_block_number
      Src: /src/clamav/libclamav/ole2_extract.c:1500,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1501,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:1508,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/ole2_extract.c:1511,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 5
    argNames:
    - hdr
    - prop
    - ctx
    - found_macro
    - found_image
    argTypes:
    - ole2_header_t*
    - property_t*
    - cli_ctx*
    - bool*
    - bool*
    constantsTouched: []
    func_position:
      end: 1514
      start: 1439
    functionDepth: 5
    functionLinenumber: 1439
    functionLinenumberEnd: 1514
    functionName: scan_for_xlm_macros_and_images
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - ole2_get_next_block_number
    - ole2_get_next_sbat_block
    - memset
    - scan_biff_for_xlm_macros_and_images
    - cli_bitset_free
    - ole2_get_sbat_data_block
    - ole2_read_block
    - CLI_FREE_AND_SET_NULL
    - MIN
    - cli_bitset_init
    - cli_dbgmsg
    - cli_bitset_set
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - cli_bitset_test
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scan_for_xlm_macros_and_images(ole2_header_t *hdr, property_t
      *prop, cli_ctx *ctx, bool *found_macro, bool *found_image)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ole2_extract.c:1535,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ole2_extract.c:1536,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1538,1
    - Dst: cli_jsonarray
      Src: /src/clamav/libclamav/ole2_extract.c:1541,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1543,1
    - Dst: json_object_new_string
      Src: /src/clamav/libclamav/ole2_extract.c:1545,1
    - Dst: json_object_array_add
      Src: /src/clamav/libclamav/ole2_extract.c:1546,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1549,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:1550,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1552,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:1553,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1555,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:1556,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1563,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1565,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1565,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1565,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1565,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1576,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1579,1
    - Dst: CLI_MAX_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:1580,1
    - Dst: ole2_get_sbat_data_block
      Src: /src/clamav/libclamav/ole2_extract.c:1593,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:1603,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1609,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:1612,1
    - Dst: CLI_CALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:1614,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:1619,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:1621,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:1622,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1636,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1639,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/ole2_extract.c:1639,1
    - Dst: scan_for_xlm_macros_and_images
      Src: /src/clamav/libclamav/ole2_extract.c:1640,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:1647,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:1648,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 83
    argCount: 5
    argNames:
    - hdr
    - prop
    - dir
    - ctx
    - handler_ctx
    argTypes:
    - ole2_header_t*
    - property_t*
    - char*
    - cli_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 1651
      start: 1525
    functionDepth: 6
    functionLinenumber: 1525
    functionLinenumberEnd: 1651
    functionName: handler_enum
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - CLI_MAX_CALLOC_OR_GOTO_DONE
    - CLI_CALLOC_OR_GOTO_DONE
    - strcmp
    - cli_jsonstr
    - UNUSEDPARAM
    - cli_warnmsg
    - ole2_get_sbat_data_block
    - scan_for_xlm_macros_and_images
    - ole2_read_block
    - json_object_array_add
    - cli_ole2_get_property_name2
    - memcmp
    - CLI_FREE_AND_SET_NULL
    - memcpy
    - ole2_endian_convert_32
    - cli_jsonarray
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t handler_enum(ole2_header_t *hdr, property_t *prop, const
      char *dir, cli_ctx *ctx, void *handler_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/clamav/libclamav/ole2_extract.c:1659,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1661,1
    - Dst: lseek
      Src: /src/clamav/libclamav/ole2_extract.c:1667,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1668,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:1672,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1673,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1681
      start: 1653
    functionDepth: 3
    functionLinenumber: 1653
    functionLinenumberEnd: 1681
    functionName: likely_mso_stream
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - lseek
    - cli_dbgmsg
    - cli_readn
    linkageType: ''
    returnType: int
    signature: int likely_mso_stream(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1697,1
    - Dst: FSTAT
      Src: /src/clamav/libclamav/ole2_extract.c:1702,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1703,1
    - Dst: fmap
      Src: /src/clamav/libclamav/ole2_extract.c:1707,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1709,1
    - Dst: cli_gentempfd
      Src: /src/clamav/libclamav/ole2_extract.c:1715,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1716,1
    - Dst: funmap
      Src: /src/clamav/libclamav/ole2_extract.c:1717,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:1722,1
    - Dst: inflateInit
      Src: /src/clamav/libclamav/ole2_extract.c:1731,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1733,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/ole2_extract.c:1739,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1740,1
    - Dst: le32_to_host
      Src: /src/clamav/libclamav/ole2_extract.c:1746,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1749,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/ole2_extract.c:1757,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1759,1
    - Dst: inflate
      Src: /src/clamav/libclamav/ole2_extract.c:1769,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/ole2_extract.c:1772,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ole2_extract.c:1774,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1775,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/ole2_extract.c:1788,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/ole2_extract.c:1793,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1795,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1798,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1801,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/ole2_extract.c:1806,1
    - Dst: inflateEnd
      Src: /src/clamav/libclamav/ole2_extract.c:1810,1
    - Dst: close
      Src: /src/clamav/libclamav/ole2_extract.c:1813,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/ole2_extract.c:1815,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:1817,1
    - Dst: funmap
      Src: /src/clamav/libclamav/ole2_extract.c:1818,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 103
    argCount: 2
    argNames:
    - fd
    - ctx
    argTypes:
    - int
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 1820
      start: 1683
    functionDepth: 18
    functionLinenumber: 1683
    functionLinenumberEnd: 1820
    functionName: scan_mso_stream
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - fmap
    - cli_magic_scan_desc
    - le32_to_host
    - cli_warnmsg
    - inflateInit
    - inflate
    - funmap
    - cli_dbgmsg
    - cli_checklimits
    - inflateEnd
    - cli_writen
    - close
    - memset
    - cli_unlink
    - cli_infomsg
    - FSTAT
    - fmap_readn
    - cli_gentempfd
    - free
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scan_mso_stream(int fd, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ole2_extract.c:1834,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ole2_extract.c:1835,1
    - Dst: print_ole2_property
      Src: /src/clamav/libclamav/ole2_extract.c:1842,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/ole2_extract.c:1844,1
    - Dst: open
      Src: /src/clamav/libclamav/ole2_extract.c:1849,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1850,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1860,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1862,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:1865,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/ole2_extract.c:1867,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1869,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1875,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/ole2_extract.c:1880,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1882,1
    - Dst: cli_bitset_set
      Src: /src/clamav/libclamav/ole2_extract.c:1886,1
    - Dst: ole2_get_sbat_data_block
      Src: /src/clamav/libclamav/ole2_extract.c:1892,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1893,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ole2_extract.c:1899,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1899,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1899,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1903,1
    - Dst: ole2_get_next_sbat_block
      Src: /src/clamav/libclamav/ole2_extract.c:1904,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:1907,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ole2_extract.c:1911,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1911,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1911,1
    - Dst: ole2_get_next_block_number
      Src: /src/clamav/libclamav/ole2_extract.c:1916,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:1917,1
    - Dst: likely_mso_stream
      Src: /src/clamav/libclamav/ole2_extract.c:1923,1
    - Dst: lseek
      Src: /src/clamav/libclamav/ole2_extract.c:1924,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1932,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/ole2_extract.c:1935,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1936,1
    - Dst: cli_ole2_summary_json
      Src: /src/clamav/libclamav/ole2_extract.c:1938,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/ole2_extract.c:1944,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:1945,1
    - Dst: cli_ole2_summary_json
      Src: /src/clamav/libclamav/ole2_extract.c:1947,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:1957,1
    - Dst: cli_scanhwp5_stream
      Src: /src/clamav/libclamav/ole2_extract.c:1959,1
    - Dst: scan_mso_stream
      Src: /src/clamav/libclamav/ole2_extract.c:1964,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/ole2_extract.c:1967,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:1973,1
    - Dst: close
      Src: /src/clamav/libclamav/ole2_extract.c:1975,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:1977,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/ole2_extract.c:1979,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/ole2_extract.c:1983,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:1987,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 136
    argCount: 5
    argNames:
    - hdr
    - prop
    - dir
    - ctx
    - handler_ctx
    argTypes:
    - ole2_header_t*
    - property_t*
    - char*
    - cli_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 1992
      start: 1822
    functionDepth: 20
    functionLinenumber: 1822
    functionLinenumberEnd: 1992
    functionName: handler_otf
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - scan_mso_stream
    - cli_magic_scan_desc
    - cli_bitset_free
    - print_ole2_property
    - cli_bitset_init
    - cli_bitset_test
    - likely_mso_stream
    - ole2_get_next_sbat_block
    - lseek
    - cli_dbgmsg
    - MIN
    - CLI_FREE_AND_SET_NULL
    - cli_writen
    - cli_ole2_summary_json
    - close
    - cli_unlink
    - open
    - ole2_read_block
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - cli_ole2_get_property_name2
    - free
    - ole2_get_next_block_number
    - UNUSEDPARAM
    - ole2_get_sbat_data_block
    - cli_gentemp
    - cli_scanhwp5_stream
    - cli_bitset_set
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t handler_otf(ole2_header_t *hdr, property_t *prop, const
      char *dir, cli_ctx *ctx, void *handler_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/ole2_extract.c:2029,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2032,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:2042,1
    - Dst: RKLENGTH
      Src: /src/clamav/libclamav/ole2_extract.c:2042,1
    - Dst: print_ole2_property
      Src: /src/clamav/libclamav/ole2_extract.c:2044,1
    - Dst: rijndaelSetupDecrypt
      Src: /src/clamav/libclamav/ole2_extract.c:2046,1
    - Dst: cli_gentemp
      Src: /src/clamav/libclamav/ole2_extract.c:2048,1
    - Dst: open
      Src: /src/clamav/libclamav/ole2_extract.c:2053,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2054,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:2064,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2066,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:2070,1
    - Dst: CLI_MAX_MALLOC_OR_GOTO_DONE
      Src: /src/clamav/libclamav/ole2_extract.c:2071,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/ole2_extract.c:2073,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2075,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2081,1
    - Dst: cli_bitset_test
      Src: /src/clamav/libclamav/ole2_extract.c:2086,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2088,1
    - Dst: cli_bitset_set
      Src: /src/clamav/libclamav/ole2_extract.c:2092,1
    - Dst: ole2_get_sbat_data_block
      Src: /src/clamav/libclamav/ole2_extract.c:2098,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2099,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ole2_extract.c:2106,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:2106,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:2106,1
    - Dst: MIN
      Src: /src/clamav/libclamav/ole2_extract.c:2110,1
    - Dst: ole2_get_next_sbat_block
      Src: /src/clamav/libclamav/ole2_extract.c:2111,1
    - Dst: ole2_read_block
      Src: /src/clamav/libclamav/ole2_extract.c:2119,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2126,1
    - Dst: ole2_endian_convert_64
      Src: /src/clamav/libclamav/ole2_extract.c:2127,1
    - Dst: rijndaelDecrypt
      Src: /src/clamav/libclamav/ole2_extract.c:2132,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/ole2_extract.c:2145,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2146,1
    - Dst: memmove
      Src: /src/clamav/libclamav/ole2_extract.c:2153,1
    - Dst: ole2_get_next_block_number
      Src: /src/clamav/libclamav/ole2_extract.c:2157,1
    - Dst: likely_mso_stream
      Src: /src/clamav/libclamav/ole2_extract.c:2163,1
    - Dst: lseek
      Src: /src/clamav/libclamav/ole2_extract.c:2164,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:2172,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/ole2_extract.c:2175,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2176,1
    - Dst: cli_ole2_summary_json
      Src: /src/clamav/libclamav/ole2_extract.c:2178,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/ole2_extract.c:2184,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2185,1
    - Dst: cli_ole2_summary_json
      Src: /src/clamav/libclamav/ole2_extract.c:2187,1
    - Dst: cli_ole2_get_property_name2
      Src: /src/clamav/libclamav/ole2_extract.c:2197,1
    - Dst: cli_scanhwp5_stream
      Src: /src/clamav/libclamav/ole2_extract.c:2199,1
    - Dst: scan_mso_stream
      Src: /src/clamav/libclamav/ole2_extract.c:2204,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/ole2_extract.c:2207,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:2213,1
    - Dst: close
      Src: /src/clamav/libclamav/ole2_extract.c:2215,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:2217,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/ole2_extract.c:2219,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/ole2_extract.c:2223,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:2227,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:2230,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:2231,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 166
    argCount: 5
    argNames:
    - hdr
    - prop
    - dir
    - ctx
    - handler_ctx
    argTypes:
    - ole2_header_t*
    - property_t*
    - char*
    - cli_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 2234
      start: 2007
    functionDepth: 20
    functionLinenumber: 2007
    functionLinenumberEnd: 2234
    functionName: handler_otf_encrypted
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - scan_mso_stream
    - cli_magic_scan_desc
    - cli_bitset_free
    - print_ole2_property
    - cli_bitset_init
    - cli_bitset_test
    - memmove
    - likely_mso_stream
    - RKLENGTH
    - ole2_get_next_sbat_block
    - lseek
    - cli_dbgmsg
    - MIN
    - CLI_FREE_AND_SET_NULL
    - cli_writen
    - rijndaelDecrypt
    - cli_ole2_summary_json
    - close
    - cli_unlink
    - open
    - ole2_read_block
    - CLI_MAX_MALLOC_OR_GOTO_DONE
    - cli_ole2_get_property_name2
    - free
    - ole2_get_next_block_number
    - UNUSEDPARAM
    - ole2_get_sbat_data_block
    - cli_gentemp
    - rijndaelSetupDecrypt
    - cli_scanhwp5_stream
    - cli_bitset_set
    - memcpy
    - ole2_endian_convert_64
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t handler_otf_encrypted(ole2_header_t *hdr, property_t *prop,
      const char *dir, cli_ctx *ctx, void *handler_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2241,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2244,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2247,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2250,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2253,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2256,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2259,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2262,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2265,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2268,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2271,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2274,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2277,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2280,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2283,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2286,1
    - Dst: cli_readn
      Src: /src/clamav/libclamav/ole2_extract.c:2290,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 2
    argNames:
    - fd
    - hdr
    argTypes:
    - int
    - ole2_header_t*
    constantsTouched: []
    func_position:
      end: 2295
      start: 2237
    functionDepth: 3
    functionLinenumber: 2237
    functionLinenumberEnd: 2295
    functionName: ole2_read_header
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - cli_readn
    linkageType: ''
    returnType: bool
    signature: bool ole2_read_header(int fd, ole2_header_t *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2300,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:2301,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:2302,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2304,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2305,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2307,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2308,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2309,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2310,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2311,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2312,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2313,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - encryption_info_stream_standard_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2315
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2315
    functionName: copy_encryption_info_stream_standard
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ole2_endian_convert_32
    - ole2_endian_convert_16
    linkageType: ''
    returnType: void
    signature: void copy_encryption_info_stream_standard(encryption_info_stream_standard_t
      *dst, const uint8_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2319,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2320,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - encryption_verifier_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2322
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2322
    functionName: copy_encryption_verifier
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ole2_endian_convert_32
    linkageType: ''
    returnType: void
    signature: void copy_encryption_verifier(encryption_verifier_t *dst, const uint8_t
      *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - keyLength
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2335
      start: 2324
    functionDepth: 0
    functionLinenumber: 2324
    functionLinenumberEnd: 2335
    functionName: key_length_valid_aes_bits
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key_length_valid_aes_bits(const uint32_t keyLength)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: key_length_valid_aes_bits
      Src: /src/clamav/libclamav/ole2_extract.c:2363,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2364,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:2368,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:2370,1
    - Dst: calloc
      Src: /src/clamav/libclamav/ole2_extract.c:2372,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2374,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2381,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2384,1
    - Dst: strlen
      Src: /src/clamav/libclamav/ole2_extract.c:2387,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/ole2_extract.c:2391,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2396,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/ole2_extract.c:2397,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:2400,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/ole2_extract.c:2402,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:2404,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/ole2_extract.c:2410,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:2412,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/ole2_extract.c:2417,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2421,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2425,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/ole2_extract.c:2428,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 3
    argNames:
    - password
    - key
    - verifier
    argTypes:
    - char*
    - encryption_key_t*
    - encryption_verifier_t*
    constantsTouched: []
    func_position:
      end: 2431
      start: 2349
    functionDepth: 2
    functionLinenumber: 2349
    functionLinenumberEnd: 2431
    functionName: generate_key_aes
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - memset
    - calloc
    - strlen
    - cli_warnmsg
    - cl_sha1
    - key_length_valid_aes_bits
    - cli_dbgmsg
    - memcpy
    - CLI_FREE_AND_SET_NULL
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t generate_key_aes(const char *const password, encryption_key_t
      *key,\n                                   encryption_verifier_t *verifier)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2441,1
    - Dst: rijndaelSetupDecrypt
      Src: /src/clamav/libclamav/ole2_extract.c:2445,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2448,1
    - Dst: rijndaelDecrypt
      Src: /src/clamav/libclamav/ole2_extract.c:2452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - in
    - length
    - out
    - key
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - encryption_key_t*
    constantsTouched: []
    func_position:
      end: 2460
      start: 2433
    functionDepth: 2
    functionLinenumber: 2433
    functionLinenumberEnd: 2460
    functionName: aes_128ecb_decrypt
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - rijndaelSetupDecrypt
    - cli_dbgmsg
    - rijndaelDecrypt
    - cli_errmsg
    linkageType: ''
    returnType: bool
    signature: bool aes_128ecb_decrypt(const unsigned char *in, size_t length, unsigned
      char *out, const encryption_key_t *const key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2485,1
    - Dst: aes_128ecb_decrypt
      Src: /src/clamav/libclamav/ole2_extract.c:2493,1
    - Dst: cl_sha1
      Src: /src/clamav/libclamav/ole2_extract.c:2499,1
    - Dst: aes_128ecb_decrypt
      Src: /src/clamav/libclamav/ole2_extract.c:2502,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/ole2_extract.c:2521,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - key
    - verifier
    argTypes:
    - encryption_key_t*
    - encryption_verifier_t*
    constantsTouched: []
    func_position:
      end: 2526
      start: 2473
    functionDepth: 3
    functionLinenumber: 2473
    functionLinenumberEnd: 2526
    functionName: verify_key_aes
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - cl_sha1
    - cli_dbgmsg
    - aes_128ecb_decrypt
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool verify_key_aes(const encryption_key_t *const key, encryption_verifier_t
      *verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_encryption_info_stream_standard
      Src: /src/clamav/libclamav/ole2_extract.c:2571,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:2573,1
    - Dst: memset
      Src: /src/clamav/libclamav/ole2_extract.c:2574,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2576,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2577,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2578,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2582,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2587,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2593,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2599,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2605,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2609,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2612,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2615,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2620,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2627,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2636,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2645,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2656,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2661,1
    - Dst: key_length_valid_aes_bits
      Src: /src/clamav/libclamav/ole2_extract.c:2665,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2666,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2670,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2673,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2678,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2681,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2696,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2703,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2720,1
    - Dst: copy_encryption_verifier
      Src: /src/clamav/libclamav/ole2_extract.c:2723,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2727,1
    - Dst: generate_key_aes
      Src: /src/clamav/libclamav/ole2_extract.c:2731,1
    - Dst: verify_key_aes
      Src: /src/clamav/libclamav/ole2_extract.c:2736,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2737,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2741,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 159
    argCount: 4
    argNames:
    - encryptionInfoStreamPtr
    - remainingBytes
    - encryptionKey
    - pEncryptionStatus
    argTypes:
    - uint8_t*
    - size_t
    - encryption_key_t*
    - encryption_status_t*
    constantsTouched: []
    func_position:
      end: 2752
      start: 2553
    functionDepth: 4
    functionLinenumber: 2553
    functionLinenumberEnd: 2752
    functionName: initialize_encryption_key
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 0
    functionsReached:
    - copy_encryption_info_stream_standard
    - memset
    - verify_key_aes
    - key_length_valid_aes_bits
    - cli_dbgmsg
    - copy_encryption_verifier
    - memcpy
    - generate_key_aes
    linkageType: ''
    returnType: bool
    signature: "bool initialize_encryption_key(\n    const uint8_t *encryptionInfoStreamPtr,\n
      \   size_t remainingBytes,\n    encryption_key_t *encryptionKey,\n    encryption_status_t
      *pEncryptionStatus)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2778,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/ole2_extract.c:2815,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/ole2_extract.c:2817,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2819,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:2823,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:2824,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:2825,1
    - Dst: ole2_endian_convert_16
      Src: /src/clamav/libclamav/ole2_extract.c:2826,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2827,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2828,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2829,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2830,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2831,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2832,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2833,1
    - Dst: ole2_endian_convert_32
      Src: /src/clamav/libclamav/ole2_extract.c:2834,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/ole2_extract.c:2838,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/ole2_extract.c:2843,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2844,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2854,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2858,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2862,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2866,1
    - Dst: initialize_encryption_key
      Src: /src/clamav/libclamav/ole2_extract.c:2875,1
    - Dst: MAX
      Src: /src/clamav/libclamav/ole2_extract.c:2882,1
    - Dst: print_ole2_header
      Src: /src/clamav/libclamav/ole2_extract.c:2884,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2885,1
    - Dst: ole2_walk_property_tree
      Src: /src/clamav/libclamav/ole2_extract.c:2891,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/ole2_extract.c:2892,1
    - Dst: cli_bitset_init
      Src: /src/clamav/libclamav/ole2_extract.c:2894,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2899,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2900,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2901,1
    - Dst: cli_hwp5header
      Src: /src/clamav/libclamav/ole2_extract.c:2903,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2912,1
    - Dst: uniq_init
      Src: /src/clamav/libclamav/ole2_extract.c:2913,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2914,1
    - Dst: ole2_walk_property_tree
      Src: /src/clamav/libclamav/ole2_extract.c:2919,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2932,1
    - Dst: ole2_walk_property_tree
      Src: /src/clamav/libclamav/ole2_extract.c:2936,1
    - Dst: ole2_walk_property_tree
      Src: /src/clamav/libclamav/ole2_extract.c:2938,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:2945,1
    - Dst: cli_jsonstr
      Src: /src/clamav/libclamav/ole2_extract.c:2947,1
    - Dst: cli_append_potentially_unwanted
      Src: /src/clamav/libclamav/ole2_extract.c:2953,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/ole2_extract.c:2955,1
    - Dst: cli_bitset_free
      Src: /src/clamav/libclamav/ole2_extract.c:2963,1
    - Dst: free
      Src: /src/clamav/libclamav/ole2_extract.c:2966,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 156
    argCount: 6
    argNames:
    - dirname
    - ctx
    - files
    - has_vba
    - has_xlm
    - has_image
    argTypes:
    - char*
    - cli_ctx*
    - struct uniq**
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 2969
      start: 2765
    functionDepth: 6
    functionLinenumber: 2765
    functionLinenumberEnd: 2969
    functionName: cli_ole2_extract
    functionSourceFile: /src/clamav/libclamav/ole2_extract.c
    functionUses: 1
    functionsReached:
    - MAX
    - print_ole2_header
    - ole2_endian_convert_16
    - ole2_walk_property_tree
    - cli_bitset_free
    - cli_jsonstr
    - cli_append_potentially_unwanted
    - fmap_need_off_once
    - initialize_encryption_key
    - uniq_init
    - cli_dbgmsg
    - cli_bitset_init
    - cli_hwp5header
    - memcpy
    - memcmp
    - cli_errmsg
    - ole2_endian_convert_32
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_ole2_extract(const char *dirname, cli_ctx *ctx, struct
      uniq **files, int *has_vba, int *has_xlm, int *has_image)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:1935,1
    - Dst: yyrealloc
      Src: /src/clamav/libclamav/yara_lexer.c:1996,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2004,1
    - Dst: YY_INPUT
      Src: /src/clamav/libclamav/yara_lexer.c:2018,1
    - Dst: yyrestart
      Src: /src/clamav/libclamav/yara_lexer.c:2029,1
    - Dst: yyrealloc
      Src: /src/clamav/libclamav/yara_lexer.c:2046,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2049,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2061
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 2061
    functionName: yy_get_next_buffer
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyrealloc
    - yyrestart
    - YY_FATAL_ERROR
    - YY_INPUT
    linkageType: ''
    returnType: int
    signature: int yy_get_next_buffer (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_SC_TO_UI
      Src: /src/clamav/libclamav/yara_lexer.c:2075,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2091
      start: 2065
    functionDepth: 0
    functionLinenumber: 2065
    functionLinenumberEnd: 2091
    functionName: yy_get_previous_state
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - YY_SC_TO_UI
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_get_previous_state (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - yy_current_state
    - yyscanner
    argTypes:
    - yy_state_type
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2121
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2121
    functionName: yy_try_NUL_trans
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t
      yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yy_get_next_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2155,1
    - Dst: yyrestart
      Src: /src/clamav/libclamav/yara_lexer.c:2169,1
    - Dst: yywrap
      Src: /src/clamav/libclamav/yara_lexer.c:2175,1
    - Dst: yyinput
      Src: /src/clamav/libclamav/yara_lexer.c:2181,1
    - Dst: input
      Src: /src/clamav/libclamav/yara_lexer.c:2183,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2206
      start: 2131
    functionDepth: 2
    functionLinenumber: 2131
    functionLinenumberEnd: 2206
    functionName: input
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached:
    - yyinput
    - yy_get_next_buffer
    - yyrestart
    - yywrap
    - input
    linkageType: ''
    returnType: int
    signature: int input  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/clamav/libclamav/yara_lexer.c:2219,1
    - Dst: yy_create_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2221,1
    - Dst: yy_init_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2224,1
    - Dst: yy_load_buffer_state
      Src: /src/clamav/libclamav/yara_lexer.c:2225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - input_file
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2226
      start: 2214
    functionDepth: 1
    functionLinenumber: 2214
    functionLinenumberEnd: 2226
    functionName: yyrestart
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 2
    functionsReached:
    - yy_init_buffer
    - yy_create_buffer
    - yyensure_buffer_stack
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yyrestart  (FILE * input_file , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/clamav/libclamav/yara_lexer.c:2241,1
    - Dst: yy_load_buffer_state
      Src: /src/clamav/libclamav/yara_lexer.c:2254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - new_buffer
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2262
      start: 2232
    functionDepth: 1
    functionLinenumber: 2232
    functionLinenumberEnd: 2262
    functionName: yy_switch_to_buffer
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2271
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2271
    functionName: yy_load_buffer_state
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_load_buffer_state  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/clamav/libclamav/yara_lexer.c:2283,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2285,1
    - Dst: yyalloc
      Src: /src/clamav/libclamav/yara_lexer.c:2292,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2294,1
    - Dst: yy_init_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - file
    - size
    - yyscanner
    argTypes:
    - FILE*
    - int
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2301
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2301
    functionName: yy_create_buffer
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached:
    - yyalloc
    - yy_init_buffer
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t
      yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyfree
      Src: /src/clamav/libclamav/yara_lexer.c:2318,1
    - Dst: yyfree
      Src: /src/clamav/libclamav/yara_lexer.c:2320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - b
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2321
      start: 2307
    functionDepth: 1
    functionLinenumber: 2307
    functionLinenumberEnd: 2321
    functionName: yy_delete_buffer
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyfree
    linkageType: ''
    returnType: void
    signature: void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yy_flush_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2333,1
    - Dst: isatty
      Src: /src/clamav/libclamav/yara_lexer.c:2347,1
    - Dst: fileno
      Src: /src/clamav/libclamav/yara_lexer.c:2347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - b
    - file
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - FILE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2350
      start: 2327
    functionDepth: 1
    functionLinenumber: 2327
    functionLinenumberEnd: 2350
    functionName: yy_init_buffer
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 2
    functionsReached:
    - fileno
    - isatty
    - yy_flush_buffer
    linkageType: ''
    returnType: void
    signature: void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yy_load_buffer_state
      Src: /src/clamav/libclamav/yara_lexer.c:2377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - b
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2378
      start: 2356
    functionDepth: 1
    functionLinenumber: 2356
    functionLinenumberEnd: 2378
    functionName: yy_flush_buffer
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached:
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/clamav/libclamav/yara_lexer.c:2392,1
    - Dst: yy_load_buffer_state
      Src: /src/clamav/libclamav/yara_lexer.c:2409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - new_buffer
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2411
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2411
    functionName: yypush_buffer_state
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yy_delete_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2423,1
    - Dst: yy_load_buffer_state
      Src: /src/clamav/libclamav/yara_lexer.c:2429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2432
      start: 2417
    functionDepth: 2
    functionLinenumber: 2417
    functionLinenumberEnd: 2432
    functionName: yypop_buffer_state
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yy_delete_buffer
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yypop_buffer_state (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/clamav/libclamav/yara_lexer.c:2449,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2453,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_lexer.c:2455,1
    - Dst: yyrealloc
      Src: /src/clamav/libclamav/yara_lexer.c:2468,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2473,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_lexer.c:2476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2479
      start: 2437
    functionDepth: 1
    functionLinenumber: 2437
    functionLinenumberEnd: 2479
    functionName: yyensure_buffer_stack
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 3
    functionsReached:
    - yyalloc
    - yyrealloc
    - memset
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yyensure_buffer_stack (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/clamav/libclamav/yara_lexer.c:2497,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2499,1
    - Dst: yy_switch_to_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - base
    - size
    - yyscanner
    argTypes:
    - char*
    - yy_size_t
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2514
      start: 2487
    functionDepth: 2
    functionLinenumber: 2487
    functionLinenumberEnd: 2514
    functionName: yy_scan_buffer
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyalloc
    - yy_switch_to_buffer
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t
      yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yy_scan_bytes
      Src: /src/clamav/libclamav/yara_lexer.c:2527,1
    - Dst: strlen
      Src: /src/clamav/libclamav/yara_lexer.c:2527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - yystr
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2528
      start: 2524
    functionDepth: 1
    functionLinenumber: 2524
    functionLinenumberEnd: 2528
    functionName: yy_scan_string
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - strlen
    - yy_scan_bytes
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/clamav/libclamav/yara_lexer.c:2546,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2548,1
    - Dst: yy_scan_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2555,1
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - yybytes
    - _yybytes_len
    - yyscanner
    argTypes:
    - char*
    - int
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2565
      start: 2537
    functionDepth: 3
    functionLinenumber: 2537
    functionLinenumberEnd: 2565
    functionName: yy_scan_bytes
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached:
    - yyalloc
    - yy_scan_buffer
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len
      , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclamav/yara_lexer.c:2575,1
    - Dst: exit
      Src: /src/clamav/libclamav/yara_lexer.c:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2577
      start: 2571
    functionDepth: 0
    functionLinenumber: 2571
    functionLinenumberEnd: 2577
    functionName: yy_fatal_error
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void yy_fatal_error (const char* msg , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2618
      start: 2610
    functionDepth: 0
    functionLinenumber: 2610
    functionLinenumberEnd: 2618
    functionName: yyget_lineno
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_lineno  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2631
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2631
    functionName: yyget_column
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_column  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2640
      start: 2636
    functionDepth: 0
    functionLinenumber: 2636
    functionLinenumberEnd: 2640
    functionName: yyget_in
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE *yyget_in  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2649
      start: 2645
    functionDepth: 0
    functionLinenumber: 2645
    functionLinenumberEnd: 2649
    functionName: yyget_out
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE *yyget_out  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2658
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2658
    functionName: yyget_leng
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_leng  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2668
      start: 2664
    functionDepth: 0
    functionLinenumber: 2664
    functionLinenumberEnd: 2668
    functionName: yyget_text
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *yyget_text  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user_defined
    - yyscanner
    argTypes:
    - YY_EXTRA_TYPE
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2678
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2678
    functionName: yyset_extra
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _line_number
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2693
      start: 2684
    functionDepth: 0
    functionLinenumber: 2684
    functionLinenumberEnd: 2693
    functionName: yyset_lineno
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yyset_lineno (int  _line_number , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/clamav/libclamav/yara_lexer.c:2705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _column_no
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2708
      start: 2699
    functionDepth: 0
    functionLinenumber: 2699
    functionLinenumberEnd: 2708
    functionName: yyset_column
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yyset_column (int  _column_no , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _in_str
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2720
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2720
    functionName: yyset_in
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _out_str
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2726
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2726
    functionName: yyset_out
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2732
      start: 2728
    functionDepth: 0
    functionLinenumber: 2728
    functionLinenumberEnd: 2732
    functionName: yyget_debug
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_debug  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _bdebug
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2738
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2738
    functionName: yyset_debug
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_debug (int  _bdebug , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2746
      start: 2742
    functionDepth: 0
    functionLinenumber: 2742
    functionLinenumberEnd: 2746
    functionName: yyget_lval
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YYSTYPE
    signature: YYSTYPE * yyget_lval  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - yylval_param
    - yyscanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2752
      start: 2748
    functionDepth: 0
    functionLinenumber: 2748
    functionLinenumberEnd: 2752
    functionName: yyset_lval
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/clamav/libclamav/yara_lexer.c:2767,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_lexer.c:2775,1
    - Dst: yy_init_globals
      Src: /src/clamav/libclamav/yara_lexer.c:2777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ptr_yy_globals
    argTypes:
    - yyscan_t*
    constantsTouched: []
    func_position:
      end: 2778
      start: 2760
    functionDepth: 1
    functionLinenumber: 2760
    functionLinenumberEnd: 2778
    functionName: yylex_init
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyalloc
    - memset
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_init(yyscan_t* ptr_yy_globals)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyset_extra
      Src: /src/clamav/libclamav/yara_lexer.c:2791,1
    - Dst: yyalloc
      Src: /src/clamav/libclamav/yara_lexer.c:2798,1
    - Dst: memset
      Src: /src/clamav/libclamav/yara_lexer.c:2807,1
    - Dst: yyset_extra
      Src: /src/clamav/libclamav/yara_lexer.c:2809,1
    - Dst: yy_init_globals
      Src: /src/clamav/libclamav/yara_lexer.c:2811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - yy_user_defined
    - ptr_yy_globals
    argTypes:
    - YY_EXTRA_TYPE
    - yyscan_t*
    constantsTouched: []
    func_position:
      end: 2812
      start: 2787
    functionDepth: 1
    functionLinenumber: 2787
    functionLinenumberEnd: 2812
    functionName: yylex_init_extra
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyalloc
    - memset
    - yy_init_globals
    - yyset_extra
    linkageType: ''
    returnType: int
    signature: int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals
      )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2845
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2845
    functionName: yy_init_globals
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_init_globals (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yy_delete_buffer
      Src: /src/clamav/libclamav/yara_lexer.c:2854,1
    - Dst: yypop_buffer_state
      Src: /src/clamav/libclamav/yara_lexer.c:2856,1
    - Dst: yyfree
      Src: /src/clamav/libclamav/yara_lexer.c:2860,1
    - Dst: yyfree
      Src: /src/clamav/libclamav/yara_lexer.c:2864,1
    - Dst: yy_init_globals
      Src: /src/clamav/libclamav/yara_lexer.c:2869,1
    - Dst: yyfree
      Src: /src/clamav/libclamav/yara_lexer.c:2872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2875
      start: 2848
    functionDepth: 3
    functionLinenumber: 2848
    functionLinenumberEnd: 2875
    functionName: yylex_destroy
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yypop_buffer_state
    - yyfree
    - yy_delete_buffer
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_destroy  (yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s1
    - s2
    - n
    - yyscanner
    argTypes:
    - char*
    - char*
    - int
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2890
      start: 2882
    functionDepth: 0
    functionLinenumber: 2882
    functionLinenumberEnd: 2890
    functionName: yy_flex_strncpy
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2901
      start: 2894
    functionDepth: 0
    functionLinenumber: 2894
    functionLinenumberEnd: 2901
    functionName: yy_flex_strlen
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_flex_strlen (const char * s , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/yara_lexer.c:2908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - yyscanner
    argTypes:
    - yy_size_t
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2909
      start: 2904
    functionDepth: 0
    functionLinenumber: 2904
    functionLinenumberEnd: 2909
    functionName: yyalloc
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 6
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/clamav/libclamav/yara_lexer.c:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - size
    - yyscanner
    argTypes:
    - void*
    - yy_size_t
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2924
      start: 2911
    functionDepth: 0
    functionLinenumber: 2911
    functionLinenumberEnd: 2924
    functionName: yyrealloc
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 2
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/yara_lexer.c:2930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - yyscanner
    argTypes:
    - void*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 2931
      start: 2926
    functionDepth: 0
    functionLinenumber: 2926
    functionLinenumberEnd: 2931
    functionName: yyfree
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void yyfree (void * ptr , yyscan_t yyscanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_lexer.c:2943,1
    - Dst: YR_COMPILER*::callback
      Src: /src/clamav/libclamav/yara_lexer.c:2952,1
    - Dst: yyget_lineno
      Src: /src/clamav/libclamav/yara_lexer.c:2955,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/yara_lexer.c:2958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - yyscanner
    - warning_message
    argTypes:
    - yyscan_t
    - char*
    constantsTouched: []
    func_position:
      end: 2960
      start: 2939
    functionDepth: 2
    functionLinenumber: 2939
    functionLinenumberEnd: 2960
    functionName: yywarning
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached:
    - cli_warnmsg
    - yyget_extra
    - YR_COMPILER*::callback
    - yyget_lineno
    linkageType: ''
    returnType: void
    signature: "void yywarning(\n    yyscan_t yyscanner,\n    const char *warning_message)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_extra
      Src: /src/clamav/libclamav/yara_lexer.c:2967,1
    - Dst: yyerror
      Src: /src/clamav/libclamav/yara_lexer.c:2970,1
    - Dst: longjmp
      Src: /src/clamav/libclamav/yara_lexer.c:2972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - yyscanner
    - error_message
    argTypes:
    - yyscan_t
    - char*
    constantsTouched: []
    func_position:
      end: 2973
      start: 2963
    functionDepth: 1
    functionLinenumber: 2963
    functionLinenumberEnd: 2973
    functionName: yyfatal
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 0
    functionsReached:
    - yyget_extra
    - yyerror
    - longjmp
    linkageType: ''
    returnType: void
    signature: "void yyfatal(\n    yyscan_t yyscanner,\n    const char *error_message)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yyget_lineno
      Src: /src/clamav/libclamav/yara_lexer.c:2995,1
    - Dst: yr_compiler_set_error_extra_info
      Src: /src/clamav/libclamav/yara_lexer.c:3010,1
    - Dst: YR_COMPILER*::callback
      Src: /src/clamav/libclamav/yara_lexer.c:3016,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/yara_lexer.c:3023,1
    - Dst: yr_compiler_get_error_message
      Src: /src/clamav/libclamav/yara_lexer.c:3033,1
    - Dst: YR_COMPILER*::callback
      Src: /src/clamav/libclamav/yara_lexer.c:3035,1
    - Dst: yr_compiler_get_error_message
      Src: /src/clamav/libclamav/yara_lexer.c:3042,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/yara_lexer.c:3043,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - yyscanner
    - compiler
    - error_message
    argTypes:
    - yyscan_t
    - YR_COMPILER*
    - char*
    constantsTouched: []
    func_position:
      end: 3048
      start: 2976
    functionDepth: 2
    functionLinenumber: 2976
    functionLinenumberEnd: 3048
    functionName: yyerror
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 2
    functionsReached:
    - yr_compiler_get_error_message
    - yyget_lineno
    - yr_compiler_set_error_extra_info
    - cli_errmsg
    - YR_COMPILER*::callback
    linkageType: ''
    returnType: void
    signature: "void yyerror(\n    yyscan_t yyscanner,\n    YR_COMPILER* compiler,\n
      \   const char *error_message)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/clamav/libclamav/yara_lexer.c:3060,1
    - Dst: yylex_init
      Src: /src/clamav/libclamav/yara_lexer.c:3063,1
    - Dst: yyset_debug
      Src: /src/clamav/libclamav/yara_lexer.c:3065,1
    - Dst: yyset_extra
      Src: /src/clamav/libclamav/yara_lexer.c:3067,1
    - Dst: yy_scan_string
      Src: /src/clamav/libclamav/yara_lexer.c:3069,1
    - Dst: yyset_lineno
      Src: /src/clamav/libclamav/yara_lexer.c:3071,1
    - Dst: yyparse
      Src: /src/clamav/libclamav/yara_lexer.c:3072,1
    - Dst: yylex_destroy
      Src: /src/clamav/libclamav/yara_lexer.c:3073,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/yara_lexer.c:3079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - rules_string
    - compiler
    argTypes:
    - char*
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 3082
      start: 3051
    functionDepth: 3
    functionLinenumber: 3051
    functionLinenumberEnd: 3082
    functionName: yr_lex_parse_rules_string
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached:
    - yy_scan_string
    - yylex_init
    - yylex_destroy
    - yyset_extra
    - yyset_lineno
    - yyset_debug
    - yyparse
    - cli_errmsg
    - setjmp
    linkageType: ''
    returnType: int
    signature: "int yr_lex_parse_rules_string(\n  const char* rules_string,\n  YR_COMPILER*
      compiler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/clamav/libclamav/yara_lexer.c:3093,1
    - Dst: yylex_init
      Src: /src/clamav/libclamav/yara_lexer.c:3096,1
    - Dst: printf
      Src: /src/clamav/libclamav/yara_lexer.c:3099,1
    - Dst: yyset_debug
      Src: /src/clamav/libclamav/yara_lexer.c:3102,1
    - Dst: yyset_in
      Src: /src/clamav/libclamav/yara_lexer.c:3104,1
    - Dst: yyset_extra
      Src: /src/clamav/libclamav/yara_lexer.c:3105,1
    - Dst: yyparse
      Src: /src/clamav/libclamav/yara_lexer.c:3106,1
    - Dst: yylex_destroy
      Src: /src/clamav/libclamav/yara_lexer.c:3107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - rules_file
    - compiler
    argTypes:
    - FILE*
    - YR_COMPILER*
    constantsTouched: []
    func_position:
      end: 3110
      start: 3085
    functionDepth: 3
    functionLinenumber: 3085
    functionLinenumberEnd: 3110
    functionName: yr_lex_parse_rules_file
    functionSourceFile: /src/clamav/libclamav/yara_lexer.c
    functionUses: 1
    functionsReached:
    - yylex_destroy
    - yylex_init
    - yyset_extra
    - printf
    - yyset_debug
    - yyparse
    - yyset_in
    - setjmp
    linkageType: ''
    returnType: int
    signature: "int yr_lex_parse_rules_file(\n  FILE* rules_file,\n  YR_COMPILER*
      compiler)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/clamav/libclamav/readdb.c:108,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:112,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:117,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:119,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:119,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:121,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/readdb.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - virname
    - official
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: cli_virname
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - strstr
    - strlen
    - cli_errmsg
    - malloc
    - cli_safer_strdup
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *cli_virname(const char *virname, unsigned int official)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:141,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:145,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:152,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:153,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:161,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:168,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:170,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:178,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:182,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:184,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:189,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:190,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:194,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:195,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:200,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:201,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:202,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:204,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:204,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:204,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:206,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:207,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:218,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:222,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:226,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:229,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:230,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:231,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:232,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:238,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:250,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:264,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:281,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:282,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:289,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:290,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:297,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:303,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:304,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:306,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:315,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:316,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 127
    argCount: 9
    argNames:
    - root
    - virname
    - hexsig
    - sigopts
    - rtype
    - type
    - offset
    - lsigid
    - options
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    - uint8_t
    - uint16_t
    - uint16_t
    - char*
    - uint32_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 318
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 318
    functionName: cli_sigopts_handler
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 2
    functionsReached:
    - cli_add_content_match_pattern
    - snprintf
    - strlen
    - cli_errmsg
    - strchr
    - strrchr
    - cli_safer_strdup
    - free
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_sigopts_handler(struct cli_matcher *root, const char
      *virname, const char *hexsig,\n                               uint8_t sigopts,
      uint16_t rtype, uint16_t type,\n                               const char *offset,
      const uint32_t *lsigid, unsigned int options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:349,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:361,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:376,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:383,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:384,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:388,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:395,1
    - Dst: cli_pcre_addpatt
      Src: /src/clamav/libclamav/readdb.c:412,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:414,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/readdb.c:423,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 6
    argNames:
    - root
    - virname
    - hexsig
    - offset
    - lsigid
    - options
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    - char*
    - uint32_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 426
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 426
    functionName: readdb_load_regex_subsignature
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - strchr
    - cli_pcre_addpatt
    - strrchr
    - CLI_FREE_AND_SET_NULL
    - cli_safer_strdup
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t readdb_load_regex_subsignature(struct cli_matcher *root,
      const char *virname, char *hexsig,\n                                                 const
      char *offset, const uint32_t *lsigid, unsigned int options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:448,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:451,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:457,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/readdb.c:462,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:463,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:469,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:474,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:476,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:489,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:491,1
    - Dst: cli_ac_addpatt
      Src: /src/clamav/libclamav/readdb.c:496,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:497,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:498,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:506,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:515,1
    - Dst: readdb_load_regex_subsignature
      Src: /src/clamav/libclamav/readdb.c:519,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:525,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:525,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:525,1
    - Dst: cli_bcomp_addpatt
      Src: /src/clamav/libclamav/readdb.c:529,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:530,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:535,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:535,1
    - Dst: fuzzy_hash_load_subsignature
      Src: /src/clamav/libclamav/readdb.c:543,1
    - Dst: fuzzy_hash_load_subsignature
      Src: /src/clamav/libclamav/readdb.c:548,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:552,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/readdb.c:559,1
    - Dst: cli_ldbtokenize
      Src: /src/clamav/libclamav/readdb.c:577,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:579,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:594,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:609,1
    - Dst: cli_sigopts_handler
      Src: /src/clamav/libclamav/readdb.c:618,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:620,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/readdb.c:634,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/readdb.c:637,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 147
    argCount: 9
    argNames:
    - root
    - virname
    - hexsig
    - offset
    - lsigid
    - options
    - current_subsig_index
    - num_subsigs
    - tdb
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    - char*
    - uint32_t*
    - unsigned int
    - int
    - int
    - struct cli_lsig_tdb*
    constantsTouched: []
    func_position:
      end: 640
      start: 428
    functionDepth: 6
    functionLinenumber: 428
    functionLinenumberEnd: 640
    functionName: readdb_parse_ldb_subsignature
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 2
    functionsReached:
    - readdb_load_regex_subsignature
    - cli_ldbtokenize
    - MPOOL_CALLOC
    - cli_add_content_match_pattern
    - fuzzy_hash_load_subsignature
    - MPOOL_FREE
    - ffierror_free
    - CLI_FREE_AND_SET_NULL
    - strrchr
    - ffierror_fmt
    - sscanf
    - free
    - cli_sigopts_handler
    - strlen
    - cli_ac_addpatt
    - strchr
    - cli_bcomp_addpatt
    - cli_errmsg
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t readdb_parse_ldb_subsignature(struct cli_matcher *root,
      const char *virname, char *hexsig,\n                                         const
      char *offset, const uint32_t *lsigid, unsigned int options,\n                                         int
      current_subsig_index, int num_subsigs, struct cli_lsig_tdb *tdb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:660,1
    - Dst: readdb_load_regex_subsignature
      Src: /src/clamav/libclamav/readdb.c:664,1
    - Dst: cli_sigopts_handler
      Src: /src/clamav/libclamav/readdb.c:671,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - root
    - virname
    - hexsig
    - subsig_opts
    - offset
    - lsigid
    - options
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    - uint8_t
    - char*
    - uint32_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 687
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 687
    functionName: readdb_parse_yara_string
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - readdb_load_regex_subsignature
    - cli_add_content_match_pattern
    - cli_sigopts_handler
    - strchr
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t readdb_parse_yara_string(struct cli_matcher *root, const
      char *virname, char *hexsig, uint8_t subsig_opts,\n                                           const
      char *offset, const uint32_t *lsigid, unsigned int options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:719,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:721,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/readdb.c:727,1
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:732,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/readdb.c:736,1
    - Dst: strcat
      Src: /src/clamav/libclamav/readdb.c:738,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:741,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:742,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:743,1
    - Dst: strcat
      Src: /src/clamav/libclamav/readdb.c:747,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:748,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:749,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:773,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:784,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:798,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:804,1
    - Dst: cli_ac_addsig
      Src: /src/clamav/libclamav/readdb.c:821,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:822,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:839,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:851,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:853,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:853,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/readdb.c:859,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:860,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:860,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:862,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:866,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/readdb.c:869,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:870,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:870,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:872,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:876,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/readdb.c:879,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:881,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:887,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:889,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:893,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:909,1
    - Dst: cli_strtok
      Src: /src/clamav/libclamav/readdb.c:917,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:918,1
    - Dst: cli_ac_addsig
      Src: /src/clamav/libclamav/readdb.c:922,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:923,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:924,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:928,1
    - Dst: strpbrk
      Src: /src/clamav/libclamav/readdb.c:931,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:931,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:931,1
    - Dst: strstr
      Src: /src/clamav/libclamav/readdb.c:931,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:931,1
    - Dst: cli_ac_addsig
      Src: /src/clamav/libclamav/readdb.c:935,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:936,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:944,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/readdb.c:948,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:950,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/readdb.c:956,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:958,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:959,1
    - Dst: cli_bm_addpatt
      Src: /src/clamav/libclamav/readdb.c:966,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:967,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:968,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:969,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:970,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 181
    argCount: 9
    argNames:
    - root
    - virname
    - hexsig
    - sigopts
    - rtype
    - type
    - offset
    - lsigid
    - options
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    - uint8_t
    - uint16_t
    - uint16_t
    - char*
    - uint32_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 976
      start: 706
    functionDepth: 7
    functionLinenumber: 706
    functionLinenumberEnd: 976
    functionName: cli_add_content_match_pattern
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 8
    functionsReached:
    - cli_strtok
    - CLI_MPOOL_VIRNAME
    - strcat
    - MPOOL_CALLOC
    - cli_add_content_match_pattern
    - strpbrk
    - strcmp
    - strstr
    - cli_ac_addsig
    - strncpy
    - MPOOL_FREE
    - sscanf
    - calloc
    - cli_bm_addpatt
    - free
    - cli_safer_strdup
    - CLI_MPOOL_HEX2STR
    - strlen
    - strchr
    - cli_isnumber
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_add_content_match_pattern(struct cli_matcher *root,
      const char *virname, const char *hexsig,\n                                         uint8_t
      sigopts, uint16_t rtype, uint16_t type,\n                                         const
      char *offset, const uint32_t *lsigid, unsigned int options)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:983,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:984,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:988,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:990,1
    - Dst: cli_ac_init
      Src: /src/clamav/libclamav/readdb.c:1000,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1002,1
    - Dst: cli_bm_init
      Src: /src/clamav/libclamav/readdb.c:1007,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1008,1
    - Dst: fuzzy_hashmap_new
      Src: /src/clamav/libclamav/readdb.c:1013,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - engine
    - options
    argTypes:
    - struct cl_engine*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1018
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 1018
    functionName: cli_initroots
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_bm_init
    - UNUSEDPARAM
    - fuzzy_hashmap_new
    - cli_dbgmsg
    - cli_ac_init
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_initroots(struct cl_engine *engine, unsigned int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/clamav/libclamav/readdb.c:1023,1
    - Dst: gzread
      Src: /src/clamav/libclamav/readdb.c:1035,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1037,1
    - Dst: fread
      Src: /src/clamav/libclamav/readdb.c:1041,1
    - Dst: ferror
      Src: /src/clamav/libclamav/readdb.c:1042,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1043,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/readdb.c:1054,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:1061,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1064,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/readdb.c:1067,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1081,1
    - Dst: memmove
      Src: /src/clamav/libclamav/readdb.c:1084,1
    - Dst: gzgets
      Src: /src/clamav/libclamav/readdb.c:1100,1
    - Dst: fgets
      Src: /src/clamav/libclamav/readdb.c:1102,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1105,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1108,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/readdb.c:1112,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 4
    argNames:
    - buff
    - size
    - fs
    - dbio
    argTypes:
    - char*
    - unsigned int
    - FILE*
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1115
    functionName: cli_dbgets
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 3
    functionsReached:
    - fread
    - strlen
    - gzread
    - strncpy
    - strchr
    - memmove
    - gzgets
    - cl_update_hash
    - cli_errmsg
    - fgets
    - ferror
    linkageType: ''
    returnType: char
    signature: char *cli_dbgets(char *buff, unsigned int size, FILE *fs, struct cli_dbio
      *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1126,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:1135,1
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:1147,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:1151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - signame
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1158
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1158
    functionName: cli_signorm
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - calloc
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *cli_signorm(const char *signame)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_signorm
      Src: /src/clamav/libclamav/readdb.c:1171,1
    - Dst: cli_bm_scanbuff
      Src: /src/clamav/libclamav/readdb.c:1175,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1175,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/readdb.c:1178,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1178,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/readdb.c:1179,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1183,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:1188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - ignored
    - signame
    - entry
    argTypes:
    - struct cli_matcher*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1190
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1190
    functionName: cli_chkign
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - strlen
    - cli_bm_scanbuff
    - cl_hash_data
    - cli_dbgmsg
    - memcmp
    - cli_signorm
    - free
    linkageType: ''
    returnType: int
    signature: int cli_chkign(const struct cli_matcher *ignored, const char *signame,
      const char *entry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1199,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:1201,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1202,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:1206,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1207,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:1210,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1211,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1218,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:1222,1
    - Dst: MIN
      Src: /src/clamav/libclamav/readdb.c:1224,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1224,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1224,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:1226,1
    - Dst: strstr
      Src: /src/clamav/libclamav/readdb.c:1231,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1232,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1233,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - signame
    - pua_cats
    - options
    argTypes:
    - char*
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1242
      start: 1192
    functionDepth: 2
    functionLinenumber: 1192
    functionLinenumberEnd: 1242
    functionName: cli_chkpua
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - strstr
    - strlen
    - strchr
    - cli_dbgmsg
    - MIN
    - strrchr
    - memcpy
    - strncmp
    linkageType: ''
    returnType: int
    signature: int cli_chkpua(const char *signame, const char *pua_cats, unsigned
      int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:1251,1
    - Dst: cli_initroots
      Src: /src/clamav/libclamav/readdb.c:1253,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:1259,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1260,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:1264,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:1268,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:1270,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:1272,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1274,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:1282,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:1285,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1286,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:1292,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1293,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:1301,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1304,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1309,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 6
    argNames:
    - fs
    - engine
    - signo
    - options
    - dbio
    - dbname
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    - char*
    constantsTouched: []
    func_position:
      end: 1317
      start: 1244
    functionDepth: 8
    functionLinenumber: 1244
    functionLinenumberEnd: 1317
    functionName: cli_loaddb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - cli_add_content_match_pattern
    - cli_dbgets
    - UNUSEDPARAM
    - strcpy
    - strchr
    - struct cl_engine*::cb_sigload
    - cli_dbgmsg
    - cli_initroots
    - free
    - malloc
    - cli_chkign
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_loaddb(FILE *fs, struct cl_engine *engine, unsigned
      int *signo, unsigned int options, struct cli_dbio *dbio, const char *dbname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:1336,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1338,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:1346,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1347,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:1353,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:1360,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:1362,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:1365,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1367,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1372,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1373,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:1378,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:1382,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1383,1
    - Dst: cli_hexnibbles
      Src: /src/clamav/libclamav/readdb.c:1388,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1389,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1395,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/readdb.c:1402,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1422,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1437,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1451,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1465,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1479,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1493,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1503,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:1508,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:1514,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/readdb.c:1518,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:1519,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:1528,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/readdb.c:1532,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:1533,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1542,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1551,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1553,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:1564,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:1573,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:1575,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:1582,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:1583,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:1586,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 245
    argCount: 5
    argNames:
    - fs
    - engine
    - signo
    - options
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 1591
      start: 1320
    functionDepth: 3
    functionLinenumber: 1320
    functionLinenumberEnd: 1591
    functionName: cli_loadidb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - CLI_MPOOL_STRDUP
    - cli_dbgets
    - strcmp
    - strcpy
    - strlen
    - MPOOL_FREE
    - struct cl_engine*::cb_sigload
    - cli_hexnibbles
    - cli_strtokenize
    - cli_dbgmsg
    - MPOOL_REALLOC
    - free
    - malloc
    - cli_chkign
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_loadidb(FILE *fs, struct cl_engine *engine, unsigned
      int *signo, unsigned int options, struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_allow_list
      Src: /src/clamav/libclamav/readdb.c:1601,1
    - Dst: load_regex_matcher
      Src: /src/clamav/libclamav/readdb.c:1606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - fs
    - engine
    - options
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 1611
      start: 1593
    functionDepth: 3
    functionLinenumber: 1593
    functionLinenumberEnd: 1611
    functionName: cli_loadwdb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - load_regex_matcher
    - init_allow_list
    linkageType: ''
    returnType: int
    signature: int cli_loadwdb(FILE *fs, struct cl_engine *engine, unsigned int options,
      struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_domain_list
      Src: /src/clamav/libclamav/readdb.c:1621,1
    - Dst: load_regex_matcher
      Src: /src/clamav/libclamav/readdb.c:1626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - fs
    - engine
    - signo
    - options
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 1631
      start: 1613
    functionDepth: 3
    functionLinenumber: 1613
    functionLinenumberEnd: 1631
    functionName: cli_loadpdb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - load_regex_matcher
    - init_domain_list
    linkageType: ''
    returnType: int
    signature: int cli_loadpdb(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      unsigned int options, struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:1644,1
    - Dst: cli_initroots
      Src: /src/clamav/libclamav/readdb.c:1646,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:1650,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1651,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:1655,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:1661,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:1661,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:1664,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:1666,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:1668,1
    - Dst: cli_chkpua
      Src: /src/clamav/libclamav/readdb.c:1677,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:1680,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:1683,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1684,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:1691,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:1696,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:1696,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1697,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:1697,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:1703,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:1708,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:1708,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:1714,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:1714,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:1718,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1721,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:1730,1
    - Dst: struct cl_engine*::cb_sigload_progress
      Src: /src/clamav/libclamav/readdb.c:1738,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:1742,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1745,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1750,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1759,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 93
    argCount: 7
    argNames:
    - fs
    - engine
    - signo
    - sdb
    - options
    - dbio
    - dbname
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned short
    - unsigned int
    - struct cli_dbio*
    - char*
    constantsTouched: []
    func_position:
      end: 1763
      start: 1634
    functionDepth: 8
    functionLinenumber: 1634
    functionLinenumberEnd: 1763
    functionName: cli_loadndb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - struct cl_engine*::cb_sigload
    - cli_strtokenize
    - cli_initroots
    - cli_add_content_match_pattern
    - strcmp
    - cli_dbgmsg
    - struct cl_engine*::cb_sigload_progress
    - cli_chomp
    - cl_retflevel
    - strncmp
    - strcpy
    - malloc
    - free
    - cli_dbgets
    - UNUSEDPARAM
    - cli_chkpua
    - cli_isnumber
    - cli_chkign
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadndb(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      unsigned short sdb, unsigned int options, struct cli_dbio *dbio, const char
      *dbname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:1811,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:1814,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1815,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:1822,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1829,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:1833,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1835,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:1838,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:1844,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1845,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/readdb.c:1850,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:1856,1
    - Dst: cli_ftcode
      Src: /src/clamav/libclamav/readdb.c:1860,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1861,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/readdb.c:1866,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:1880,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1882,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/readdb.c:1886,1
    - Dst: cli_ftcode
      Src: /src/clamav/libclamav/readdb.c:1894,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1895,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:1903,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1904,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/readdb.c:1911,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:1917,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:1917,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1918,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:1922,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:1923,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:1927,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:1927,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1928,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/readdb.c:1934,1
    - Dst: sscanf
      Src: /src/clamav/libclamav/readdb.c:1940,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1941,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1952,1
    - Dst: MPOOL_REALLOC2
      Src: /src/clamav/libclamav/readdb.c:1953,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1955,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:1958,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:1958,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:1964,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:1970,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:1976,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2004,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 167
    argCount: 2
    argNames:
    - attribs
    - tdb
    argTypes:
    - char*
    - struct cli_lsig_tdb*
    constantsTouched: []
    func_position:
      end: 2009
      start: 1772
    functionDepth: 2
    functionLinenumber: 1772
    functionLinenumberEnd: 2009
    functionName: lsigattribs
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strcmp
    - cli_ftcode
    - strlen
    - MPOOL_REALLOC2
    - strchr
    - cli_strtokenize
    - cli_dbgmsg
    - cli_isnumber
    - memcpy
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int lsigattribs(char *attribs, struct cli_lsig_tdb *tdb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:2042,1
    - Dst: lsigattribs
      Src: /src/clamav/libclamav/readdb.c:2045,1
    - Dst: FREE_TDB_P
      Src: /src/clamav/libclamav/readdb.c:2046,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2048,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:2055,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2056,1
    - Dst: FREE_TDB_P
      Src: /src/clamav/libclamav/readdb.c:2057,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:2059,1
    - Dst: FREE_TDB_P
      Src: /src/clamav/libclamav/readdb.c:2060,1
    - Dst: FREE_TDB_P
      Src: /src/clamav/libclamav/readdb.c:2066,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2067,1
    - Dst: FREE_TDB_P
      Src: /src/clamav/libclamav/readdb.c:2070,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2071,1
    - Dst: FREE_TDB_P
      Src: /src/clamav/libclamav/readdb.c:2076,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2077,1
    - Dst: FREE_TDB_P
      Src: /src/clamav/libclamav/readdb.c:2082,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2083,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - tdb
    - engine
    - target
    - virname
    argTypes:
    - struct cli_lsig_tdb*
    - struct cl_engine*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2088
      start: 2035
    functionDepth: 3
    functionLinenumber: 2035
    functionLinenumberEnd: 2088
    functionName: init_tdb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - lsigattribs
    - FREE_TDB_P
    - cl_retflevel
    - cli_dbgmsg
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int init_tdb(struct cli_lsig_tdb *tdb, struct cl_engine *engine, char
      *target, const char *virname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:2109,1
    - Dst: cli_ldbtokenize
      Src: /src/clamav/libclamav/readdb.c:2111,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2113,1
    - Dst: cli_chkpua
      Src: /src/clamav/libclamav/readdb.c:2121,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2122,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:2127,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2130,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:2135,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2136,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/libclamav/readdb.c:2141,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:2141,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2143,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2153,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2159,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2166,1
    - Dst: memset
      Src: /src/clamav/libclamav/readdb.c:2172,1
    - Dst: init_tdb
      Src: /src/clamav/libclamav/readdb.c:2173,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2177,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:2187,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2189,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:2195,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2197,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/readdb.c:2204,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2206,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/readdb.c:2219,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2221,1
    - Dst: readdb_parse_ldb_subsignature
      Src: /src/clamav/libclamav/readdb.c:2230,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2232,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:2238,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2255,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2259,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2262,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:2265,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 142
    argCount: 10
    argNames:
    - buffer
    - chkpua
    - engine
    - options
    - dbname
    - line
    - sigs
    - bc_idx
    - buffer_cpy
    - skip
    argTypes:
    - char*
    - int
    - struct cl_engine*
    - unsigned int
    - char*
    - unsigned int
    - unsigned int*
    - unsigned
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 2273
      start: 2095
    functionDepth: 7
    functionLinenumber: 2095
    functionLinenumberEnd: 2273
    functionName: load_oneldb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - CLI_MPOOL_VIRNAME
    - struct cl_engine*::cb_sigload
    - FREE_TDB
    - cli_ldbtokenize
    - MPOOL_CALLOC
    - CLI_MPOOL_STRDUP
    - readdb_parse_ldb_subsignature
    - MPOOL_FREE
    - cli_dbgmsg
    - init_tdb
    - cli_ac_chklsig
    - memset
    - MPOOL_REALLOC
    - UNUSEDPARAM
    - strlen
    - cli_chkpua
    - memcpy
    - cli_chkign
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t load_oneldb(char *buffer, int chkpua, struct cl_engine *engine,
      unsigned int options, const char *dbname, unsigned int line, unsigned int *sigs,
      unsigned bc_idx, const char *buffer_cpy, int *skip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_initroots
      Src: /src/clamav/libclamav/readdb.c:2281,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:2285,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2286,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:2291,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:2296,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:2299,1
    - Dst: load_oneldb
      Src: /src/clamav/libclamav/readdb.c:2301,1
    - Dst: struct cl_engine*::cb_sigload_progress
      Src: /src/clamav/libclamav/readdb.c:2309,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:2314,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2317,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2322,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 6
    argNames:
    - fs
    - engine
    - signo
    - options
    - dbio
    - dbname
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    - char*
    constantsTouched: []
    func_position:
      end: 2330
      start: 2275
    functionDepth: 8
    functionLinenumber: 2275
    functionLinenumberEnd: 2330
    functionName: cli_loadldb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - cli_dbgets
    - strcpy
    - cli_initroots
    - struct cl_engine*::cb_sigload_progress
    - free
    - malloc
    - cli_errmsg
    - load_oneldb
    linkageType: ''
    returnType: int
    signature: int cli_loadldb(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      unsigned int options, struct cli_dbio *dbio, const char *dbname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_initroots
      Src: /src/clamav/libclamav/readdb.c:2343,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:2350,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2351,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:2356,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:2357,1
    - Dst: cli_safer_realloc_or_free
      Src: /src/clamav/libclamav/readdb.c:2361,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2363,1
    - Dst: cli_bytecode_load
      Src: /src/clamav/libclamav/readdb.c:2377,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:2380,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/libclamav/readdb.c:2384,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2385,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/readdb.c:2385,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/libclamav/readdb.c:2389,1
    - Dst: cli_infomsg
      Src: /src/clamav/libclamav/readdb.c:2395,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2399,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2402,1
    - Dst: load_oneldb
      Src: /src/clamav/libclamav/readdb.c:2403,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2405,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/readdb.c:2406,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/libclamav/readdb.c:2410,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2417,1
    - Dst: cli_safer_realloc_or_free
      Src: /src/clamav/libclamav/readdb.c:2432,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2435,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2445,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:2446,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:2449,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2456,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 6
    argNames:
    - fs
    - engine
    - signo
    - options
    - dbio
    - dbname
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    - char*
    constantsTouched: []
    func_position:
      end: 2463
      start: 2332
    functionDepth: 8
    functionLinenumber: 2332
    functionLinenumberEnd: 2463
    functionName: cli_loadcbc
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - cli_dbgets
    - cli_warnmsg
    - cli_safer_realloc_or_free
    - cli_bytecode_load
    - cli_infomsg
    - struct cl_engine*::cb_sigload
    - cli_dbgmsg
    - cli_initroots
    - cli_bytecode_destroy
    - cli_errmsg
    - load_oneldb
    linkageType: ''
    returnType: int
    signature: int cli_loadcbc(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      unsigned int options, struct cli_dbio *dbio, const char *dbname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_initroots
      Src: /src/clamav/libclamav/readdb.c:2479,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/readdb.c:2487,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:2490,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:2494,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:2497,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:2506,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2510,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:2510,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2511,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2511,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:2516,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2520,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:2520,1
    - Dst: cli_ftcode
      Src: /src/clamav/libclamav/readdb.c:2525,1
    - Dst: cli_ftcode
      Src: /src/clamav/libclamav/readdb.c:2526,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:2532,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2533,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2538,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/libclamav/readdb.c:2540,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:2544,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2545,1
    - Dst: MPOOL_MALLOC::MPOOL_MALLOC
      Src: /src/clamav/libclamav/readdb.c:2549,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2555,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/readdb.c:2556,1
    - Dst: magic::magic
      Src: /src/clamav/libclamav/readdb.c:2557,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2558,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2560,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:2563,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:2564,1
    - Dst: tname::tname
      Src: /src/clamav/libclamav/readdb.c:2565,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2566,1
    - Dst: magic::magic
      Src: /src/clamav/libclamav/readdb.c:2566,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2567,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2580,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2580,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2587,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2592,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2596,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 110
    argCount: 5
    argNames:
    - fs
    - engine
    - options
    - internal
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 2598
      start: 2469
    functionDepth: 8
    functionLinenumber: 2469
    functionLinenumberEnd: 2598
    functionName: cli_loadftm
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - magic::magic
    - cli_strtokenize
    - cli_initroots
    - CLI_MPOOL_STRDUP
    - cli_add_content_match_pattern
    - MPOOL_MALLOC::MPOOL_MALLOC
    - strncpy
    - MPOOL_FREE
    - cli_dbgmsg
    - cli_chomp
    - cl_retflevel
    - CLI_MPOOL_HEX2STR
    - cli_dbgets
    - cli_ftcode
    - strlen
    - cli_isnumber
    - tname::tname
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadftm(FILE *fs, struct cl_engine *engine, unsigned int options,
      unsigned int internal, struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2614,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/readdb.c:2618,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:2622,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:2624,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/readdb.c:2626,1
    - Dst: cli_versig2
      Src: /src/clamav/libclamav/readdb.c:2627,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2628,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:2633,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/readdb.c:2644,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:2644,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:2645,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/readdb.c:2646,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2648,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:2652,1
    - Dst: cl_cvdparse
      Src: /src/clamav/libclamav/readdb.c:2657,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2659,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2667,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:2671,1
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:2676,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:2681,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:2682,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2683,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:2688,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2689,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2690,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:2690,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2691,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2695,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:2697,1
    - Dst: hash::hash
      Src: /src/clamav/libclamav/readdb.c:2697,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/readdb.c:2697,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2698,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2699,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:2699,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2700,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2709,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2714,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 98
    argCount: 4
    argNames:
    - fs
    - engine
    - options
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 2719
      start: 2603
    functionDepth: 5
    functionLinenumber: 2603
    functionLinenumberEnd: 2719
    functionName: cli_loadinfo
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - hash::hash
    - cli_strtokenize
    - cl_hash_init
    - MPOOL_CALLOC
    - CLI_MPOOL_STRDUP
    - cl_cvdparse
    - MPOOL_FREE
    - cli_chomp
    - MPOOL_CALLOC::MPOOL_CALLOC
    - cli_versig2
    - strncmp
    - cl_update_hash
    - name::name
    - CLI_MPOOL_HEX2STR
    - cli_dbgets
    - strlen
    - cli_isnumber
    - cl_finish_hash
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadinfo(FILE *fs, struct cl_engine *engine, unsigned int options,
      struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:2730,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:2733,1
    - Dst: cli_bm_init
      Src: /src/clamav/libclamav/readdb.c:2739,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2740,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:2745,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:2749,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:2751,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:2765,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2766,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:2774,1
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:2783,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:2788,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/readdb.c:2789,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2790,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:2795,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:2795,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/readdb.c:2795,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2796,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2797,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/readdb.c:2797,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2798,1
    - Dst: cli_bm_addpatt
      Src: /src/clamav/libclamav/readdb.c:2806,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2808,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:2808,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2809,1
    - Dst: pattern::pattern
      Src: /src/clamav/libclamav/readdb.c:2809,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2810,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2816,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    argCount: 4
    argNames:
    - fs
    - engine
    - options
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 2821
      start: 2722
    functionDepth: 3
    functionLinenumber: 2722
    functionLinenumberEnd: 2821
    functionName: cli_loadign
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - cli_bm_init
    - CLI_MPOOL_STRDUP
    - CLI_MPOOL_HEX2STR
    - pattern::pattern
    - cli_dbgets
    - cli_bm_addpatt
    - UNUSEDPARAM
    - strlen
    - MPOOL_FREE
    - MPOOL_CALLOC::MPOOL_CALLOC
    - cli_strtokenize
    - virname::virname
    - memcpy
    - cli_errmsg
    - MPOOL_CALLOC
    linkageType: ''
    returnType: int
    signature: int cli_loadign(FILE *fs, struct cl_engine *engine, unsigned int options,
      struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:2852,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:2868,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2869,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:2873,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:2877,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:2879,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:2881,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:2887,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:2894,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:2898,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:2903,1
    - Dst: strtoul
      Src: /src/clamav/libclamav/readdb.c:2904,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2906,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2918,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:2920,1
    - Dst: cli_chkpua
      Src: /src/clamav/libclamav/readdb.c:2928,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:2931,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:2940,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:2941,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/readdb.c:2946,1
    - Dst: hm_addhash_str
      Src: /src/clamav/libclamav/readdb.c:2952,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2953,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:2954,1
    - Dst: struct cl_engine*::cb_sigload_progress
      Src: /src/clamav/libclamav/readdb.c:2962,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:2966,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2969,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2974,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 111
    argCount: 7
    argNames:
    - fs
    - engine
    - signo
    - mode
    - options
    - dbio
    - dbname
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - unsigned int
    - struct cli_dbio*
    - char*
    constantsTouched: []
    func_position:
      end: 2982
      start: 2829
    functionDepth: 3
    functionLinenumber: 2829
    functionLinenumberEnd: 2982
    functionName: cli_loadhash
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - CLI_MPOOL_VIRNAME
    - struct cl_engine*::cb_sigload
    - cli_strtokenize
    - MPOOL_CALLOC
    - strcmp
    - hm_addhash_str
    - MPOOL_FREE
    - cli_dbgmsg
    - struct cl_engine*::cb_sigload_progress
    - strtoul
    - cli_chomp
    - cl_retflevel
    - strcpy
    - malloc
    - free
    - cli_dbgets
    - cli_chkpua
    - cli_chkign
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadhash(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      unsigned int mode, unsigned int options, struct cli_dbio *dbio, const char *dbname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:2993,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:2996,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:2997,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:3001,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:3006,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:3008,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:3010,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3016,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3016,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3017,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3021,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3021,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3022,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3026,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3026,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3027,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3031,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3031,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3032,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3036,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3036,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3037,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3041,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3041,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3042,1
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:3047,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/readdb.c:3053,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3054,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3055,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:3061,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3061,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3062,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3062,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3063,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:3067,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3067,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3068,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3068,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3069,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3069,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3070,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3074,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3074,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3076,1
    - Dst: cli_regcomp
      Src: /src/clamav/libclamav/readdb.c:3076,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3076,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3077,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3078,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3078,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3079,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3085,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3088,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3090,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3093,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3095,1
    - Dst: cli_hex2num
      Src: /src/clamav/libclamav/readdb.c:3096,1
    - Dst: res1::res1
      Src: /src/clamav/libclamav/readdb.c:3097,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3098,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3098,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3099,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3100,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/readdb.c:3101,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3101,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3109,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3109,1
    - Dst: sigs::sigs
      Src: /src/clamav/libclamav/readdb.c:3114,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3118,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3121,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3126,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 115
    argCount: 7
    argNames:
    - fs
    - engine
    - signo
    - type
    - options
    - dbio
    - dbname
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - int
    - unsigned int
    - struct cli_dbio*
    - char*
    constantsTouched: []
    func_position:
      end: 3134
      start: 2985
    functionDepth: 3
    functionLinenumber: 2985
    functionLinenumberEnd: 3134
    functionName: cli_loadmd
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - sigs::sigs
    - CLI_MPOOL_VIRNAME
    - struct cl_engine*::cb_sigload
    - cli_strtokenize
    - cli_hex2num
    - strcmp
    - MPOOL_FREE
    - cli_dbgmsg
    - cli_chomp
    - MPOOL_CALLOC::MPOOL_CALLOC
    - res1::res1
    - strcpy
    - malloc
    - name::name
    - free
    - cli_regcomp
    - cli_dbgets
    - UNUSEDPARAM
    - virname::virname
    - cli_isnumber
    - cli_regfree
    - cli_chkign
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadmd(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      int type, unsigned int options, struct cli_dbio *dbio, const char *dbname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:3150,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3151,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:3155,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:3160,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:3162,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:3164,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3171,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3175,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:3175,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3176,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3176,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3180,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3184,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:3184,1
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:3189,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/readdb.c:3195,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3196,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3197,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:3202,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3202,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3203,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3203,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3204,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:3208,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3208,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3209,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3209,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3210,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3210,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3211,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3215,1
    - Dst: ctype::ctype
      Src: /src/clamav/libclamav/readdb.c:3217,1
    - Dst: cli_ftcode
      Src: /src/clamav/libclamav/readdb.c:3217,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3218,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3220,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3220,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3221,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3225,1
    - Dst: cli_regcomp
      Src: /src/clamav/libclamav/readdb.c:3225,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3225,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3226,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3227,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3227,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3228,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/readdb.c:3262,1
    - Dst: csize::csize
      Src: /src/clamav/libclamav/readdb.c:3262,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/readdb.c:3263,1
    - Dst: fsizec::fsizec
      Src: /src/clamav/libclamav/readdb.c:3263,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/readdb.c:3264,1
    - Dst: fsizer::fsizer
      Src: /src/clamav/libclamav/readdb.c:3264,1
    - Dst: CDBRANGE
      Src: /src/clamav/libclamav/readdb.c:3265,1
    - Dst: filepos::filepos
      Src: /src/clamav/libclamav/readdb.c:3265,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3267,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3270,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3270,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3271,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3272,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/readdb.c:3273,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3273,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3274,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3274,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3275,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:3282,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:3283,1
    - Dst: res2::res2
      Src: /src/clamav/libclamav/readdb.c:3284,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3285,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3286,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/readdb.c:3287,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:3287,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3288,1
    - Dst: virname::virname
      Src: /src/clamav/libclamav/readdb.c:3288,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:3289,1
    - Dst: sigs::sigs
      Src: /src/clamav/libclamav/readdb.c:3296,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3300,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3303,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3308,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 121
    argCount: 5
    argNames:
    - fs
    - engine
    - signo
    - options
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 3316
      start: 3141
    functionDepth: 3
    functionLinenumber: 3141
    functionLinenumberEnd: 3316
    functionName: cli_loadcdb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - sigs::sigs
    - CLI_MPOOL_VIRNAME
    - struct cl_engine*::cb_sigload
    - cli_strtokenize
    - filepos::filepos
    - CLI_MPOOL_STRDUP
    - strcmp
    - MPOOL_FREE
    - res2::res2
    - cli_dbgmsg
    - cli_chomp
    - cl_retflevel
    - MPOOL_CALLOC::MPOOL_CALLOC
    - strcpy
    - malloc
    - name::name
    - fsizer::fsizer
    - CDBRANGE
    - free
    - ctype::ctype
    - cli_regcomp
    - cli_dbgets
    - cli_ftcode
    - csize::csize
    - fsizec::fsizec
    - virname::virname
    - cli_isnumber
    - cli_regfree
    - cli_chkign
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadcdb(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      unsigned int options, struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3328,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3329,1
    - Dst: cli_hex2str_to
      Src: /src/clamav/libclamav/readdb.c:3334,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3334,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3335,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:3339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - token
    - hashDest
    - varname
    - line
    argTypes:
    - char*
    - uint8_t[]
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3343
      start: 3321
    functionDepth: 2
    functionLinenumber: 3321
    functionLinenumberEnd: 3343
    functionName: set_sha1
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - cli_errmsg
    - cli_hex2str_to
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t set_sha1(const char *const token, uint8_t hashDest[SHA1_HASH_SIZE],\n
      \                          const char *const varname, uint32_t line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3360,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3365,1
    - Dst: cli_crt_init
      Src: /src/clamav/libclamav/readdb.c:3369,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3370,1
    - Dst: memset
      Src: /src/clamav/libclamav/readdb.c:3373,1
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:3375,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:3381,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3382,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:3385,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3387,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3393,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3394,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3398,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:3398,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3399,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:3399,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:3404,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3405,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3410,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/readdb.c:3410,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3411,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3425,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3430,1
    - Dst: set_sha1
      Src: /src/clamav/libclamav/readdb.c:3431,1
    - Dst: memset
      Src: /src/clamav/libclamav/readdb.c:3437,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3441,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3442,1
    - Dst: set_sha1
      Src: /src/clamav/libclamav/readdb.c:3445,1
    - Dst: BN_hex2bn
      Src: /src/clamav/libclamav/readdb.c:3450,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3451,1
    - Dst: BN_set_word
      Src: /src/clamav/libclamav/readdb.c:3456,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3457,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3469,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3482,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3495,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3500,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3505,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:3506,1
    - Dst: crtmgr_add
      Src: /src/clamav/libclamav/readdb.c:3510,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3514,1
    - Dst: cli_crt_clear
      Src: /src/clamav/libclamav/readdb.c:3515,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 148
    argCount: 3
    argNames:
    - fs
    - engine
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 3517
      start: 3351
    functionDepth: 3
    functionLinenumber: 3351
    functionLinenumberEnd: 3517
    functionName: cli_loadcrt
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - memset
    - cli_dbgets
    - strlen
    - cl_retflevel
    - BN_hex2bn
    - cli_crt_init
    - cli_strtokenize
    - cli_dbgmsg
    - cli_isnumber
    - cli_crt_clear
    - BN_set_word
    - crtmgr_add
    - set_sha1
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadcrt(FILE *fs, struct cl_engine *engine, struct cli_dbio
      *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:3523,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:3524,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3530,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3535,1
    - Dst: fmap
      Src: /src/clamav/libclamav/readdb.c:3539,1
    - Dst: fileno
      Src: /src/clamav/libclamav/readdb.c:3539,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3540,1
    - Dst: asn1_load_mscat
      Src: /src/clamav/libclamav/readdb.c:3544,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3545,1
    - Dst: funmap
      Src: /src/clamav/libclamav/readdb.c:3548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - fs
    - dbname
    - engine
    - options
    - dbio
    argTypes:
    - FILE*
    - char*
    - struct cl_engine*
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 3550
      start: 3519
    functionDepth: 7
    functionLinenumber: 3519
    functionLinenumberEnd: 3550
    functionName: cli_loadmscat
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - fmap
    - funmap
    - UNUSEDPARAM
    - fileno
    - cli_dbgmsg
    - asn1_load_mscat
    linkageType: ''
    returnType: int
    signature: int cli_loadmscat(FILE *fs, const char *dbname, struct cl_engine *engine,
      unsigned int options, struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: openioc_parse
      Src: /src/clamav/libclamav/readdb.c:3555,1
    - Dst: fileno
      Src: /src/clamav/libclamav/readdb.c:3555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fs
    - dbname
    - engine
    - options
    argTypes:
    - FILE*
    - char*
    - struct cl_engine*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3559
      start: 3552
    functionDepth: 5
    functionLinenumber: 3552
    functionLinenumberEnd: 3559
    functionName: cli_loadopenioc
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - fileno
    - openioc_parse
    linkageType: ''
    returnType: int
    signature: int cli_loadopenioc(FILE *fs, const char *dbname, struct cl_engine
      *engine, unsigned int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STRING_IS_HEX
      Src: /src/clamav/libclamav/readdb.c:3583,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:3595,1
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:3612,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:3655,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:3657,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3660,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:3666,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:3668,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3671,1
    - Dst: strchr
      Src: /src/clamav/libclamav/readdb.c:3677,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:3678,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3679,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3680,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 92
    argCount: 2
    argNames:
    - string
    - ret
    argTypes:
    - YR_STRING*
    - int*
    constantsTouched: []
    func_position:
      end: 3690
      start: 3573
    functionDepth: 2
    functionLinenumber: 3573
    functionLinenumberEnd: 3690
    functionName: parse_yara_hex_string
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - STRING_IS_HEX
    - calloc
    - cli_errmsg
    - strchr
    - strrchr
    - free
    linkageType: ''
    returnType: char
    signature: char *parse_yara_hex_string(YR_STRING *string, int *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hexsig
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3708
      start: 3703
    functionDepth: 0
    functionLinenumber: 3703
    functionLinenumberEnd: 3708
    functionName: ytable_lookup
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t ytable_lookup(const char *hexsig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ytable_lookup
      Src: /src/clamav/libclamav/readdb.c:3720,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3723,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3743,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3749,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:3751,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3754,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - ytable
    - hexsig
    - value
    - type
    argTypes:
    - struct cli_ytable*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3760
      start: 3710
    functionDepth: 3
    functionLinenumber: 3710
    functionLinenumberEnd: 3760
    functionName: ytable_add_attrib
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - ytable_lookup
    - cli_safer_strdup
    - cli_yaramsg
    - free
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t ytable_add_attrib(struct cli_ytable *ytable, const char
      *hexsig, const char *value, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc::calloc
      Src: /src/clamav/libclamav/readdb.c:3772,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3774,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:3778,1
    - Dst: hexstr::hexstr
      Src: /src/clamav/libclamav/readdb.c:3779,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3780,1
    - Dst: cli_safer_realloc
      Src: /src/clamav/libclamav/readdb.c:3786,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3788,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3789,1
    - Dst: ytable::ytable
      Src: /src/clamav/libclamav/readdb.c:3795,1
    - Dst: ytable_add_attrib
      Src: /src/clamav/libclamav/readdb.c:3798,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3799,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - ytable
    - hexsig
    argTypes:
    - struct cli_ytable*
    - char*
    constantsTouched: []
    func_position:
      end: 3807
      start: 3763
    functionDepth: 4
    functionLinenumber: 3763
    functionLinenumberEnd: 3807
    functionName: ytable_add_string
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - ytable_add_attrib
    - cli_yaramsg
    - hexstr::hexstr
    - calloc::calloc
    - free
    - ytable::ytable
    - cli_safer_strdup
    - cli_safer_realloc
    linkageType: ''
    returnType: int
    signature: int ytable_add_string(struct cli_ytable *ytable, const char *hexsig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3817,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3818,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3819,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ytable
    argTypes:
    - struct cli_ytable*
    constantsTouched: []
    func_position:
      end: 3823
      start: 3809
    functionDepth: 0
    functionLinenumber: 3809
    functionLinenumberEnd: 3823
    functionName: ytable_delete
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ytable_delete(struct cli_ytable *ytable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3832,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3837,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3838,1
    - Dst: cli_sigopts_handler
      Src: /src/clamav/libclamav/readdb.c:3843,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3845,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3847,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - string
    - hexstr
    - lsigid
    - engine
    - options
    argTypes:
    - YR_STRING*
    - char*
    - uint32_t*
    - struct cl_engine*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 3853
      start: 3826
    functionDepth: 4
    functionLinenumber: 3826
    functionLinenumberEnd: 3853
    functionName: yara_hexstr_verify
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - strlen
    - cli_sigopts_handler
    linkageType: ''
    returnType: int
    signature: int yara_hexstr_verify(YR_STRING *string, const char *hexstr, uint32_t
      *lsigid, struct cl_engine *engine, unsigned int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3877,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3880,1
    - Dst: cli_chkpua
      Src: /src/clamav/libclamav/readdb.c:3885,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:3888,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:3892,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3892,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3894,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:3898,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:3898,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:3900,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:3901,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3902,1
    - Dst: memset
      Src: /src/clamav/libclamav/readdb.c:3907,1
    - Dst: RULE_IS_PRIVATE
      Src: /src/clamav/libclamav/readdb.c:3911,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3912,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3913,1
    - Dst: RULE_IS_GLOBAL
      Src: /src/clamav/libclamav/readdb.c:3915,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3916,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3917,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3920,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3921,1
    - Dst: RULE_IS_NULL
      Src: /src/clamav/libclamav/readdb.c:3924,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3926,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3928,1
    - Dst: RULE_IS_NULL
      Src: /src/clamav/libclamav/readdb.c:3928,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3929,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3931,1
    - Dst: STAILQ_FOREACH
      Src: /src/clamav/libclamav/readdb.c:3954,1
    - Dst: STRING_IS_NULL
      Src: /src/clamav/libclamav/readdb.c:3959,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:3960,1
    - Dst: STRING_IS_LITERAL
      Src: /src/clamav/libclamav/readdb.c:3964,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:3966,1
    - Dst: STRING_IS_LITERAL
      Src: /src/clamav/libclamav/readdb.c:3968,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3969,1
    - Dst: STRING_IS_HEX
      Src: /src/clamav/libclamav/readdb.c:3971,1
    - Dst: parse_yara_hex_string
      Src: /src/clamav/libclamav/readdb.c:3972,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3974,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:3982,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3984,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3985,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3986,1
    - Dst: cli_ac_init
      Src: /src/clamav/libclamav/readdb.c:3992,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:3993,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3994,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:3995,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:4003,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4005,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4006,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4007,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/readdb.c:4017,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4020,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4021,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4022,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4023,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/readdb.c:4028,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4031,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4032,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4033,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4034,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4035,1
    - Dst: yara_hexstr_verify
      Src: /src/clamav/libclamav/readdb.c:4045,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4048,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4052,1
    - Dst: ytable_add_string
      Src: /src/clamav/libclamav/readdb.c:4054,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4055,1
    - Dst: STRING_IS_REGEXP
      Src: /src/clamav/libclamav/readdb.c:4056,1
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:4060,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4062,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:4068,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4070,1
    - Dst: ytable_add_string
      Src: /src/clamav/libclamav/readdb.c:4072,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4073,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4082,1
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:4087,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4089,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:4097,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4100,1
    - Dst: ytable_add_string
      Src: /src/clamav/libclamav/readdb.c:4102,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4103,1
    - Dst: STRING_IS_NO_CASE
      Src: /src/clamav/libclamav/readdb.c:4107,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4108,1
    - Dst: STRING_IS_SINGLE_MATCH
      Src: /src/clamav/libclamav/readdb.c:4108,1
    - Dst: ytable_add_attrib
      Src: /src/clamav/libclamav/readdb.c:4109,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4110,1
    - Dst: STRING_IS_ASCII
      Src: /src/clamav/libclamav/readdb.c:4115,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4116,1
    - Dst: STRING_IS_SINGLE_MATCH
      Src: /src/clamav/libclamav/readdb.c:4116,1
    - Dst: ytable_add_attrib
      Src: /src/clamav/libclamav/readdb.c:4117,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4118,1
    - Dst: STRING_IS_WIDE
      Src: /src/clamav/libclamav/readdb.c:4123,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4124,1
    - Dst: STRING_IS_SINGLE_MATCH
      Src: /src/clamav/libclamav/readdb.c:4124,1
    - Dst: STRING_IS_REGEXP
      Src: /src/clamav/libclamav/readdb.c:4126,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4127,1
    - Dst: ytable_add_attrib
      Src: /src/clamav/libclamav/readdb.c:4131,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4132,1
    - Dst: STRING_IS_FULL_WORD
      Src: /src/clamav/libclamav/readdb.c:4137,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4138,1
    - Dst: STRING_IS_SINGLE_MATCH
      Src: /src/clamav/libclamav/readdb.c:4138,1
    - Dst: ytable_add_attrib
      Src: /src/clamav/libclamav/readdb.c:4139,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4140,1
    - Dst: STRING_IS_ANONYMOUS
      Src: /src/clamav/libclamav/readdb.c:4148,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4149,1
    - Dst: STRING_IS_SINGLE_MATCH
      Src: /src/clamav/libclamav/readdb.c:4149,1
    - Dst: STRING_IS_SINGLE_MATCH
      Src: /src/clamav/libclamav/readdb.c:4152,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4153,1
    - Dst: STRING_IS_SINGLE_MATCH
      Src: /src/clamav/libclamav/readdb.c:4153,1
    - Dst: STRING_IS_REFERENCED
      Src: /src/clamav/libclamav/readdb.c:4155,1
    - Dst: STRING_IS_FAST_HEX_REGEXP
      Src: /src/clamav/libclamav/readdb.c:4155,1
    - Dst: STRING_IS_CHAIN_PART
      Src: /src/clamav/libclamav/readdb.c:4155,1
    - Dst: STRING_IS_CHAIN_TAIL
      Src: /src/clamav/libclamav/readdb.c:4156,1
    - Dst: STRING_FITS_IN_ATOM
      Src: /src/clamav/libclamav/readdb.c:4156,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4158,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4160,1
    - Dst: STRING_IS_REFERENCED
      Src: /src/clamav/libclamav/readdb.c:4160,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4161,1
    - Dst: STRING_IS_FAST_HEX_REGEXP
      Src: /src/clamav/libclamav/readdb.c:4161,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4162,1
    - Dst: STRING_IS_CHAIN_PART
      Src: /src/clamav/libclamav/readdb.c:4162,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4163,1
    - Dst: STRING_IS_CHAIN_TAIL
      Src: /src/clamav/libclamav/readdb.c:4163,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4164,1
    - Dst: STRING_FITS_IN_ATOM
      Src: /src/clamav/libclamav/readdb.c:4164,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4192,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4194,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4195,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4199,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4201,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4202,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4206,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4208,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4209,1
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:4219,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4221,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4222,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:4237,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:4245,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:4248,1
    - Dst: memset
      Src: /src/clamav/libclamav/readdb.c:4250,1
    - Dst: init_tdb
      Src: /src/clamav/libclamav/readdb.c:4251,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4252,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4253,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4254,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4255,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4261,1
    - Dst: MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:4266,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4268,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:4269,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4270,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4271,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4272,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4277,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:4280,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4281,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4283,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:4284,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4285,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4286,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4287,1
    - Dst: RULE_IS_PRIVATE
      Src: /src/clamav/libclamav/readdb.c:4293,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4296,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:4297,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4298,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4299,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4300,1
    - Dst: CLI_MPOOL_VIRNAME
      Src: /src/clamav/libclamav/readdb.c:4306,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4308,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:4309,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4310,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4311,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4312,1
    - Dst: MPOOL_REALLOC
      Src: /src/clamav/libclamav/readdb.c:4319,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4322,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:4323,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4324,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4325,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4326,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4338,1
    - Dst: readdb_parse_yara_string
      Src: /src/clamav/libclamav/readdb.c:4344,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:4348,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4349,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4350,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4353,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:4358,1
    - Dst: ytable_delete
      Src: /src/clamav/libclamav/readdb.c:4359,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4363,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4364,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 347
    argCount: 5
    argNames:
    - rule
    - chkpua
    - engine
    - options
    - sigs
    argTypes:
    - YR_RULE*
    - int
    - struct cl_engine*
    - unsigned int
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 4366
      start: 3862
    functionDepth: 5
    functionLinenumber: 3862
    functionLinenumberEnd: 4366
    functionName: load_oneyara
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - STAILQ_FOREACH
    - RULE_IS_PRIVATE
    - STRING_IS_SINGLE_MATCH
    - snprintf
    - CLI_MPOOL_VIRNAME
    - STRING_IS_CHAIN_PART
    - cli_warnmsg
    - STRING_IS_NULL
    - struct cl_engine*::cb_sigload
    - STRING_IS_CHAIN_TAIL
    - FREE_TDB
    - parse_yara_hex_string
    - cli_ac_init
    - readdb_parse_yara_string
    - STRING_IS_LITERAL
    - MPOOL_CALLOC
    - CLI_MPOOL_STRDUP
    - yara_hexstr_verify
    - RULE_IS_NULL
    - MPOOL_FREE
    - STRING_IS_ASCII
    - ytable_delete
    - STRING_IS_REFERENCED
    - STRING_FITS_IN_ATOM
    - STRING_IS_FULL_WORD
    - cli_dbgmsg
    - STRING_IS_REGEXP
    - init_tdb
    - STRING_IS_HEX
    - STRING_IS_FAST_HEX_REGEXP
    - memset
    - calloc
    - ytable_add_attrib
    - STRING_IS_ANONYMOUS
    - MPOOL_REALLOC
    - STRING_IS_WIDE
    - malloc
    - RULE_IS_GLOBAL
    - free
    - cli_safer_strdup
    - ytable_add_string
    - STRING_IS_NO_CASE
    - strlen
    - cli_chkpua
    - cli_yaramsg
    - memcpy
    - cli_chkign
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int load_oneyara(YR_RULE *rule, int chkpua, struct cl_engine *engine,
      unsigned int options, unsigned int *sigs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:4378,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4380,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/readdb.c:4383,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4384,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4385,1
    - Dst: yr_hash_table_create
      Src: /src/clamav/libclamav/readdb.c:4389,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4390,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4391,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4393,1
    - Dst: yr_hash_table_create
      Src: /src/clamav/libclamav/readdb.c:4397,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4398,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:4399,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4400,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4403,1
    - Dst: yr_hash_table_create
      Src: /src/clamav/libclamav/readdb.c:4408,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4409,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:4410,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:4411,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4412,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 4421
      start: 4375
    functionDepth: 2
    functionLinenumber: 4375
    functionLinenumberEnd: 4421
    functionName: cli_yara_init
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - yr_arena_destroy
    - calloc
    - yr_arena_create
    - cli_errmsg
    - yr_hash_table_create
    - free
    - yr_hash_table_destroy
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_yara_init(struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:4427,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:4431,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:4435,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4439,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 4445
      start: 4423
    functionDepth: 1
    functionLinenumber: 4423
    functionLinenumberEnd: 4445
    functionName: cli_yara_free
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - yr_arena_destroy
    - free
    - yr_hash_table_destroy
    linkageType: ''
    returnType: void
    signature: void cli_yara_free(struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:4456,1
    - Dst: cli_initroots
      Src: /src/clamav/libclamav/readdb.c:4458,1
    - Dst: memset
      Src: /src/clamav/libclamav/readdb.c:4461,1
    - Dst: STAILQ_INIT
      Src: /src/clamav/libclamav/readdb.c:4464,1
    - Dst: STAILQ_INIT
      Src: /src/clamav/libclamav/readdb.c:4465,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/readdb.c:4467,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/readdb.c:4469,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/readdb.c:4471,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/readdb.c:4473,1
    - Dst: yr_arena_create
      Src: /src/clamav/libclamav/readdb.c:4475,1
    - Dst: _yr_compiler_push_file_name
      Src: /src/clamav/libclamav/readdb.c:4485,1
    - Dst: yr_lex_parse_rules_file
      Src: /src/clamav/libclamav/readdb.c:4487,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4491,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4493,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4495,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4497,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4499,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4501,1
    - Dst: _yr_compiler_pop_file_name
      Src: /src/clamav/libclamav/readdb.c:4502,1
    - Dst: STAILQ_EMPTY
      Src: /src/clamav/libclamav/readdb.c:4512,1
    - Dst: STAILQ_FIRST
      Src: /src/clamav/libclamav/readdb.c:4513,1
    - Dst: STAILQ_REMOVE
      Src: /src/clamav/libclamav/readdb.c:4514,1
    - Dst: load_oneyara
      Src: /src/clamav/libclamav/readdb.c:4519,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4523,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4529,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/readdb.c:4531,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/readdb.c:4532,1
    - Dst: yr_arena_append
      Src: /src/clamav/libclamav/readdb.c:4533,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4534,1
    - Dst: yr_arena_destroy
      Src: /src/clamav/libclamav/readdb.c:4535,1
    - Dst: _yr_compiler_pop_file_name
      Src: /src/clamav/libclamav/readdb.c:4536,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4543,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4548,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:4559,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 6
    argNames:
    - fs
    - engine
    - signo
    - options
    - dbio
    - filename
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    - char*
    constantsTouched: []
    func_position:
      end: 4562
      start: 4448
    functionDepth: 6
    functionLinenumber: 4448
    functionLinenumberEnd: 4562
    functionName: cli_loadyara
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - yr_arena_destroy
    - memset
    - load_oneyara
    - yr_arena_create
    - STAILQ_EMPTY
    - UNUSEDPARAM
    - cli_warnmsg
    - STAILQ_INIT
    - cli_yaramsg
    - STAILQ_FIRST
    - yr_arena_append
    - _yr_compiler_pop_file_name
    - yr_lex_parse_rules_file
    - STAILQ_REMOVE
    - cli_initroots
    - _yr_compiler_push_file_name
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int cli_loadyara(FILE *fs, struct cl_engine *engine, unsigned int *signo,
      unsigned int options, struct cli_dbio *dbio, const char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:4586,1
    - Dst: cli_chomp
      Src: /src/clamav/libclamav/readdb.c:4590,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/readdb.c:4593,1
    - Dst: cli_chkign
      Src: /src/clamav/libclamav/readdb.c:4603,1
    - Dst: struct cl_engine*::cb_sigload
      Src: /src/clamav/libclamav/readdb.c:4608,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:4609,1
    - Dst: strstr
      Src: /src/clamav/libclamav/readdb.c:4615,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:4616,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4618,1
    - Dst: calloc
      Src: /src/clamav/libclamav/readdb.c:4624,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4626,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:4630,1
    - Dst: memset
      Src: /src/clamav/libclamav/readdb.c:4634,1
    - Dst: init_tdb
      Src: /src/clamav/libclamav/readdb.c:4635,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:4636,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4660,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:4664,1
    - Dst: cli_isnumber
      Src: /src/clamav/libclamav/readdb.c:4667,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4668,1
    - Dst: atoi
      Src: /src/clamav/libclamav/readdb.c:4673,1
    - Dst: MPOOL_CALLOC::MPOOL_CALLOC
      Src: /src/clamav/libclamav/readdb.c:4675,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:4682,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:4683,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4685,1
    - Dst: CLI_MPOOL_STRDUP
      Src: /src/clamav/libclamav/readdb.c:4690,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:4691,1
    - Dst: CLI_MPOOL_HEX2STR
      Src: /src/clamav/libclamav/readdb.c:4693,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:4694,1
    - Dst: passwd::passwd
      Src: /src/clamav/libclamav/readdb.c:4696,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4697,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4702,1
    - Dst: name::name
      Src: /src/clamav/libclamav/readdb.c:4702,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:4703,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:4711,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4720,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4725,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:4729,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 124
    argCount: 5
    argNames:
    - fs
    - engine
    - options
    - internal
    - dbio
    argTypes:
    - FILE*
    - struct cl_engine*
    - unsigned int
    - unsigned int
    - struct cli_dbio*
    constantsTouched: []
    func_position:
      end: 4731
      start: 4569
    functionDepth: 4
    functionLinenumber: 4569
    functionLinenumberEnd: 4731
    functionName: cli_loadpwdb
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - snprintf
    - struct cl_engine*::cb_sigload
    - FREE_TDB
    - cli_strtokenize
    - CLI_MPOOL_STRDUP
    - strstr
    - MPOOL_FREE
    - cli_dbgmsg
    - init_tdb
    - cli_chomp
    - memset
    - calloc
    - passwd::passwd
    - MPOOL_CALLOC::MPOOL_CALLOC
    - free
    - cli_safer_strdup
    - name::name
    - CLI_MPOOL_HEX2STR
    - cli_dbgets
    - strlen
    - cli_isnumber
    - cli_chkign
    - cli_errmsg
    - atoi
    linkageType: ''
    returnType: int
    signature: int cli_loadpwdb(FILE *fs, struct cl_engine *engine, unsigned int options,
      unsigned int internal, struct cli_dbio *dbio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgets
      Src: /src/clamav/libclamav/readdb.c:4745,1
    - Dst: fopen
      Src: /src/clamav/libclamav/readdb.c:4749,1
    - Dst: access
      Src: /src/clamav/libclamav/readdb.c:4751,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:4753,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4758,1
    - Dst: strrchr
      Src: /src/clamav/libclamav/readdb.c:4762,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4769,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4769,1
    - Dst: cli_loadyara
      Src: /src/clamav/libclamav/readdb.c:4770,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4775,1
    - Dst: cli_loaddb
      Src: /src/clamav/libclamav/readdb.c:4776,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4778,1
    - Dst: cli_cvdload
      Src: /src/clamav/libclamav/readdb.c:4779,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4781,1
    - Dst: cli_cvdload
      Src: /src/clamav/libclamav/readdb.c:4782,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4784,1
    - Dst: cli_cvdload
      Src: /src/clamav/libclamav/readdb.c:4785,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4787,1
    - Dst: cli_loadcrt
      Src: /src/clamav/libclamav/readdb.c:4788,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4790,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4790,1
    - Dst: cli_loadhash
      Src: /src/clamav/libclamav/readdb.c:4791,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4792,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4792,1
    - Dst: cli_loadhash
      Src: /src/clamav/libclamav/readdb.c:4794,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4798,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4798,1
    - Dst: cli_loadhash
      Src: /src/clamav/libclamav/readdb.c:4799,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4800,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4800,1
    - Dst: cli_loadhash
      Src: /src/clamav/libclamav/readdb.c:4801,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4802,1
    - Dst: cli_loadhash
      Src: /src/clamav/libclamav/readdb.c:4803,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4805,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4805,1
    - Dst: cli_loadhash
      Src: /src/clamav/libclamav/readdb.c:4807,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4811,1
    - Dst: cli_loadndb
      Src: /src/clamav/libclamav/readdb.c:4812,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4814,1
    - Dst: cli_loadndb
      Src: /src/clamav/libclamav/readdb.c:4818,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4820,1
    - Dst: cli_loadldb
      Src: /src/clamav/libclamav/readdb.c:4821,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4823,1
    - Dst: cli_loadldb
      Src: /src/clamav/libclamav/readdb.c:4825,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4828,1
    - Dst: cli_loadcbc
      Src: /src/clamav/libclamav/readdb.c:4830,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4833,1
    - Dst: cli_loadndb
      Src: /src/clamav/libclamav/readdb.c:4834,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4836,1
    - Dst: cli_loadmd
      Src: /src/clamav/libclamav/readdb.c:4837,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4839,1
    - Dst: cli_loadmd
      Src: /src/clamav/libclamav/readdb.c:4840,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4842,1
    - Dst: cli_dconf_load
      Src: /src/clamav/libclamav/readdb.c:4843,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4845,1
    - Dst: cli_loadinfo
      Src: /src/clamav/libclamav/readdb.c:4846,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4848,1
    - Dst: cli_loadwdb
      Src: /src/clamav/libclamav/readdb.c:4850,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4853,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4853,1
    - Dst: cli_loadpdb
      Src: /src/clamav/libclamav/readdb.c:4855,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4858,1
    - Dst: cli_loadftm
      Src: /src/clamav/libclamav/readdb.c:4859,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4861,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4861,1
    - Dst: cli_loadign
      Src: /src/clamav/libclamav/readdb.c:4862,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4864,1
    - Dst: cli_loadidb
      Src: /src/clamav/libclamav/readdb.c:4865,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4867,1
    - Dst: cli_loadcdb
      Src: /src/clamav/libclamav/readdb.c:4868,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4869,1
    - Dst: cli_loadmscat
      Src: /src/clamav/libclamav/readdb.c:4870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4871,1
    - Dst: cli_loadopenioc
      Src: /src/clamav/libclamav/readdb.c:4872,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4874,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4874,1
    - Dst: cli_loadyara
      Src: /src/clamav/libclamav/readdb.c:4876,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:4880,1
    - Dst: cli_loadpwdb
      Src: /src/clamav/libclamav/readdb.c:4881,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/readdb.c:4883,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:4888,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/readdb.c:4888,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:4891,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:4893,1
    - Dst: fclose
      Src: /src/clamav/libclamav/readdb.c:4897,1
    - Dst: struct cl_engine*::cb_sigload_progress
      Src: /src/clamav/libclamav/readdb.c:4902,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 155
    argCount: 6
    argNames:
    - filename
    - engine
    - signo
    - options
    - dbio
    - sign_verifier
    argTypes:
    - char*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - struct cli_dbio*
    - void*
    constantsTouched: []
    func_position:
      end: 4907
      start: 4735
    functionDepth: 9
    functionLinenumber: 4735
    functionLinenumberEnd: 4907
    functionName: cli_load
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 1
    functionsReached:
    - cli_cvdload
    - cli_loadyara
    - cli_warnmsg
    - cli_strbcasestr
    - cli_loadmd
    - cli_dconf_load
    - cli_loadcbc
    - cli_loadidb
    - access
    - cli_loadndb
    - cli_dbgmsg
    - cli_loadinfo
    - struct cl_engine*::cb_sigload_progress
    - strrchr
    - cli_loadpdb
    - cl_strerror
    - cli_loaddb
    - cli_loadldb
    - cli_loadcrt
    - cli_loadhash
    - cli_loadftm
    - cli_loadmscat
    - fclose
    - cli_loadopenioc
    - cli_loadign
    - cli_dbgets
    - cli_loadwdb
    - cli_loadcdb
    - cli_loadpwdb
    - cli_errmsg
    - fopen
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_load(const char *filename, struct cl_engine *engine,
      unsigned int *signo, unsigned int options, struct cli_dbio *dbio, void *sign_verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - head
    - entry
    argTypes:
    - struct db_ll_entry**
    - struct db_ll_entry*
    constantsTouched: []
    func_position:
      end: 4938
      start: 4915
    functionDepth: 0
    functionLinenumber: 4915
    functionLinenumberEnd: 4938
    functionName: cli_insertdbtoll
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cli_insertdbtoll(struct db_ll_entry **head, struct db_ll_entry
      *entry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/libclamav/readdb.c:4955,1
    - Dst: feof
      Src: /src/clamav/libclamav/readdb.c:4961,1
    - Dst: fgetc
      Src: /src/clamav/libclamav/readdb.c:4963,1
    - Dst: isspace
      Src: /src/clamav/libclamav/readdb.c:4967,1
    - Dst: fclose
      Src: /src/clamav/libclamav/readdb.c:4982,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - filepath
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 4984
      start: 4948
    functionDepth: 0
    functionLinenumber: 4948
    functionLinenumberEnd: 4984
    functionName: count_line_based_signatures
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - feof
    - fgetc
    - isspace
    - fclose
    - fopen
    linkageType: ''
    returnType: size_t
    signature: size_t count_line_based_signatures(const char *filepath)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5003,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5004,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5005,1
    - Dst: access
      Src: /src/clamav/libclamav/readdb.c:5007,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libclamav/readdb.c:5008,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5010,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5018,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5023,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5023,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5027,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5028,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5029,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5029,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5030,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5030,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5031,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5031,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5032,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5032,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5033,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5034,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5034,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5035,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5035,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5035,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5036,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5036,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5037,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5037,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5038,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5039,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5040,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5040,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5041,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5042,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5042,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5043,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5044,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5045,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5046,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5047,1
    - Dst: count_line_based_signatures
      Src: /src/clamav/libclamav/readdb.c:5049,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libclamav/readdb.c:5054,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 27
    argCount: 3
    argNames:
    - filepath
    - engine
    - options
    argTypes:
    - char*
    - struct cl_engine*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 5058
      start: 4998
    functionDepth: 4
    functionLinenumber: 4998
    functionLinenumberEnd: 5058
    functionName: count_signatures
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - access
    - cli_strbcasestr
    - count_line_based_signatures
    - cl_cvdfree
    - cl_cvdhead
    - cli_errmsg
    linkageType: ''
    returnType: size_t
    signature: size_t count_signatures(const char *filepath, struct cl_engine *engine,
      unsigned int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:5075,1
    - Dst: opendir
      Src: /src/clamav/libclamav/readdb.c:5077,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5078,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5083,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5084,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5085,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5085,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:5086,1
    - Dst: readdir
      Src: /src/clamav/libclamav/readdb.c:5091,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5098,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5098,1
    - Dst: CLI_DBEXT
      Src: /src/clamav/libclamav/readdb.c:5101,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:5105,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5105,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5107,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/readdb.c:5112,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/readdb.c:5114,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5124,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5124,1
    - Dst: count_line_based_signatures
      Src: /src/clamav/libclamav/readdb.c:5128,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5130,1
    - Dst: access
      Src: /src/clamav/libclamav/readdb.c:5136,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libclamav/readdb.c:5137,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5139,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5147,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5152,1
    - Dst: access
      Src: /src/clamav/libclamav/readdb.c:5155,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libclamav/readdb.c:5156,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5158,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5165,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5170,1
    - Dst: count_line_based_signatures
      Src: /src/clamav/libclamav/readdb.c:5173,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5175,1
    - Dst: count_line_based_signatures
      Src: /src/clamav/libclamav/readdb.c:5178,1
    - Dst: strstr
      Src: /src/clamav/libclamav/readdb.c:5181,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5182,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5183,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:5187,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5188,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:5192,1
    - Dst: count_line_based_signatures
      Src: /src/clamav/libclamav/readdb.c:5198,1
    - Dst: count_signatures
      Src: /src/clamav/libclamav/readdb.c:5203,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:5206,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5208,1
    - Dst: cli_insertdbtoll
      Src: /src/clamav/libclamav/readdb.c:5216,1
    - Dst: cli_load
      Src: /src/clamav/libclamav/readdb.c:5243,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5245,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5253,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5254,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5258,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5262,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libclamav/readdb.c:5266,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libclamav/readdb.c:5270,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5274,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 146
    argCount: 5
    argNames:
    - dirname
    - engine
    - signo
    - options
    - sign_verifier
    argTypes:
    - char*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    - void*
    constantsTouched: []
    func_position:
      end: 5277
      start: 5060
    functionDepth: 10
    functionLinenumber: 5060
    functionLinenumberEnd: 5277
    functionName: cli_loaddbdir
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - cli_strbcasestr
    - readdir
    - cl_cvdhead
    - sprintf
    - cli_insertdbtoll
    - strcmp
    - strstr
    - access
    - count_line_based_signatures
    - cli_dbgmsg
    - cli_load
    - closedir
    - cl_cvdfree
    - malloc
    - free
    - count_signatures
    - strlen
    - opendir
    - CLI_DBEXT
    - cli_errmsg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_loaddbdir(const char *dirname, struct cl_engine *engine,
      unsigned int *signo, unsigned int options, void *sign_verifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5287,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5292,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/readdb.c:5296,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5300,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5305,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5310,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5315,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5320,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5324,1
    - Dst: phishing_init
      Src: /src/clamav/libclamav/readdb.c:5331,1
    - Dst: cli_bytecode_init
      Src: /src/clamav/libclamav/readdb.c:5335,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:5338,1
    - Dst: clean_cache_init
      Src: /src/clamav/libclamav/readdb.c:5341,1
    - Dst: codesign_verifier_new
      Src: /src/clamav/libclamav/readdb.c:5347,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5348,1
    - Dst: ffierror_fmt
      Src: /src/clamav/libclamav/readdb.c:5348,1
    - Dst: ffierror_free
      Src: /src/clamav/libclamav/readdb.c:5349,1
    - Dst: count_signatures
      Src: /src/clamav/libclamav/readdb.c:5358,1
    - Dst: cli_load
      Src: /src/clamav/libclamav/readdb.c:5359,1
    - Dst: cli_loaddbdir
      Src: /src/clamav/libclamav/readdb.c:5364,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5368,1
    - Dst: codesign_verifier_free
      Src: /src/clamav/libclamav/readdb.c:5370,1
    - Dst: codesign_verifier_free
      Src: /src/clamav/libclamav/readdb.c:5376,1
    - Dst: struct cl_engine*::cb_sigload_progress
      Src: /src/clamav/libclamav/readdb.c:5381,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:5386,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:5387,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:5388,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:5389,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:5390,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:5391,1
    - Dst: cli_yaramsg
      Src: /src/clamav/libclamav/readdb.c:5392,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 4
    argNames:
    - path
    - engine
    - signo
    - dboptions
    argTypes:
    - char*
    - struct cl_engine*
    - unsigned int*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 5396
      start: 5279
    functionDepth: 11
    functionLinenumber: 5279
    functionLinenumberEnd: 5396
    functionName: cl_load
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 5
    functionsReached:
    - count_signatures
    - codesign_verifier_free
    - cli_bytecode_init
    - codesign_verifier_new
    - ffierror_free
    - CLAMSTAT
    - cli_yaramsg
    - cli_loaddbdir
    - phishing_init
    - cli_dbgmsg
    - struct cl_engine*::cb_sigload_progress
    - clean_cache_init
    - cli_load
    - cli_errmsg
    - ffierror_fmt
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_load(const char *path, struct cl_engine *engine, unsigned
      int *signo, unsigned int dboptions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyEx
      Src: /src/clamav/libclamav/readdb.c:5406,1
    - Dst: RegOpenKeyEx
      Src: /src/clamav/libclamav/readdb.c:5406,1
    - Dst: RegQueryValueEx
      Src: /src/clamav/libclamav/readdb.c:5408,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/readdb.c:5410,1
    - Dst: RegCloseKey
      Src: /src/clamav/libclamav/readdb.c:5412,1
    - Dst: GetModuleFileName
      Src: /src/clamav/libclamav/readdb.c:5414,1
    - Dst: dirname
      Src: /src/clamav/libclamav/readdb.c:5417,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:5418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5426
      start: 5398
    functionDepth: 3
    functionLinenumber: 5398
    functionLinenumberEnd: 5426
    functionName: cl_retdbdir
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 2
    functionsReached:
    - RegQueryValueEx
    - snprintf
    - dirname
    - RegCloseKey
    - RegOpenKeyEx
    - memcpy
    - GetModuleFileName
    linkageType: ''
    returnType: char
    signature: char *cl_retdbdir(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/readdb.c:5438,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5440,1
    - Dst: opendir
      Src: /src/clamav/libclamav/readdb.c:5444,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5445,1
    - Dst: cl_statfree
      Src: /src/clamav/libclamav/readdb.c:5446,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:5450,1
    - Dst: readdir
      Src: /src/clamav/libclamav/readdb.c:5452,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5454,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5454,1
    - Dst: CLI_DBEXT
      Src: /src/clamav/libclamav/readdb.c:5454,1
    - Dst: cli_safer_realloc_or_free
      Src: /src/clamav/libclamav/readdb.c:5456,1
    - Dst: cl_statfree
      Src: /src/clamav/libclamav/readdb.c:5458,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5459,1
    - Dst: cli_safer_realloc_or_free
      Src: /src/clamav/libclamav/readdb.c:5464,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5466,1
    - Dst: cl_statfree
      Src: /src/clamav/libclamav/readdb.c:5467,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5468,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:5473,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5473,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5473,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5475,1
    - Dst: cl_statfree
      Src: /src/clamav/libclamav/readdb.c:5476,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5477,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/readdb.c:5480,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:5482,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5482,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5484,1
    - Dst: cl_statfree
      Src: /src/clamav/libclamav/readdb.c:5485,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5486,1
    - Dst: strcpy
      Src: /src/clamav/libclamav/readdb.c:5490,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/readdb.c:5492,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5493,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5498,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 2
    argNames:
    - dirname
    - dbstat
    argTypes:
    - char*
    - struct cl_stat*
    constantsTouched: []
    func_position:
      end: 5500
      start: 5428
    functionDepth: 3
    functionLinenumber: 5428
    functionLinenumberEnd: 5500
    functionName: cl_statinidir
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - closedir
    - strcmp
    - strlen
    - strcpy
    - cli_safer_realloc_or_free
    - CLAMSTAT
    - opendir
    - cl_statfree
    - readdir
    - cli_dbgmsg
    - CLI_DBEXT
    - free
    - malloc
    - cli_safer_strdup
    - cli_errmsg
    - sprintf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cl_statinidir(const char *dirname, struct cl_stat *dbstat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5511,1
    - Dst: opendir
      Src: /src/clamav/libclamav/readdb.c:5515,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5516,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:5520,1
    - Dst: readdir
      Src: /src/clamav/libclamav/readdb.c:5522,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5524,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5524,1
    - Dst: CLI_DBEXT
      Src: /src/clamav/libclamav/readdb.c:5524,1
    - Dst: malloc
      Src: /src/clamav/libclamav/readdb.c:5525,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5525,1
    - Dst: strlen
      Src: /src/clamav/libclamav/readdb.c:5525,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5527,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5528,1
    - Dst: sprintf
      Src: /src/clamav/libclamav/readdb.c:5532,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/readdb.c:5533,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5534,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:5539,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5545,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5551,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:5558,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/readdb.c:5567,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5574,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5575,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5576,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5592,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5595,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5601,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5607,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5611,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:5627,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/readdb.c:5632,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/readdb.c:5640,1
    - Dst: cb_stats_submit
      Src: /src/clamav/libclamav/readdb.c:5646,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/libclamav/readdb.c:5652,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/readdb.c:5655,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5659,1
    - Dst: cli_bm_free
      Src: /src/clamav/libclamav/readdb.c:5739,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5740,1
    - Dst: cli_ac_free
      Src: /src/clamav/libclamav/readdb.c:5743,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5744,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5749,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5751,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:5752,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5753,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5755,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5758,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5759,1
    - Dst: cli_pcre_freetable
      Src: /src/clamav/libclamav/readdb.c:5762,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5763,1
    - Dst: fuzzy_hash_free_hashmap
      Src: /src/clamav/libclamav/readdb.c:5765,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5766,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5768,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5769,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5772,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5773,1
    - Dst: hm_free
      Src: /src/clamav/libclamav/readdb.c:5777,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5778,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5780,1
    - Dst: hm_free
      Src: /src/clamav/libclamav/readdb.c:5783,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5784,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5786,1
    - Dst: hm_free
      Src: /src/clamav/libclamav/readdb.c:5789,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5790,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5792,1
    - Dst: hm_free
      Src: /src/clamav/libclamav/readdb.c:5795,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5796,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5798,1
    - Dst: crtmgr_free
      Src: /src/clamav/libclamav/readdb.c:5800,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5801,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/readdb.c:5807,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5808,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5809,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5810,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5812,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5817,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5818,1
    - Dst: cvd_free
      Src: /src/clamav/libclamav/readdb.c:5820,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5821,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5823,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/libclamav/readdb.c:5828,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5829,1
    - Dst: cli_bytecode_done
      Src: /src/clamav/libclamav/readdb.c:5833,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5834,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5837,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5841,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5843,1
    - Dst: phishing_done
      Src: /src/clamav/libclamav/readdb.c:5845,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5846,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5848,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5849,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5853,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5855,1
    - Dst: cli_pwdb_list_free
      Src: /src/clamav/libclamav/readdb.c:5860,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5861,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5863,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5866,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5868,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5876,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5878,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5883,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5884,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5888,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5889,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5891,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5893,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5896,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5898,1
    - Dst: clean_cache_destroy
      Src: /src/clamav/libclamav/readdb.c:5901,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5903,1
    - Dst: cli_ftfree
      Src: /src/clamav/libclamav/readdb.c:5905,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5906,1
    - Dst: cli_bm_free
      Src: /src/clamav/libclamav/readdb.c:5909,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5910,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5912,1
    - Dst: cli_bm_free
      Src: /src/clamav/libclamav/readdb.c:5917,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5918,1
    - Dst: cli_ac_free
      Src: /src/clamav/libclamav/readdb.c:5920,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5921,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5926,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5928,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:5929,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5930,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5932,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5934,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5935,1
    - Dst: cli_pcre_freetable
      Src: /src/clamav/libclamav/readdb.c:5937,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5938,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:5940,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5941,1
    - Dst: mpool_destroy
      Src: /src/clamav/libclamav/readdb.c:5945,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5946,1
    - Dst: cli_yara_free
      Src: /src/clamav/libclamav/readdb.c:5950,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:5951,1
    - Dst: free
      Src: /src/clamav/libclamav/readdb.c:5954,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:6021,1
    - Dst: yr_hash_table_destroy
      Src: /src/clamav/libclamav/readdb.c:6023,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6026,1
    - Dst: cli_loadftm
      Src: /src/clamav/libclamav/readdb.c:6030,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6032,1
    - Dst: cli_loadpwdb
      Src: /src/clamav/libclamav/readdb.c:6036,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6038,1
    - Dst: cli_ac_buildtrie
      Src: /src/clamav/libclamav/readdb.c:6042,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6044,1
    - Dst: cli_pcre_build
      Src: /src/clamav/libclamav/readdb.c:6046,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6048,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/readdb.c:6050,1
    - Dst: hm_flush
      Src: /src/clamav/libclamav/readdb.c:6055,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6056,1
    - Dst: hm_flush
      Src: /src/clamav/libclamav/readdb.c:6059,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6060,1
    - Dst: hm_flush
      Src: /src/clamav/libclamav/readdb.c:6063,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6064,1
    - Dst: hm_flush
      Src: /src/clamav/libclamav/readdb.c:6067,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6068,1
    - Dst: cli_build_regex_list
      Src: /src/clamav/libclamav/readdb.c:6070,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6073,1
    - Dst: cli_build_regex_list
      Src: /src/clamav/libclamav/readdb.c:6075,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6078,1
    - Dst: cli_bm_free
      Src: /src/clamav/libclamav/readdb.c:6081,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:6082,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6084,1
    - Dst: cli_bm_free
      Src: /src/clamav/libclamav/readdb.c:6090,1
    - Dst: cli_ac_free
      Src: /src/clamav/libclamav/readdb.c:6091,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:6095,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:6097,1
    - Dst: FREE_TDB
      Src: /src/clamav/libclamav/readdb.c:6098,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:6099,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:6101,1
    - Dst: cli_pcre_freetable
      Src: /src/clamav/libclamav/readdb.c:6104,1
    - Dst: MPOOL_FREE
      Src: /src/clamav/libclamav/readdb.c:6106,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6108,1
    - Dst: cli_dconf_print
      Src: /src/clamav/libclamav/readdb.c:6111,1
    - Dst: MPOOL_FLUSH
      Src: /src/clamav/libclamav/readdb.c:6112,1
    - Dst: cli_bytecode_prepare2
      Src: /src/clamav/libclamav/readdb.c:6115,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6116,1
    - Dst: cl_strerror
      Src: /src/clamav/libclamav/readdb.c:6116,1
    - Dst: TASK_COMPLETE
      Src: /src/clamav/libclamav/readdb.c:6119,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6128,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/readdb.c:6133,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/readdb.c:6139,1
    - Dst: fopen
      Src: /src/clamav/libclamav/readdb.c:6151,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6153,1
    - Dst: fgets
      Src: /src/clamav/libclamav/readdb.c:6156,1
    - Dst: fclose
      Src: /src/clamav/libclamav/readdb.c:6161,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6168,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6168,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libclamav/readdb.c:6170,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6172,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libclamav/readdb.c:6176,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6178,1
    - Dst: cl_cvdhead
      Src: /src/clamav/libclamav/readdb.c:6180,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6182,1
    - Dst: cl_cvdfree
      Src: /src/clamav/libclamav/readdb.c:6186,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6188,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/libclamav/readdb.c:6192,1
    - Dst: CLI_DBEXT
      Src: /src/clamav/libclamav/readdb.c:6202,1
    - Dst: countentries
      Src: /src/clamav/libclamav/readdb.c:6203,1
    - Dst: CLAMSTAT
      Src: /src/clamav/libclamav/readdb.c:6220,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6221,1
    - Dst: countsigs
      Src: /src/clamav/libclamav/readdb.c:6226,1
    - Dst: opendir
      Src: /src/clamav/libclamav/readdb.c:6229,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6230,1
    - Dst: readdir
      Src: /src/clamav/libclamav/readdb.c:6233,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:6235,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/readdb.c:6235,1
    - Dst: CLI_DBEXT
      Src: /src/clamav/libclamav/readdb.c:6235,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/readdb.c:6236,1
    - Dst: countsigs
      Src: /src/clamav/libclamav/readdb.c:6238,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:6240,1
    - Dst: closedir
      Src: /src/clamav/libclamav/readdb.c:6246,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/readdb.c:6248,1
    CyclomaticComplexity: 145
    EdgeCount: 145
    ICount: 518
    argCount: 1
    argNames:
    - dbstat
    argTypes:
    - struct cl_stat*
    constantsTouched: []
    func_position:
      end: 6253
      start: 5502
    functionDepth: 10
    functionLinenumber: 5502
    functionLinenumberEnd: 6253
    functionName: cl_statchkdir
    functionSourceFile: /src/clamav/libclamav/readdb.c
    functionUses: 0
    functionsReached:
    - snprintf
    - countsigs
    - hm_free
    - cli_ftfree
    - cli_strbcasestr
    - FREE_TDB
    - readdir
    - MPOOL_FLUSH
    - cl_cvdhead
    - sprintf
    - cb_stats_submit
    - strcmp
    - countentries
    - MPOOL_FREE
    - mpool_destroy
    - clean_cache_destroy
    - cli_dbgmsg
    - cli_bytecode_done
    - cli_ac_free
    - cli_ac_buildtrie
    - phishing_done
    - yr_hash_table_destroy
    - cl_strerror
    - closedir
    - cli_pwdb_list_free
    - fopen
    - pthread_mutex_destroy
    - cli_build_regex_list
    - cli_bm_free
    - cli_loadftm
    - cli_pcre_freetable
    - cli_bytecode_destroy
    - cl_cvdfree
    - pthread_mutex_lock
    - malloc
    - cli_bytecode_prepare2
    - fclose
    - free
    - cli_pcre_build
    - fgets
    - fuzzy_hash_free_hashmap
    - strlen
    - UNUSEDPARAM
    - pthread_mutex_unlock
    - TASK_COMPLETE
    - cli_yara_free
    - CLAMSTAT
    - cli_dconf_print
    - opendir
    - cvd_free
    - CLI_DBEXT
    - cli_regfree
    - cli_loadpwdb
    - crtmgr_free
    - cli_errmsg
    - hm_flush
    linkageType: ''
    returnType: int
    signature: int cl_statchkdir(const struct cl_stat *dbstat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/nsis/nulsft.c:88,1
    - Dst: nsis_BZ2_bzDecompressInit
      Src: /src/clamav/libclamav/nsis/nulsft.c:89,1
    - Dst: memset
      Src: /src/clamav/libclamav/nsis/nulsft.c:94,1
    - Dst: cli_LzmaInit
      Src: /src/clamav/libclamav/nsis/nulsft.c:95,1
    - Dst: memset
      Src: /src/clamav/libclamav/nsis/nulsft.c:100,1
    - Dst: nsis_inflateInit
      Src: /src/clamav/libclamav/nsis/nulsft.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct nsis_st*
    constantsTouched: []
    func_position:
      end: 107
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 107
    functionName: nsis_init
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 0
    functionsReached:
    - nsis_inflateInit
    - cli_LzmaInit
    - memset
    - nsis_BZ2_bzDecompressInit
    linkageType: ''
    returnType: int
    signature: int nsis_init(struct nsis_st *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nsis_BZ2_bzDecompressEnd
      Src: /src/clamav/libclamav/nsis/nulsft.c:116,1
    - Dst: cli_LzmaShutdown
      Src: /src/clamav/libclamav/nsis/nulsft.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct nsis_st*
    constantsTouched: []
    func_position:
      end: 127
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 127
    functionName: nsis_shutdown
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 0
    functionsReached:
    - cli_LzmaShutdown
    - nsis_BZ2_bzDecompressEnd
    linkageType: ''
    returnType: void
    signature: void nsis_shutdown(struct nsis_st *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nsis_BZ2_bzDecompress
      Src: /src/clamav/libclamav/nsis/nulsft.c:138,1
    - Dst: cli_LzmaDecode
      Src: /src/clamav/libclamav/nsis/nulsft.c:155,1
    - Dst: nsis_inflate
      Src: /src/clamav/libclamav/nsis/nulsft.c:173,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct nsis_st*
    constantsTouched: []
    func_position:
      end: 187
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 187
    functionName: nsis_decomp
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 0
    functionsReached:
    - nsis_BZ2_bzDecompress
    - nsis_inflate
    - cli_LzmaDecode
    linkageType: ''
    returnType: int
    signature: int nsis_decomp(struct nsis_st *n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:197,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/nsis/nulsft.c:201,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/nsis/nulsft.c:205,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/nsis/nulsft.c:207,1
    - Dst: fmap_readn
      Src: /src/clamav/libclamav/nsis/nulsft.c:213,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:214,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:219,1
    - Dst: EC32
      Src: /src/clamav/libclamav/nsis/nulsft.c:222,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:224,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:228,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/nsis/nulsft.c:234,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/nsis/nulsft.c:238,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:239,1
    - Dst: open
      Src: /src/clamav/libclamav/nsis/nulsft.c:244,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:245,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/nsis/nulsft.c:252,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:253,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:255,1
    - Dst: nsis_init
      Src: /src/clamav/libclamav/nsis/nulsft.c:259,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:260,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:262,1
    - Dst: nsis_decomp
      Src: /src/clamav/libclamav/nsis/nulsft.c:272,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/nsis/nulsft.c:275,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:276,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:278,1
    - Dst: nsis_shutdown
      Src: /src/clamav/libclamav/nsis/nulsft.c:279,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/nsis/nulsft.c:285,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:286,1
    - Dst: nsis_shutdown
      Src: /src/clamav/libclamav/nsis/nulsft.c:287,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:291,1
    - Dst: nsis_shutdown
      Src: /src/clamav/libclamav/nsis/nulsft.c:298,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/nsis/nulsft.c:302,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:303,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:305,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:311,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:317,1
    - Dst: nsis_init
      Src: /src/clamav/libclamav/nsis/nulsft.c:327,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:328,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/nsis/nulsft.c:331,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:332,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:342,1
    - Dst: nsis_decomp
      Src: /src/clamav/libclamav/nsis/nulsft.c:349,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:352,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:360,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/nsis/nulsft.c:365,1
    - Dst: cli_checklimits
      Src: /src/clamav/libclamav/nsis/nulsft.c:366,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:371,1
    - Dst: MIN
      Src: /src/clamav/libclamav/nsis/nulsft.c:376,1
    - Dst: open
      Src: /src/clamav/libclamav/nsis/nulsft.c:379,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:380,1
    - Dst: nsis_decomp
      Src: /src/clamav/libclamav/nsis/nulsft.c:385,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/nsis/nulsft.c:389,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:390,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:392,1
    - Dst: MIN
      Src: /src/clamav/libclamav/nsis/nulsft.c:398,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:400,1
    - Dst: cli_writen
      Src: /src/clamav/libclamav/nsis/nulsft.c:409,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:410,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:412,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:418,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:421,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:429,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:431,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 201
    argCount: 2
    argNames:
    - n
    - ctx
    argTypes:
    - struct nsis_st*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 436
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 436
    functionName: nsis_unpack_next
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 0
    functionsReached:
    - close
    - cli_readint32
    - snprintf
    - open
    - nsis_init
    - EC32
    - fmap_need_off_once
    - fmap_readn
    - nsis_decomp
    - cli_dbgmsg
    - cli_checklimits
    - MIN
    - cli_writen
    - nsis_shutdown
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int nsis_unpack_next(struct nsis_st *n, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/nsis/nulsft.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: nsis_detcomp
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t nsis_detcomp(const char *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmap_need_off_once
      Src: /src/clamav/libclamav/nsis/nulsft.c:452,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/nsis/nulsft.c:455,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/nsis/nulsft.c:456,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:459,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/nsis/nulsft.c:459,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:462,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:466,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/nsis/nulsft.c:475,1
    - Dst: cli_readint32
      Src: /src/clamav/libclamav/nsis/nulsft.c:476,1
    - Dst: nsis_detcomp
      Src: /src/clamav/libclamav/nsis/nulsft.c:477,1
    - Dst: fmap_need_ptr_once
      Src: /src/clamav/libclamav/nsis/nulsft.c:481,1
    - Dst: nsis_detcomp
      Src: /src/clamav/libclamav/nsis/nulsft.c:482,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:497,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:501,1
    - Dst: nsis_unpack_next
      Src: /src/clamav/libclamav/nsis/nulsft.c:506,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 2
    argNames:
    - n
    - ctx
    argTypes:
    - struct nsis_st*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 507
      start: 445
    functionDepth: 5
    functionLinenumber: 445
    functionLinenumberEnd: 507
    functionName: nsis_headers
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 0
    functionsReached:
    - cli_readint32
    - fmap_need_ptr_once
    - fmap_need_off_once
    - cli_dbgmsg
    - nsis_detcomp
    - nsis_unpack_next
    linkageType: ''
    returnType: int
    signature: int nsis_headers(struct nsis_st *n, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nsis_unpack_next
      Src: /src/clamav/libclamav/nsis/nulsft.c:511,1
    - Dst: nsis_headers
      Src: /src/clamav/libclamav/nsis/nulsft.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - ctx
    argTypes:
    - struct nsis_st*
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 6
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: cli_nsis_unpack
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 0
    functionsReached:
    - nsis_unpack_next
    - nsis_headers
    linkageType: ''
    returnType: int
    signature: int cli_nsis_unpack(struct nsis_st *n, cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:519,1
    - Dst: memset
      Src: /src/clamav/libclamav/nsis/nulsft.c:521,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/libclamav/nsis/nulsft.c:524,1
    - Dst: mkdir
      Src: /src/clamav/libclamav/nsis/nulsft.c:526,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:527,1
    - Dst: free
      Src: /src/clamav/libclamav/nsis/nulsft.c:528,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:533,1
    - Dst: cli_nsis_unpack
      Src: /src/clamav/libclamav/nsis/nulsft.c:536,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:542,1
    - Dst: lseek
      Src: /src/clamav/libclamav/nsis/nulsft.c:543,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/nsis/nulsft.c:544,1
    - Dst: free
      Src: /src/clamav/libclamav/nsis/nulsft.c:545,1
    - Dst: cli_scan_desc
      Src: /src/clamav/libclamav/nsis/nulsft.c:549,1
    - Dst: cli_magic_scan_desc
      Src: /src/clamav/libclamav/nsis/nulsft.c:551,1
    - Dst: close
      Src: /src/clamav/libclamav/nsis/nulsft.c:553,1
    - Dst: cli_unlink
      Src: /src/clamav/libclamav/nsis/nulsft.c:555,1
    - Dst: nsis_shutdown
      Src: /src/clamav/libclamav/nsis/nulsft.c:567,1
    - Dst: cli_rmdirs
      Src: /src/clamav/libclamav/nsis/nulsft.c:570,1
    - Dst: free
      Src: /src/clamav/libclamav/nsis/nulsft.c:573,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - ctx
    - offset
    argTypes:
    - cli_ctx*
    - off_t
    constantsTouched: []
    func_position:
      end: 576
      start: 514
    functionDepth: 18
    functionLinenumber: 514
    functionLinenumberEnd: 576
    functionName: cli_scannulsft
    functionSourceFile: /src/clamav/libclamav/nsis/nulsft.c
    functionUses: 2
    functionsReached:
    - cli_gentemp_with_prefix
    - lseek
    - memset
    - cli_nsis_unpack
    - cli_magic_scan_desc
    - mkdir
    - close
    - cli_unlink
    - nsis_shutdown
    - cli_rmdirs
    - cli_dbgmsg
    - cli_scan_desc
    - free
    linkageType: ''
    returnType: int
    signature: int cli_scannulsft(cli_ctx *ctx, off_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/clamav/libclamav/nsis/infblock.c:108,1
    - Dst: zmemcpy
      Src: /src/clamav/libclamav/nsis/infblock.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - z
    argTypes:
    - nsis_z_streamp
    constantsTouched: []
    func_position:
      end: 133
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 133
    functionName: inflate_flush
    functionSourceFile: /src/clamav/libclamav/nsis/infblock.c
    functionUses: 0
    functionsReached:
    - min
    - zmemcpy
    linkageType: ''
    returnType: local
    signature: local inflate_flush(nsis_z_streamp z)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 110
    argCount: 10
    argNames:
    - b
    - n
    - s
    - d
    - e
    - t
    - m
    - hp
    - hn
    - v
    argTypes:
    - uIntf*
    - uInt
    - uInt
    - unsigned short*
    - unsigned short*
    - inflate_huft**
    - uIntf*
    - inflate_huft*
    - uInt*
    - uIntf*
    constantsTouched: []
    func_position:
      end: 325
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 325
    functionName: huft_build
    functionSourceFile: /src/clamav/libclamav/nsis/infblock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: 'local huft_build(

      uIntf *b,               /* code lengths in bits (all assumed <= BMAX) */

      uInt n,                 /* number of codes (assumed <= 288) */

      uInt s,                 /* number of simple-valued codes (0..s-1) */

      const unsigned short *d,         /* list of base values for non-simple codes
      */

      const unsigned short *e,         /* list of extra bits for non-simple codes
      */

      inflate_huft * FAR *t,  /* result: starting table */

      uIntf *m,               /* maximum lookup bits, returns actual */

      inflate_huft *hp,       /* space for trees */

      uInt *hn,               /* working area: values in order of bit length */

      uIntf *v)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:365,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:367,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:372,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:374,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:378,1
    - Dst: huft_build
      Src: /src/clamav/libclamav/nsis/infblock.c:398,1
    - Dst: huft_build
      Src: /src/clamav/libclamav/nsis/infblock.c:403,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:418,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:428,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:431,1
    - Dst: LEAVE
      Src: /src/clamav/libclamav/nsis/infblock.c:439,1
    - Dst: min
      Src: /src/clamav/libclamav/nsis/infblock.c:441,1
    - Dst: min
      Src: /src/clamav/libclamav/nsis/infblock.c:442,1
    - Dst: zmemcpy
      Src: /src/clamav/libclamav/nsis/infblock.c:443,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:451,1
    - Dst: LEAVE
      Src: /src/clamav/libclamav/nsis/infblock.c:456,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:459,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:461,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:466,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:468,1
    - Dst: huft_build
      Src: /src/clamav/libclamav/nsis/infblock.c:477,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:487,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:497,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:503,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:518,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:519,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:521,1
    - Dst: LEAVE
      Src: /src/clamav/libclamav/nsis/infblock.c:528,1
    - Dst: huft_build
      Src: /src/clamav/libclamav/nsis/infblock.c:550,1
    - Dst: huft_build
      Src: /src/clamav/libclamav/nsis/infblock.c:555,1
    - Dst: LEAVE
      Src: /src/clamav/libclamav/nsis/infblock.c:560,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:562,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:587,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:589,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:618,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:620,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:628,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:630,1
    - Dst: NEEDBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:648,1
    - Dst: DUMPBITS
      Src: /src/clamav/libclamav/nsis/infblock.c:650,1
    - Dst: LEAVE
      Src: /src/clamav/libclamav/nsis/infblock.c:691,1
    - Dst: Tracev
      Src: /src/clamav/libclamav/nsis/infblock.c:694,1
    - Dst: LEAVE
      Src: /src/clamav/libclamav/nsis/infblock.c:702,1
    - Dst: LEAVE
      Src: /src/clamav/libclamav/nsis/infblock.c:710,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 235
    argCount: 1
    argNames:
    - z
    argTypes:
    - nsis_z_streamp
    constantsTouched: []
    func_position:
      end: 712
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 712
    functionName: nsis_inflate
    functionSourceFile: /src/clamav/libclamav/nsis/infblock.c
    functionUses: 1
    functionsReached:
    - huft_build
    - min
    - Tracev
    - DUMPBITS
    - NEEDBITS
    - zmemcpy
    - LEAVE
    linkageType: ''
    returnType: int
    signature: int nsis_inflate(nsis_z_streamp z)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - DState*
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: makeMaps_d
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void makeMaps_d ( DState* s )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - indx
    - cftab
    argTypes:
    - Int32
    - Int32*
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: indexIntoF
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Int32
    signature: Int32 indexIntoF ( Int32 indx, Int32 *cftab )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZ_GET_FAST_C
      Src: /src/clamav/libclamav/nsis/bzlib.c:244,1
    - Dst: BZ_GET_FAST_C
      Src: /src/clamav/libclamav/nsis/bzlib.c:252,1
    - Dst: BZ_GET_FAST_C
      Src: /src/clamav/libclamav/nsis/bzlib.c:257,1
    - Dst: BZ_GET_FAST_C
      Src: /src/clamav/libclamav/nsis/bzlib.c:261,1
    - Dst: BZ_GET_FAST_C
      Src: /src/clamav/libclamav/nsis/bzlib.c:263,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 1
    argNames:
    - s
    argTypes:
    - DState*
    constantsTouched: []
    func_position:
      end: 285
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 285
    functionName: unRLE_obuf_to_output_FAST
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - BZ_GET_FAST_C
    linkageType: ''
    returnType: Bool
    signature: Bool unRLE_obuf_to_output_FAST ( DState* s )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZ_GET_SMALL
      Src: /src/clamav/libclamav/nsis/bzlib.c:371,1
    - Dst: BZ_GET_SMALL
      Src: /src/clamav/libclamav/nsis/bzlib.c:376,1
    - Dst: BZ_GET_SMALL
      Src: /src/clamav/libclamav/nsis/bzlib.c:381,1
    - Dst: BZ_GET_SMALL
      Src: /src/clamav/libclamav/nsis/bzlib.c:385,1
    - Dst: BZ_GET_SMALL
      Src: /src/clamav/libclamav/nsis/bzlib.c:387,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 1
    argNames:
    - s
    argTypes:
    - DState*
    constantsTouched: []
    func_position:
      end: 391
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 391
    functionName: unRLE_obuf_to_output_SMALL
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - BZ_GET_SMALL
    linkageType: ''
    returnType: Bool
    signature: Bool unRLE_obuf_to_output_SMALL ( DState* s )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 7
    argNames:
    - limit
    - base
    - perm
    - length
    - minLen
    - maxLen
    - alphaSize
    argTypes:
    - Int32*
    - Int32*
    - Int32*
    - UChar*
    - Int32
    - Int32
    - Int32
    constantsTouched: []
    func_position:
      end: 424
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 424
    functionName: CreateDecodeTables
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CreateDecodeTables ( Int32 *limit,\n                                Int32
      *base,\n                                Int32 *perm,\n                                UChar
      *length,\n                                Int32 minLen,\n                                Int32
      maxLen,\n                                Int32 alphaSize )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZALLOC
      Src: /src/clamav/libclamav/nsis/bzlib.c:539,1
    - Dst: BZALLOC
      Src: /src/clamav/libclamav/nsis/bzlib.c:540,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:543,1
    - Dst: BZALLOC
      Src: /src/clamav/libclamav/nsis/bzlib.c:545,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:546,1
    - Dst: GET_UCHAR
      Src: /src/clamav/libclamav/nsis/bzlib.c:549,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:552,1
    - Dst: GET_UCHAR
      Src: /src/clamav/libclamav/nsis/bzlib.c:585,1
    - Dst: GET_UCHAR
      Src: /src/clamav/libclamav/nsis/bzlib.c:587,1
    - Dst: GET_UCHAR
      Src: /src/clamav/libclamav/nsis/bzlib.c:589,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:593,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:595,1
    - Dst: GET_BIT
      Src: /src/clamav/libclamav/nsis/bzlib.c:599,1
    - Dst: GET_BIT
      Src: /src/clamav/libclamav/nsis/bzlib.c:610,1
    - Dst: makeMaps_d
      Src: /src/clamav/libclamav/nsis/bzlib.c:613,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:614,1
    - Dst: GET_BITS
      Src: /src/clamav/libclamav/nsis/bzlib.c:618,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:619,1
    - Dst: GET_BITS
      Src: /src/clamav/libclamav/nsis/bzlib.c:620,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:621,1
    - Dst: GET_BIT
      Src: /src/clamav/libclamav/nsis/bzlib.c:625,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:628,1
    - Dst: GET_BITS
      Src: /src/clamav/libclamav/nsis/bzlib.c:649,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:652,1
    - Dst: GET_BIT
      Src: /src/clamav/libclamav/nsis/bzlib.c:653,1
    - Dst: GET_BIT
      Src: /src/clamav/libclamav/nsis/bzlib.c:655,1
    - Dst: CreateDecodeTables
      Src: /src/clamav/libclamav/nsis/bzlib.c:670,1
    - Dst: GET_MTF_VAL
      Src: /src/clamav/libclamav/nsis/bzlib.c:704,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:721,1
    - Dst: GET_MTF_VAL
      Src: /src/clamav/libclamav/nsis/bzlib.c:725,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:735,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:742,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:752,1
    - Dst: GET_MTF_VAL
      Src: /src/clamav/libclamav/nsis/bzlib.c:814,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:823,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:829,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:838,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:844,1
    - Dst: VPrintf0
      Src: /src/clamav/libclamav/nsis/bzlib.c:852,1
    - Dst: SET_LL
      Src: /src/clamav/libclamav/nsis/bzlib.c:862,1
    - Dst: GET_LL
      Src: /src/clamav/libclamav/nsis/bzlib.c:868,1
    - Dst: GET_LL
      Src: /src/clamav/libclamav/nsis/bzlib.c:870,1
    - Dst: SET_LL
      Src: /src/clamav/libclamav/nsis/bzlib.c:871,1
    - Dst: BZ_GET_SMALL
      Src: /src/clamav/libclamav/nsis/bzlib.c:885,1
    - Dst: BZ_GET_FAST
      Src: /src/clamav/libclamav/nsis/bzlib.c:905,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:910,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:938,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:941,1
    - Dst: RETURN
      Src: /src/clamav/libclamav/nsis/bzlib.c:945,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 367
    argCount: 1
    argNames:
    - s
    argTypes:
    - DState*
    constantsTouched: []
    func_position:
      end: 975
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 975
    functionName: BZ2_decompress
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - GET_UCHAR
    - GET_BITS
    - GET_BIT
    - BZ_GET_FAST
    - makeMaps_d
    - BZALLOC
    - RETURN
    - VPrintf0
    - CreateDecodeTables
    - GET_LL
    - GET_MTF_VAL
    - BZ_GET_SMALL
    - SET_LL
    linkageType: ''
    returnType: Int32
    signature: Int32 BZ2_decompress ( DState* s )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 986
    functionName: bz_config_ok
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bz_config_ok ( void )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/nsis/bzlib.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - void*
    - Int32
    - Int32
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: default_bzalloc
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    linkageType: ''
    returnType: void
    signature: void * default_bzalloc ( void* opaque, Int32 items, Int32 size )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/nsis/bzlib.c:1001,1
    - Dst: free
      Src: /src/clamav/libclamav/nsis/bzlib.c:1002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - opaque
    - addr
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 1003
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1003
    functionName: default_bzfree
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - free
    linkageType: ''
    returnType: void
    signature: void default_bzfree ( void* opaque, void* addr )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bz_config_ok
      Src: /src/clamav/libclamav/nsis/bzlib.c:1013,1
    - Dst: BZALLOC
      Src: /src/clamav/libclamav/nsis/bzlib.c:1022,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - strm
    - verbosity
    - small
    argTypes:
    - nsis_bzstream*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1042
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1042
    functionName: BZ_API
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - BZALLOC
    - bz_config_ok
    linkageType: ''
    returnType: int
    signature: "int BZ_API(nsis_BZ2_bzDecompressInit)\n                     ( nsis_bzstream*
      strm,\n                       int        verbosity,\n                       int
      \       small )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unRLE_obuf_to_output_SMALL
      Src: /src/clamav/libclamav/nsis/bzlib.c:1058,1
    - Dst: unRLE_obuf_to_output_FAST
      Src: /src/clamav/libclamav/nsis/bzlib.c:1059,1
    - Dst: BZ2_decompress
      Src: /src/clamav/libclamav/nsis/bzlib.c:1080,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - strm
    argTypes:
    - nsis_bzstream*
    constantsTouched: []
    func_position:
      end: 1098
      start: 1045
    functionDepth: 2
    functionLinenumber: 1045
    functionLinenumberEnd: 1098
    functionName: BZ_API
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - unRLE_obuf_to_output_SMALL
    - unRLE_obuf_to_output_FAST
    - BZ2_decompress
    linkageType: ''
    returnType: int
    signature: int BZ_API(nsis_BZ2_bzDecompress) ( nsis_bzstream *strm )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BZFREE
      Src: /src/clamav/libclamav/nsis/bzlib.c:1110,1
    - Dst: BZFREE
      Src: /src/clamav/libclamav/nsis/bzlib.c:1111,1
    - Dst: BZFREE
      Src: /src/clamav/libclamav/nsis/bzlib.c:1112,1
    - Dst: BZFREE
      Src: /src/clamav/libclamav/nsis/bzlib.c:1114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - strm
    argTypes:
    - nsis_bzstream*
    constantsTouched: []
    func_position:
      end: 1118
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1118
    functionName: BZ_API
    functionSourceFile: /src/clamav/libclamav/nsis/bzlib.c
    functionUses: 0
    functionsReached:
    - BZFREE
    linkageType: ''
    returnType: int
    signature: int BZ_API(nsis_BZ2_bzDecompressEnd)  ( nsis_bzstream *strm )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/jsparse/textbuf.h:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - txtbuf
    - len
    argTypes:
    - struct text_buffer*
    - size_t
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: textbuffer_ensure_capacity
    functionSourceFile: /src/clamav/libclamav/jsparse/textbuf.h
    functionUses: 1
    functionsReached:
    - cli_max_realloc
    linkageType: ''
    returnType: int
    signature: int textbuffer_ensure_capacity(struct text_buffer *txtbuf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: textbuffer_ensure_capacity
      Src: /src/clamav/libclamav/jsparse/textbuf.h:68,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/jsparse/textbuf.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - txtbuf
    - s
    - len
    argTypes:
    - struct text_buffer*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: textbuffer_append_len
    functionSourceFile: /src/clamav/libclamav/jsparse/textbuf.h
    functionUses: 1
    functionsReached:
    - memcpy
    - textbuffer_ensure_capacity
    linkageType: ''
    returnType: int
    signature: int textbuffer_append_len(struct text_buffer *txtbuf, const char *s,
      size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: textbuffer_append_len
      Src: /src/clamav/libclamav/jsparse/textbuf.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - txtbuf
    - s
    argTypes:
    - struct text_buffer*
    - char*
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: textbuffer_append
    functionSourceFile: /src/clamav/libclamav/jsparse/textbuf.h
    functionUses: 1
    functionsReached:
    - textbuffer_append_len
    linkageType: ''
    returnType: int
    signature: int textbuffer_append(struct text_buffer *txtbuf, const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: textbuffer_ensure_capacity
      Src: /src/clamav/libclamav/jsparse/textbuf.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - txtbuf
    - c
    argTypes:
    - struct text_buffer*
    - char
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: textbuffer_putc
    functionSourceFile: /src/clamav/libclamav/jsparse/textbuf.h
    functionUses: 6
    functionsReached:
    - textbuffer_ensure_capacity
    linkageType: ''
    returnType: int
    signature: int textbuffer_putc(struct text_buffer *txtbuf, const char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - orig
    - req
    argTypes:
    - enum val_type
    - enum val_type
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: vtype_compatible
    functionSourceFile: /src/clamav/libclamav/jsparse/lexglobal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vtype_compatible(enum val_type orig, enum val_type req)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:120,1
    - Dst: cli_hashtab_init
      Src: /src/clamav/libclamav/jsparse/js-norm.c:123,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct parser_state*
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: scope_new
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - cli_hashtab_init
    linkageType: ''
    returnType: struct scope
    signature: struct scope *scope_new(struct parser_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_clear
      Src: /src/clamav/libclamav/jsparse/js-norm.c:139,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:140,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct scope*
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: scope_done
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - free
    - cli_hashtab_clear
    linkageType: ''
    returnType: struct scope
    signature: struct scope *scope_done(struct scope *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_insert
      Src: /src/clamav/libclamav/jsparse/js-norm.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - token
    - len
    - state
    argTypes:
    - struct scope*
    - char*
    - size_t
    - struct parser_state*
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: scope_declare
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - cli_hashtab_insert
    linkageType: ''
    returnType: char
    signature: char *scope_declare(struct scope *s, const char *token, const size_t
      len, struct parser_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/jsparse/js-norm.c:257,1
    - Dst: cli_hashtab_insert
      Src: /src/clamav/libclamav/jsparse/js-norm.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - token
    - len
    argTypes:
    - struct scope*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: scope_use
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - cli_hashtab_insert
    - cli_hashtab_find
    linkageType: ''
    returnType: char
    signature: char *scope_use(struct scope *s, const char *token, const size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hashtab_find
      Src: /src/clamav/libclamav/jsparse/js-norm.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s
    - token
    - len
    argTypes:
    - struct scope*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: scope_lookup
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - cli_hashtab_find
    linkageType: ''
    returnType: size_t
    signature: size_t scope_lookup(struct scope *s, const char *token, const size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tokens
    - cap
    argTypes:
    - struct tokens*
    - size_t
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: tokens_ensure_capacity
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - cli_max_realloc
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t tokens_ensure_capacity(struct tokens *tokens, size_t cap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokens_ensure_capacity
      Src: /src/clamav/libclamav/jsparse/js-norm.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - state
    - token
    argTypes:
    - struct parser_state*
    - yystype*
    constantsTouched: []
    func_position:
      end: 305
      start: 299
    functionDepth: 4
    functionLinenumber: 299
    functionLinenumberEnd: 305
    functionName: add_token
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - tokens_ensure_capacity
    linkageType: ''
    returnType: int
    signature: int add_token(struct parser_state *state, const yystype *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/clamav/libclamav/jsparse/js-norm.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - buf
    argTypes:
    - char
    - struct buf*
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: buf_outc
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t buf_outc(char c, struct buf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/clamav/libclamav/jsparse/js-norm.c:332,1
    - Dst: tolower
      Src: /src/clamav/libclamav/jsparse/js-norm.c:335,1
    - Dst: write
      Src: /src/clamav/libclamav/jsparse/js-norm.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - char*
    - struct buf*
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: buf_outs
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - tolower
    - write
    - isspace
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t buf_outs(const char *s, struct buf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/clamav/libclamav/jsparse/js-norm.c:350,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/jsparse/js-norm.c:350,1
    - Dst: buf_outc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - last
    - current
    - out
    argTypes:
    - char
    - char
    - struct buf*
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: output_space
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - isalnum
    - buf_outc
    linkageType: ''
    returnType: void
    signature: void output_space(char last, char current, struct buf *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: output_space
      Src: /src/clamav/libclamav/jsparse/js-norm.c:362,1
    - Dst: buf_outc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:363,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:365,1
    - Dst: buf_outc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:367,1
    - Dst: output_space
      Src: /src/clamav/libclamav/jsparse/js-norm.c:370,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/jsparse/js-norm.c:371,1
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:371,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:372,1
    - Dst: output_space
      Src: /src/clamav/libclamav/jsparse/js-norm.c:375,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/jsparse/js-norm.c:376,1
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:376,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:377,1
    - Dst: output_space
      Src: /src/clamav/libclamav/jsparse/js-norm.c:380,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:385,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/jsparse/js-norm.c:387,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:388,1
    - Dst: output_space
      Src: /src/clamav/libclamav/jsparse/js-norm.c:393,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:394,1
    - Dst: output_space
      Src: /src/clamav/libclamav/jsparse/js-norm.c:399,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:400,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 4
    argNames:
    - token
    - scope
    - out
    - lastchar
    argTypes:
    - yystype*
    - struct scope*
    - struct buf*
    - char
    constantsTouched: []
    func_position:
      end: 405
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 405
    functionName: output_token
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - snprintf
    - TOKEN_GET
    - buf_outc
    - output_space
    - buf_outs
    linkageType: ''
    returnType: char
    signature: char output_token(const yystype *token, struct scope *scope, struct
      buf *out, char lastchar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scope_done
      Src: /src/clamav/libclamav/jsparse/js-norm.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct scope*
    constantsTouched: []
    func_position:
      end: 469
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 469
    functionName: scope_free_all
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - scope_done
    linkageType: ''
    returnType: void
    signature: void scope_free_all(struct scope *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/jsparse/js-norm.c:499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - tokens
    - num_tokens
    - param_names
    - num_param_names
    argTypes:
    - yystype*
    - size_t
    - char**
    - size_t
    constantsTouched: []
    func_position:
      end: 512
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 512
    functionName: match_parameters
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int match_parameters(const yystype *tokens, size_t num_tokens, const
      char **param_names, size_t num_param_names)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - scanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 527
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 527
    functionName: textbuffer_done
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: char
    signature: char *textbuffer_done(yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - token
    argTypes:
    - yystype*
    constantsTouched: []
    func_position:
      end: 539
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 539
    functionName: free_token
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_token(yystype *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:545,1
    - Dst: free_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:550,1
    - Dst: tokens_ensure_capacity
      Src: /src/clamav/libclamav/jsparse/js-norm.c:552,1
    - Dst: memmove
      Src: /src/clamav/libclamav/jsparse/js-norm.c:554,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/jsparse/js-norm.c:556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - dst
    - start
    - end
    - with
    argTypes:
    - struct tokens*
    - size_t
    - size_t
    - struct tokens*
    constantsTouched: []
    func_position:
      end: 560
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 560
    functionName: replace_token_range
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - free_token
    - tokens_ensure_capacity
    - cli_dbgmsg
    - memcpy
    - memmove
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t replace_token_range(struct tokens *dst, size_t start, size_t
      end, const struct tokens *with)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokens_ensure_capacity
      Src: /src/clamav/libclamav/jsparse/js-norm.c:566,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:568,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/jsparse/js-norm.c:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct tokens*
    - struct tokens*
    constantsTouched: []
    func_position:
      end: 572
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 572
    functionName: append_tokens
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cli_dbgmsg
    - tokens_ensure_capacity
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t append_tokens(struct tokens *dst, const struct tokens *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:592,1
    - Dst: cli_strtokenize
      Src: /src/clamav/libclamav/jsparse/js-norm.c:596,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/jsparse/js-norm.c:599,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:603,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/jsparse/js-norm.c:608,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:622,1
    - Dst: textbuffer_append
      Src: /src/clamav/libclamav/jsparse/js-norm.c:624,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:626,1
    - Dst: textbuffer_append
      Src: /src/clamav/libclamav/jsparse/js-norm.c:627,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 2
    argNames:
    - params
    - txtbuf
    argTypes:
    - yystype*[]
    - struct text_buffer*
    constantsTouched: []
    func_position:
      end: 628
      start: 574
    functionDepth: 6
    functionLinenumber: 574
    functionLinenumberEnd: 628
    functionName: decode_de
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - isalnum
    - textbuffer_putc
    - cli_strtokenize
    - textbuffer_append
    - malloc
    - free
    linkageType: ''
    returnType: void
    signature: void decode_de(yystype *params[], struct text_buffer *txtbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:649,1
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:659,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/jsparse/js-norm.c:666,1
    - Dst: decode_de
      Src: /src/clamav/libclamav/jsparse/js-norm.c:684,1
    - Dst: decode_de
      Src: /src/clamav/libclamav/jsparse/js-norm.c:707,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 68
    argCount: 5
    argNames:
    - tokens
    - start
    - cnt
    - name
    - res
    argTypes:
    - yystype*
    - size_t
    - size_t
    - char*
    - struct decode_result*
    constantsTouched: []
    func_position:
      end: 723
      start: 638
    functionDepth: 7
    functionLinenumber: 638
    functionLinenumberEnd: 723
    functionName: handle_de
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - decode_de
    - memset
    - strcmp
    - TOKEN_GET
    linkageType: ''
    returnType: void
    signature: void handle_de(yystype *tokens, size_t start, const size_t cnt, const
      char *name, struct decode_result *res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_unescape
      Src: /src/clamav/libclamav/jsparse/js-norm.c:734,1
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:734,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:736,1
    - Dst: replace_token_range
      Src: /src/clamav/libclamav/jsparse/js-norm.c:739,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:742,1
    - Dst: free_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - tokens
    - start
    argTypes:
    - struct tokens*
    - size_t
    constantsTouched: []
    func_position:
      end: 752
      start: 725
    functionDepth: 5
    functionLinenumber: 725
    functionLinenumberEnd: 752
    functionName: handle_unescape
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - TOKEN_SET
    - TOKEN_GET
    - free_token
    - cli_unescape
    - cli_dbgmsg
    - replace_token_range
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t handle_unescape(struct tokens *tokens, size_t start)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:764,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jsparse/js-norm.c:767,1
    - Dst: cli_unescape
      Src: /src/clamav/libclamav/jsparse/js-norm.c:773,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jsparse/js-norm.c:774,1
    - Dst: cli_unescape
      Src: /src/clamav/libclamav/jsparse/js-norm.c:778,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:779,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jsparse/js-norm.c:783,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - tokens
    - start
    - res
    argTypes:
    - yystype*
    - size_t
    - struct decode_result*
    constantsTouched: []
    func_position:
      end: 785
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 785
    functionName: handle_df
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - strlen
    - free
    - cli_unescape
    - TOKEN_GET
    linkageType: ''
    returnType: void
    signature: void handle_df(const yystype *tokens, size_t start, struct decode_result
      *res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:789,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:795,1
    - Dst: strlen
      Src: /src/clamav/libclamav/jsparse/js-norm.c:796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - tokens
    - start
    - res
    argTypes:
    - struct tokens*
    - size_t
    - struct decode_result*
    constantsTouched: []
    func_position:
      end: 800
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 800
    functionName: handle_eval
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - strlen
    - TOKEN_SET
    - TOKEN_GET
    linkageType: ''
    returnType: void
    signature: void handle_eval(struct tokens *tokens, size_t start, struct decode_result
      *res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/jsparse/js-norm.c:810,1
    - Dst: handle_unescape
      Src: /src/clamav/libclamav/jsparse/js-norm.c:812,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - struct tokens*
    constantsTouched: []
    func_position:
      end: 815
      start: 802
    functionDepth: 6
    functionLinenumber: 802
    functionLinenumberEnd: 815
    functionName: run_folders
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - handle_unescape
    - strcmp
    linkageType: ''
    returnType: void
    signature: void run_folders(struct tokens *tokens)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - state
    - token
    argTypes:
    - struct parser_state*
    - yystype*
    constantsTouched: []
    func_position:
      end: 832
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 832
    functionName: state_update_scope
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - TOKEN_GET
    linkageType: ''
    returnType: int
    signature: int state_update_scope(struct parser_state *state, const yystype *token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:843,1
    - Dst: TOKEN_GET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:850,1
    - Dst: match_parameters
      Src: /src/clamav/libclamav/jsparse/js-norm.c:854,1
    - Dst: match_parameters
      Src: /src/clamav/libclamav/jsparse/js-norm.c:855,1
    - Dst: handle_de
      Src: /src/clamav/libclamav/jsparse/js-norm.c:857,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/jsparse/js-norm.c:861,1
    - Dst: handle_df
      Src: /src/clamav/libclamav/jsparse/js-norm.c:865,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/jsparse/js-norm.c:868,1
    - Dst: handle_eval
      Src: /src/clamav/libclamav/jsparse/js-norm.c:869,1
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:877,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:879,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/libclamav/jsparse/js-norm.c:881,1
    - Dst: CLI_FREE_AND_SET_NULL
      Src: /src/clamav/libclamav/jsparse/js-norm.c:884,1
    - Dst: replace_token_range
      Src: /src/clamav/libclamav/jsparse/js-norm.c:887,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:889,1
    - Dst: free_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:892,1
    - Dst: replace_token_range
      Src: /src/clamav/libclamav/jsparse/js-norm.c:897,1
    - Dst: append_tokens
      Src: /src/clamav/libclamav/jsparse/js-norm.c:898,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:901,1
    - Dst: state_update_scope
      Src: /src/clamav/libclamav/jsparse/js-norm.c:904,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct parser_state*
    constantsTouched: []
    func_position:
      end: 906
      start: 834
    functionDepth: 8
    functionLinenumber: 834
    functionLinenumberEnd: 906
    functionName: run_decoders
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - append_tokens
    - memset
    - strcmp
    - match_parameters
    - TOKEN_GET
    - free_token
    - handle_eval
    - state_update_scope
    - cli_dbgmsg
    - cli_js_process_buffer
    - handle_de
    - handle_df
    - replace_token_range
    - CLI_FREE_AND_SET_NULL
    - free
    linkageType: ''
    returnType: void
    signature: void run_decoders(struct parser_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:915,1
    - Dst: cli_js_process_buffer
      Src: /src/clamav/libclamav/jsparse/js-norm.c:928,1
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:937,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:939,1
    - Dst: add_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:941,1
    - Dst: run_folders
      Src: /src/clamav/libclamav/jsparse/js-norm.c:947,1
    - Dst: run_decoders
      Src: /src/clamav/libclamav/jsparse/js-norm.c:948,1
    - Dst: yylex_destroy
      Src: /src/clamav/libclamav/jsparse/js-norm.c:950,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct parser_state*
    constantsTouched: []
    func_position:
      end: 952
      start: 908
    functionDepth: 9
    functionLinenumber: 908
    functionLinenumberEnd: 952
    functionName: cli_js_parse_done
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 5
    functionsReached:
    - memset
    - add_token
    - TOKEN_SET
    - yylex_destroy
    - run_folders
    - cli_js_process_buffer
    - cli_dbgmsg
    - run_decoders
    linkageType: ''
    returnType: void
    signature: void cli_js_parse_done(struct parser_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/libclamav/jsparse/js-norm.c:961,1
    - Dst: open
      Src: /src/clamav/libclamav/jsparse/js-norm.c:964,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:966,1
    - Dst: lseek
      Src: /src/clamav/libclamav/jsparse/js-norm.c:970,1
    - Dst: buf_outc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:972,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:974,1
    - Dst: state_update_scope
      Src: /src/clamav/libclamav/jsparse/js-norm.c:977,1
    - Dst: output_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:978,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/jsparse/js-norm.c:981,1
    - Dst: buf_outs
      Src: /src/clamav/libclamav/jsparse/js-norm.c:982,1
    - Dst: write
      Src: /src/clamav/libclamav/jsparse/js-norm.c:983,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:984,1
    - Dst: close
      Src: /src/clamav/libclamav/jsparse/js-norm.c:986,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:987,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - state
    - tempdir
    argTypes:
    - struct parser_state*
    - char*
    constantsTouched: []
    func_position:
      end: 988
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 988
    functionName: cli_js_output
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 4
    functionsReached:
    - lseek
    - close
    - snprintf
    - buf_outc
    - open
    - output_token
    - write
    - state_update_scope
    - cli_dbgmsg
    - buf_outs
    - memcmp
    - cli_errmsg
    linkageType: ''
    returnType: void
    signature: void cli_js_output(struct parser_state *state, const char *tempdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scope_free_all
      Src: /src/clamav/libclamav/jsparse/js-norm.c:995,1
    - Dst: free_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:997,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:999,1
    - Dst: yylex_destroy
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1002,1
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1003,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1004,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct parser_state*
    constantsTouched: []
    func_position:
      end: 1006
      start: 990
    functionDepth: 4
    functionLinenumber: 990
    functionLinenumberEnd: 1006
    functionName: cli_js_destroy
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 7
    functionsReached:
    - memset
    - yylex_destroy
    - free_token
    - scope_free_all
    - cli_dbgmsg
    - free
    linkageType: ''
    returnType: void
    signature: void cli_js_destroy(struct parser_state *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1023,1
    - Dst: yy_scan_bytes
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1027,1
    - Dst: yylex
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1032,1
    - Dst: yyget_text
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1042,1
    - Dst: yyget_leng
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1043,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1047,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1047,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1056,1
    - Dst: scope_use
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1056,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1060,1
    - Dst: scope_declare
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1060,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1065,1
    - Dst: scope_declare
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1065,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1127,1
    - Dst: add_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1128,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1129,1
    - Dst: scope_new
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1166,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1168,1
    - Dst: yyget_text
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1178,1
    - Dst: yyget_leng
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1179,1
    - Dst: free_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1182,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1184,1
    - Dst: strncpy
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1187,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1189,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1190,1
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1191,1
    - Dst: yyget_text
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1199,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1200,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1200,1
    - Dst: abort
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1201,1
    - Dst: add_token
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1203,1
    - Dst: memset
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1205,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 146
    argCount: 3
    argNames:
    - state
    - buf
    - n
    argTypes:
    - struct parser_state*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1208
      start: 1014
    functionDepth: 5
    functionLinenumber: 1014
    functionLinenumberEnd: 1208
    functionName: cli_js_process_buffer
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 6
    functionsReached:
    - scope_declare
    - yyget_leng
    - TOKEN_SET
    - add_token
    - memset
    - cli_warnmsg
    - free_token
    - strncpy
    - abort
    - yylex
    - scope_new
    - yy_scan_bytes
    - scope_use
    - cli_max_realloc
    - yyget_text
    - cli_safer_strdup
    - free
    linkageType: ''
    returnType: void
    signature: void cli_js_process_buffer(struct parser_state *state, const char *buf,
      size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1212,1
    - Dst: scope_new
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1215,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1216,1
    - Dst: yylex_init
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1221,1
    - Dst: scope_done
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1222,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1223,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1210
    functionDepth: 4
    functionLinenumber: 1210
    functionLinenumberEnd: 1228
    functionName: cli_js_init
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 5
    functionsReached:
    - calloc
    - yylex_init
    - scope_new
    - cli_dbgmsg
    - scope_done
    - free
    linkageType: ''
    returnType: struct parser_state
    signature: struct parser_state *cli_js_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct text_buffer*
    constantsTouched: []
    func_position:
      end: 1562
      start: 1553
    functionDepth: 0
    functionLinenumber: 1553
    functionLinenumberEnd: 1562
    functionName: textbuf_clean
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void textbuf_clean(struct text_buffer *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1572,1
    - Dst: cli_textbuffer_append_normalize
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1583,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1588,1
    - Dst: textbuffer_done
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1589,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1591,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1593,1
    - Dst: assert
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1596,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - lvalp
    - scanner
    - q
    - tostate
    argTypes:
    - YYSTYPE*
    - yyscan_t
    - char
    - enum tokenizer_state
    constantsTouched: []
    func_position:
      end: 1604
      start: 1564
    functionDepth: 5
    functionLinenumber: 1564
    functionLinenumberEnd: 1604
    functionName: parseString
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - TOKEN_SET
    - memchr
    - cli_textbuffer_append_normalize
    - textbuffer_done
    - textbuffer_putc
    - assert
    linkageType: ''
    returnType: int
    signature: "int parseString(YYSTYPE *lvalp, yyscan_t scanner, const char q,\n
      \                             enum tokenizer_state tostate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parseString
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lvalp
    - scanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1609
      start: 1606
    functionDepth: 6
    functionLinenumber: 1606
    functionLinenumberEnd: 1609
    functionName: parseDQString
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - parseString
    linkageType: ''
    returnType: int
    signature: int parseDQString(YYSTYPE *lvalp, yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parseString
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lvalp
    - scanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1614
      start: 1611
    functionDepth: 6
    functionLinenumber: 1611
    functionLinenumberEnd: 1614
    functionName: parseSQString
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - parseString
    linkageType: ''
    returnType: int
    signature: int parseSQString(YYSTYPE *lvalp, yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1622,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1623,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1628,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1632,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1635,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1636,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1642,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1647,1
    - Dst: atof
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1647,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1650,1
    - Dst: atoi
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1650,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - lvalp
    - scanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1656
      start: 1616
    functionDepth: 5
    functionLinenumber: 1616
    functionLinenumberEnd: 1656
    functionName: parseNumber
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - TOKEN_SET
    - atof
    - textbuffer_putc
    - atoi
    - isdigit
    linkageType: ''
    returnType: int
    signature: int parseNumber(YYSTYPE *lvalp, yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1668,1
    - Dst: assert
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1672,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1675,1
    - Dst: textbuffer_putc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1685,1
    - Dst: in_word_set
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1687,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1690,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1694,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - lvalp
    - scanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1700
      start: 1658
    functionDepth: 5
    functionLinenumber: 1658
    functionLinenumberEnd: 1700
    functionName: parseId
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - textbuffer_putc
    - in_word_set
    - assert
    - TOKEN_SET
    linkageType: ''
    returnType: int
    signature: int parseId(YYSTYPE *lvalp, yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_op_set
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1706,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1708,1
    - Dst: assert
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1715,1
    - Dst: TOKEN_SET
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - lvalp
    - scanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1719
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1719
    functionName: parseOperator
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 0
    functionsReached:
    - TOKEN_SET
    - assert
    - in_op_set
    linkageType: ''
    returnType: int
    signature: int parseOperator(YYSTYPE *lvalp, yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - scanner
    argTypes:
    - yyscan_t*
    constantsTouched: []
    func_position:
      end: 1725
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1725
    functionName: yylex_init
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 3
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int yylex_init(yyscan_t *scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1729,1
    - Dst: free
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - scanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1732
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1732
    functionName: yylex_destroy
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int yylex_destroy(yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p
    - len
    - scanner
    argTypes:
    - char*
    - size_t
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1742
      start: 1734
    functionDepth: 0
    functionLinenumber: 1734
    functionLinenumberEnd: 1742
    functionName: yy_scan_bytes
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_scan_bytes(const char *p, size_t len, yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1747
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1747
    functionName: yyget_text
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *yyget_text(yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scanner
    argTypes:
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1753
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 1753
    functionName: yyget_leng
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_leng(yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1766,1
    - Dst: textbuf_clean
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1777,1
    - Dst: parseOperator
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1798,1
    - Dst: parseOperator
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1801,1
    - Dst: parseDQString
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1803,1
    - Dst: parseSQString
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1805,1
    - Dst: parseNumber
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1808,1
    - Dst: parseId
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1811,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1812,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1813,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1814,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1815,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1816,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1817,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1818,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1819,1
    - Dst: CASE_SPECIAL_CHAR
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1820,1
    - Dst: parseString
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1826,1
    - Dst: parseString
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1828,1
    - Dst: parseId
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1830,1
    - Dst: parseNumber
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1843,1
    - Dst: assert
      Src: /src/clamav/libclamav/jsparse/js-norm.c:1855,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 93
    argCount: 2
    argNames:
    - lvalp
    - scanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    constantsTouched: []
    func_position:
      end: 1859
      start: 1755
    functionDepth: 7
    functionLinenumber: 1755
    functionLinenumberEnd: 1859
    functionName: yylex
    functionSourceFile: /src/clamav/libclamav/jsparse/js-norm.c
    functionUses: 2
    functionsReached:
    - parseId
    - parseSQString
    - parseNumber
    - textbuf_clean
    - parseDQString
    - cli_dbgmsg
    - parseOperator
    - parseString
    - assert
    - CASE_SPECIAL_CHAR
    linkageType: ''
    returnType: int
    signature: int yylex(YYSTYPE *lvalp, yyscan_t scanner)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 78
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 78
    functionName: op_hash
    functionSourceFile: /src/clamav/libclamav/jsparse/generated/operators.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int op_hash (const char *str, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/jsparse/generated/operators.h:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 186
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 186
    functionName: in_op_set
    functionSourceFile: /src/clamav/libclamav/jsparse/generated/operators.h
    functionUses: 2
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: __GNUC_STDC_INLINE__
    signature: '__GNUC_STDC_INLINE__ *

      in_op_set (const char *str, unsigned int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: hash
    functionSourceFile: /src/clamav/libclamav/jsparse/generated/keywords.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash (const char *str, unsigned int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/jsparse/generated/keywords.h:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 194
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 194
    functionName: in_word_set
    functionSourceFile: /src/clamav/libclamav/jsparse/generated/keywords.h
    functionUses: 2
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: __GNUC_STDC_INLINE__
    signature: '__GNUC_STDC_INLINE__ *

      in_word_set (const char *str, unsigned int len)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzFile*
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: File_Construct
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void File_Construct(CSzFile *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileA
      Src: /src/clamav/libclamav/7z/7zFile.c:41,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/7z/7zFile.c:46,1
    - Dst: fopen
      Src: /src/clamav/libclamav/7z/7zFile.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - p
    - name
    - writeMode
    argTypes:
    - CSzFile*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: File_Open
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - fopen
    - CreateFileA
    - GetLastError
    linkageType: ''
    returnType: WRes
    signature: WRes File_Open(CSzFile *p, const char *name, int writeMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_Open
      Src: /src/clamav/libclamav/7z/7zFile.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - name
    argTypes:
    - CSzFile*
    - char*
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: InFile_Open
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_Open
    linkageType: ''
    returnType: WRes
    signature: WRes InFile_Open(CSzFile *p, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_Open
      Src: /src/clamav/libclamav/7z/7zFile.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - name
    argTypes:
    - CSzFile*
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: OutFile_Open
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_Open
    linkageType: ''
    returnType: WRes
    signature: WRes OutFile_Open(CSzFile *p, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/clamav/libclamav/7z/7zFile.c:65,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/7z/7zFile.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - name
    - writeMode
    argTypes:
    - CSzFile*
    - WCHAR*
    - int
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: File_OpenW
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - CreateFileW
    - GetLastError
    linkageType: ''
    returnType: WRes
    signature: WRes File_OpenW(CSzFile *p, const WCHAR *name, int writeMode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_OpenW
      Src: /src/clamav/libclamav/7z/7zFile.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - name
    argTypes:
    - CSzFile*
    - WCHAR*
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: InFile_OpenW
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_OpenW
    linkageType: ''
    returnType: WRes
    signature: WRes InFile_OpenW(CSzFile *p, const WCHAR *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_OpenW
      Src: /src/clamav/libclamav/7z/7zFile.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - name
    argTypes:
    - CSzFile*
    - WCHAR*
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: OutFile_OpenW
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_OpenW
    linkageType: ''
    returnType: WRes
    signature: WRes OutFile_OpenW(CSzFile *p, const WCHAR *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/clamav/libclamav/7z/7zFile.c:81,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/7z/7zFile.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzFile*
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: File_Close
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - CloseHandle
    - GetLastError
    linkageType: ''
    returnType: WRes
    signature: WRes File_Close(CSzFile *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/clamav/libclamav/7z/7zFile.c:110,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/7z/7zFile.c:115,1
    - Dst: fread
      Src: /src/clamav/libclamav/7z/7zFile.c:124,1
    - Dst: ferror
      Src: /src/clamav/libclamav/7z/7zFile.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - p
    - data
    - size
    argTypes:
    - CSzFile*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 130
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 130
    functionName: File_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - ferror
    - fread
    - ReadFile
    - GetLastError
    linkageType: ''
    returnType: WRes
    signature: WRes File_Read(CSzFile *p, void *data, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WriteFile
      Src: /src/clamav/libclamav/7z/7zFile.c:145,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/7z/7zFile.c:150,1
    - Dst: fwrite
      Src: /src/clamav/libclamav/7z/7zFile.c:159,1
    - Dst: ferror
      Src: /src/clamav/libclamav/7z/7zFile.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - p
    - data
    - size
    argTypes:
    - CSzFile*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 165
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 165
    functionName: File_Write
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - WriteFile
    - fwrite
    - ferror
    - GetLastError
    linkageType: ''
    returnType: WRes
    signature: WRes File_Write(CSzFile *p, const void *data, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetFilePointer
      Src: /src/clamav/libclamav/7z/7zFile.c:182,1
    - Dst: GetLastError
      Src: /src/clamav/libclamav/7z/7zFile.c:185,1
    - Dst: fseek
      Src: /src/clamav/libclamav/7z/7zFile.c:203,1
    - Dst: ftell
      Src: /src/clamav/libclamav/7z/7zFile.c:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - p
    - pos
    - origin
    argTypes:
    - CSzFile*
    - Int64*
    - ESzSeek
    constantsTouched: []
    func_position:
      end: 208
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 208
    functionName: File_Seek
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - fseek
    - ftell
    - SetFilePointer
    - GetLastError
    linkageType: ''
    returnType: WRes
    signature: WRes File_Seek(CSzFile *p, Int64 *pos, ESzSeek origin)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_Read
      Src: /src/clamav/libclamav/7z/7zFile.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: FileSeqInStream_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_Read
    linkageType: ''
    returnType: SRes
    signature: SRes FileSeqInStream_Read(void *pp, void *buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CFileSeqInStream*
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: FileSeqInStream_CreateVTable
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileSeqInStream_CreateVTable(CFileSeqInStream *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_Read
      Src: /src/clamav/libclamav/7z/7zFile.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: FileInStream_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_Read
    linkageType: ''
    returnType: SRes
    signature: SRes FileInStream_Read(void *pp, void *buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_Seek
      Src: /src/clamav/libclamav/7z/7zFile.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pp
    - pos
    - origin
    argTypes:
    - void*
    - Int64*
    - ESzSeek
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: FileInStream_Seek
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_Seek
    linkageType: ''
    returnType: SRes
    signature: SRes FileInStream_Seek(void *pp, Int64 *pos, ESzSeek origin)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - CFileInStream*
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: FileInStream_CreateVTable
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileInStream_CreateVTable(CFileInStream *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File_Write
      Src: /src/clamav/libclamav/7z/7zFile.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pp
    - data
    - size
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: FileOutStream_Write
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached:
    - File_Write
    linkageType: ''
    returnType: size_t
    signature: size_t FileOutStream_Write(void *pp, const void *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CFileOutStream*
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: FileOutStream_CreateVTable
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FileOutStream_CreateVTable(CFileOutStream *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC_UPDATE_BYTE_2
      Src: /src/clamav/libclamav/7z/7zCrc.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v
    - data
    - size
    argTypes:
    - UInt32
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: MY_FAST_CALL::CrcUpdate
    functionSourceFile: /src/clamav/libclamav/7z/7zCrc.c
    functionUses: 0
    functionsReached:
    - CRC_UPDATE_BYTE_2
    linkageType: ''
    returnType: UInt32
    signature: UInt32 MY_FAST_CALL CrcUpdate(UInt32 v, const void *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MY_FAST_CALL::CrcUpdate
      Src: /src/clamav/libclamav/7z/7zCrc.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: MY_FAST_CALL::CrcCalc
    functionSourceFile: /src/clamav/libclamav/7z/7zCrc.c
    functionUses: 0
    functionsReached:
    - MY_FAST_CALL::CrcUpdate
    linkageType: ''
    returnType: UInt32
    signature: UInt32 MY_FAST_CALL CrcCalc(const void *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - CBuf*
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: Buf_Init
    functionSourceFile: /src/clamav/libclamav/7z/7zBuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Buf_Init(CBuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/7zBuf.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - p
    - size
    - alloc
    argTypes:
    - CBuf*
    - size_t
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 29
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 29
    functionName: Buf_Create
    functionSourceFile: /src/clamav/libclamav/7z/7zBuf.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Alloc
    linkageType: ''
    returnType: int
    signature: int Buf_Create(CBuf *p, size_t size, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/7zBuf.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CBuf*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: Buf_Free
    functionSourceFile: /src/clamav/libclamav/7z/7zBuf.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void Buf_Free(CBuf *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - p
    - maxSize
    - value
    argTypes:
    - Byte*
    - size_t
    - UInt64*
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: Xz_ReadVarInt
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned Xz_ReadVarInt(const Byte *p, size_t maxSize, UInt64 *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/XzDec.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pp
    - alloc
    argTypes:
    - void*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: BraState_Free
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void BraState_Free(void *pp, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/7z/XzDec.c:85,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzDec.c:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - pp
    - props
    - propSize
    - alloc
    argTypes:
    - void*
    - Byte*
    - size_t
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 122
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 122
    functionName: BraState_SetProps
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - GetUi32
    linkageType: ''
    returnType: SRes
    signature: SRes BraState_SetProps(void *pp, const Byte *props, size_t propSize,
      ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86_Convert_Init
      Src: /src/clamav/libclamav/7z/XzDec.c:128,1
    - Dst: Delta_Init
      Src: /src/clamav/libclamav/7z/XzDec.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: BraState_Init
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - x86_Convert_Init
    - Delta_Init
    linkageType: ''
    returnType: void
    signature: void BraState_Init(void *pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/7z/XzDec.c:141,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/XzDec.c:152,1
    - Dst: memmove
      Src: /src/clamav/libclamav/7z/XzDec.c:160,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/XzDec.c:167,1
    - Dst: Delta_Encode
      Src: /src/clamav/libclamav/7z/XzDec.c:179,1
    - Dst: Delta_Decode
      Src: /src/clamav/libclamav/7z/XzDec.c:181,1
    - Dst: x86_Convert
      Src: /src/clamav/libclamav/7z/XzDec.c:185,1
    - Dst: CASE_BRA_CONV
      Src: /src/clamav/libclamav/7z/XzDec.c:187,1
    - Dst: CASE_BRA_CONV
      Src: /src/clamav/libclamav/7z/XzDec.c:188,1
    - Dst: CASE_BRA_CONV
      Src: /src/clamav/libclamav/7z/XzDec.c:189,1
    - Dst: CASE_BRA_CONV
      Src: /src/clamav/libclamav/7z/XzDec.c:190,1
    - Dst: CASE_BRA_CONV
      Src: /src/clamav/libclamav/7z/XzDec.c:191,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 8
    argNames:
    - pp
    - dest
    - destLen
    - src
    - srcLen
    - srcWasFinished
    - finishMode
    - wasFinished
    argTypes:
    - void*
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - int
    - ECoderFinishMode
    - int*
    constantsTouched: []
    func_position:
      end: 207
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 207
    functionName: BraState_Code
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - Delta_Encode
    - x86_Convert
    - UNUSEDPARAM
    - CASE_BRA_CONV
    - memcpy
    - Delta_Decode
    - memmove
    linkageType: ''
    returnType: SRes
    signature: "SRes BraState_Code(void *pp, Byte *dest, SizeT *destLen, const Byte
      *src, SizeT *srcLen,\n    int srcWasFinished, ECoderFinishMode finishMode, int
      *wasFinished)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/XzDec.c:221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - p
    - id
    - alloc
    argTypes:
    - IStateCoder*
    - UInt64
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: BraState_SetFromMethod
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Alloc
    linkageType: ''
    returnType: SRes
    signature: SRes BraState_SetFromMethod(IStateCoder *p, UInt64 id, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubblockDec_Free
      Src: /src/clamav/libclamav/7z/XzDec.c:240,1
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/XzDec.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - alloc
    argTypes:
    - void*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: SbState_Free
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - SubblockDec_Free
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void SbState_Free(void *pp, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - pp
    - props
    - propSize
    - alloc
    argTypes:
    - void*
    - Byte*
    - size_t
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: SbState_SetProps
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SRes
    signature: SRes SbState_SetProps(void *pp, const Byte *props, size_t propSize,
      ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubblockDec_Init
      Src: /src/clamav/libclamav/7z/XzDec.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: SbState_Init
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - SubblockDec_Init
    linkageType: ''
    returnType: void
    signature: void SbState_Init(void *pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubblockDec_Decode
      Src: /src/clamav/libclamav/7z/XzDec.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - pp
    - dest
    - destLen
    - src
    - srcLen
    - srcWasFinished
    - finishMode
    - wasFinished
    argTypes:
    - void*
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - int
    - ECoderFinishMode
    - int*
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: SbState_Code
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - SubblockDec_Decode
    linkageType: ''
    returnType: SRes
    signature: "SRes SbState_Code(void *pp, Byte *dest, SizeT *destLen, const Byte
      *src, SizeT *srcLen,\n    int srcWasFinished, ECoderFinishMode finishMode, int
      *wasFinished)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/XzDec.c:271,1
    - Dst: SubblockDec_Construct
      Src: /src/clamav/libclamav/7z/XzDec.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - IStateCoder*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: SbState_SetFromMethod
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Alloc
    - SubblockDec_Construct
    linkageType: ''
    returnType: SRes
    signature: SRes SbState_SetFromMethod(IStateCoder *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_Free
      Src: /src/clamav/libclamav/7z/XzDec.c:288,1
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/XzDec.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - alloc
    argTypes:
    - void*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: Lzma2State_Free
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - Lzma2Dec_Free
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void Lzma2State_Free(void *pp, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_Allocate
      Src: /src/clamav/libclamav/7z/XzDec.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pp
    - props
    - propSize
    - alloc
    argTypes:
    - void*
    - Byte*
    - size_t
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: Lzma2State_SetProps
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - Lzma2Dec_Allocate
    linkageType: ''
    returnType: SRes
    signature: SRes Lzma2State_SetProps(void *pp, const Byte *props, size_t propSize,
      ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_Init
      Src: /src/clamav/libclamav/7z/XzDec.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: Lzma2State_Init
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - Lzma2Dec_Init
    linkageType: ''
    returnType: void
    signature: void Lzma2State_Init(void *pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_DecodeToBuf
      Src: /src/clamav/libclamav/7z/XzDec.c:309,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/7z/XzDec.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - pp
    - dest
    - destLen
    - src
    - srcLen
    - srcWasFinished
    - finishMode
    - wasFinished
    argTypes:
    - void*
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - int
    - ECoderFinishMode
    - int*
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: Lzma2State_Code
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - Lzma2Dec_DecodeToBuf
    linkageType: ''
    returnType: SRes
    signature: "SRes Lzma2State_Code(void *pp, Byte *dest, SizeT *destLen, const Byte
      *src, SizeT *srcLen,\n    int srcWasFinished, ECoderFinishMode finishMode, int
      *wasFinished)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/XzDec.c:317,1
    - Dst: Lzma2Dec_Construct
      Src: /src/clamav/libclamav/7z/XzDec.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - IStateCoder*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 327
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 327
    functionName: Lzma2State_SetFromMethod
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Alloc
    - Lzma2Dec_Construct
    linkageType: ''
    returnType: SRes
    signature: SRes Lzma2State_SetFromMethod(IStateCoder *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CMixCoder*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: MixCoder_Construct
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MixCoder_Construct(CMixCoder *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IStateCoder*::Free
      Src: /src/clamav/libclamav/7z/XzDec.c:347,1
    - Dst: CMixCoder*::alloc::Free
      Src: /src/clamav/libclamav/7z/XzDec.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - CMixCoder*
    constantsTouched: []
    func_position:
      end: 355
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 355
    functionName: MixCoder_Free
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - CMixCoder*::alloc::Free
    - IStateCoder*::Free
    linkageType: ''
    returnType: void
    signature: void MixCoder_Free(CMixCoder *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IStateCoder*::Init
      Src: /src/clamav/libclamav/7z/XzDec.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - CMixCoder*
    constantsTouched: []
    func_position:
      end: 371
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 371
    functionName: MixCoder_Init
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - IStateCoder*::Init
    linkageType: ''
    returnType: void
    signature: void MixCoder_Init(CMixCoder *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2State_SetFromMethod
      Src: /src/clamav/libclamav/7z/XzDec.c:379,1
    - Dst: SbState_SetFromMethod
      Src: /src/clamav/libclamav/7z/XzDec.c:381,1
    - Dst: BraState_SetFromMethod
      Src: /src/clamav/libclamav/7z/XzDec.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - p
    - coderIndex
    - methodId
    argTypes:
    - CMixCoder*
    - int
    - UInt64
    constantsTouched: []
    func_position:
      end: 387
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 387
    functionName: MixCoder_SetFromMethod
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - Lzma2State_SetFromMethod
    - SbState_SetFromMethod
    - BraState_SetFromMethod
    linkageType: ''
    returnType: SRes
    signature: SRes MixCoder_SetFromMethod(CMixCoder *p, int coderIndex, UInt64 methodId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMixCoder*::alloc::Alloc
      Src: /src/clamav/libclamav/7z/XzDec.c:402,1
    - Dst: IStateCoder*::Code
      Src: /src/clamav/libclamav/7z/XzDec.c:455,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 8
    argNames:
    - p
    - dest
    - destLen
    - src
    - srcLen
    - srcWasFinished
    - finishMode
    - status
    argTypes:
    - CMixCoder*
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - int
    - ECoderFinishMode
    - ECoderStatus*
    constantsTouched: []
    func_position:
      end: 494
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 494
    functionName: MixCoder_Code
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - CMixCoder*::alloc::Alloc
    - IStateCoder*::Code
    linkageType: ''
    returnType: SRes
    signature: "SRes MixCoder_Code(CMixCoder *p, Byte *dest, SizeT *destLen,\n    const
      Byte *src, SizeT *srcLen, int srcWasFinished,\n    ECoderFinishMode finishMode,
      ECoderStatus *status)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetBe16
      Src: /src/clamav/libclamav/7z/XzDec.c:498,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/XzDec.c:499,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzDec.c:500,1
    - Dst: XzFlags_IsSupported
      Src: /src/clamav/libclamav/7z/XzDec.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - buf
    argTypes:
    - CXzStreamFlags*
    - Byte*
    constantsTouched: []
    func_position:
      end: 503
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 503
    functionName: Xz_ParseHeader
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - CrcCalc
    - XzFlags_IsSupported
    - GetUi32
    - GetBe16
    linkageType: ''
    returnType: SRes
    signature: SRes Xz_ParseHeader(CXzStreamFlags *p, const Byte *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzDec.c:508,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzDec.c:509,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/XzDec.c:509,1
    - Dst: GetBe16
      Src: /src/clamav/libclamav/7z/XzDec.c:510,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/7z/XzDec.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - flags
    - indexSize
    - buf
    argTypes:
    - CXzStreamFlags
    - UInt64
    - Byte*
    constantsTouched: []
    func_position:
      end: 512
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 512
    functionName: Xz_CheckFooter
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - memcmp
    - CrcCalc
    - GetBe16
    - GetUi32
    linkageType: ''
    returnType: Bool
    signature: Bool Xz_CheckFooter(CXzStreamFlags flags, UInt64 indexSize, const Byte
      *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/XzDec.c:525,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzDec.c:525,1
    - Dst: XzBlock_HasPackSize
      Src: /src/clamav/libclamav/7z/XzDec.c:533,1
    - Dst: READ_VARINT_AND_CHECK
      Src: /src/clamav/libclamav/7z/XzDec.c:535,1
    - Dst: XzBlock_HasUnpackSize
      Src: /src/clamav/libclamav/7z/XzDec.c:540,1
    - Dst: READ_VARINT_AND_CHECK
      Src: /src/clamav/libclamav/7z/XzDec.c:541,1
    - Dst: XzBlock_GetNumFilters
      Src: /src/clamav/libclamav/7z/XzDec.c:543,1
    - Dst: READ_VARINT_AND_CHECK
      Src: /src/clamav/libclamav/7z/XzDec.c:548,1
    - Dst: READ_VARINT_AND_CHECK
      Src: /src/clamav/libclamav/7z/XzDec.c:549,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/XzDec.c:553,1
    - Dst: printf
      Src: /src/clamav/libclamav/7z/XzDec.c:557,1
    - Dst: printf
      Src: /src/clamav/libclamav/7z/XzDec.c:561,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - p
    - header
    argTypes:
    - CXzBlock*
    - Byte*
    constantsTouched: []
    func_position:
      end: 570
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 570
    functionName: XzBlock_Parse
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - CrcCalc
    - XzBlock_HasPackSize
    - GetUi32
    - printf
    - XzBlock_GetNumFilters
    - memcpy
    - READ_VARINT_AND_CHECK
    - XzBlock_HasUnpackSize
    linkageType: ''
    returnType: SRes
    signature: SRes XzBlock_Parse(CXzBlock *p, const Byte *header)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MixCoder_Free
      Src: /src/clamav/libclamav/7z/XzDec.c:586,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzDec.c:591,1
    - Dst: MixCoder_SetFromMethod
      Src: /src/clamav/libclamav/7z/XzDec.c:591,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzDec.c:598,1
    - Dst: IStateCoder*::SetProps
      Src: /src/clamav/libclamav/7z/XzDec.c:598,1
    - Dst: MixCoder_Init
      Src: /src/clamav/libclamav/7z/XzDec.c:600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - p
    - block
    argTypes:
    - CMixCoder*
    - CXzBlock*
    constantsTouched: []
    func_position:
      end: 602
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 602
    functionName: XzDec_Init
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 0
    functionsReached:
    - MixCoder_Free
    - IStateCoder*::SetProps
    - RINOK
    - MixCoder_Init
    - MixCoder_SetFromMethod
    linkageType: ''
    returnType: SRes
    signature: SRes XzDec_Init(CMixCoder *p, const CXzBlock *block)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MixCoder_Construct
      Src: /src/clamav/libclamav/7z/XzDec.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CXzUnpacker*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: XzUnpacker_Create
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 1
    functionsReached:
    - MixCoder_Construct
    linkageType: ''
    returnType: SRes
    signature: SRes XzUnpacker_Create(CXzUnpacker *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MixCoder_Free
      Src: /src/clamav/libclamav/7z/XzDec.c:619,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/7z/XzDec.c:620,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/libclamav/7z/XzDec.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzUnpacker*
    constantsTouched: []
    func_position:
      end: 623
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 623
    functionName: XzUnpacker_Free
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 1
    functionsReached:
    - cl_hash_destroy
    - MixCoder_Free
    linkageType: ''
    returnType: void
    signature: void XzUnpacker_Free(CXzUnpacker *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MixCoder_Code
      Src: /src/clamav/libclamav/7z/XzDec.c:648,1
    - Dst: XzCheck_Update
      Src: /src/clamav/libclamav/7z/XzDec.c:649,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzDec.c:659,1
    - Dst: Xz_WriteVarInt
      Src: /src/clamav/libclamav/7z/XzDec.c:665,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/7z/XzDec.c:667,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzDec.c:700,1
    - Dst: Xz_ParseHeader
      Src: /src/clamav/libclamav/7z/XzDec.c:700,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/7z/XzDec.c:702,1
    - Dst: Xz_WriteVarInt
      Src: /src/clamav/libclamav/7z/XzDec.c:718,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/7z/XzDec.c:722,1
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/7z/XzDec.c:723,1
    - Dst: CrcUpdate
      Src: /src/clamav/libclamav/7z/XzDec.c:725,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/XzDec.c:735,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzDec.c:742,1
    - Dst: XzBlock_Parse
      Src: /src/clamav/libclamav/7z/XzDec.c:742,1
    - Dst: XzCheck_Init
      Src: /src/clamav/libclamav/7z/XzDec.c:746,1
    - Dst: XzFlags_GetCheckType
      Src: /src/clamav/libclamav/7z/XzDec.c:746,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzDec.c:747,1
    - Dst: XzDec_Init
      Src: /src/clamav/libclamav/7z/XzDec.c:747,1
    - Dst: XzFlags_GetCheckSize
      Src: /src/clamav/libclamav/7z/XzDec.c:763,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/XzDec.c:769,1
    - Dst: XzCheck_Final
      Src: /src/clamav/libclamav/7z/XzDec.c:779,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/7z/XzDec.c:779,1
    - Dst: CrcUpdate
      Src: /src/clamav/libclamav/7z/XzDec.c:801,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/7z/XzDec.c:803,1
    - Dst: CRC_UPDATE_BYTE
      Src: /src/clamav/libclamav/7z/XzDec.c:811,1
    - Dst: memset
      Src: /src/clamav/libclamav/7z/XzDec.c:821,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/7z/XzDec.c:826,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/7z/XzDec.c:830,1
    - Dst: CRC_GET_DIGEST
      Src: /src/clamav/libclamav/7z/XzDec.c:848,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzDec.c:848,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/XzDec.c:859,1
    - Dst: Xz_CheckFooter
      Src: /src/clamav/libclamav/7z/XzDec.c:868,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 194
    argCount: 7
    argNames:
    - p
    - dest
    - destLen
    - src
    - srcLen
    - finishMode
    - status
    argTypes:
    - CXzUnpacker*
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - int
    - ECoderStatus*
    constantsTouched: []
    func_position:
      end: 900
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 900
    functionName: XzUnpacker_Code
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 1
    functionsReached:
    - XzFlags_GetCheckType
    - MixCoder_Code
    - XzBlock_Parse
    - Xz_CheckFooter
    - memcmp
    - cl_hash_init
    - XzFlags_GetCheckSize
    - Xz_ParseHeader
    - CRC_GET_DIGEST
    - Xz_WriteVarInt
    - GetUi32
    - memset
    - XzCheck_Update
    - RINOK
    - CrcUpdate
    - cl_update_hash
    - CRC_UPDATE_BYTE
    - XzCheck_Init
    - XzDec_Init
    - memcpy
    - cl_finish_hash
    - XzCheck_Final
    linkageType: ''
    returnType: SRes
    signature: "SRes XzUnpacker_Code(CXzUnpacker *p, Byte *dest, SizeT *destLen,\n
      \   const Byte *src, SizeT *srcLen, int finishMode, ECoderStatus *status)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzUnpacker*
    constantsTouched: []
    func_position:
      end: 905
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 905
    functionName: XzUnpacker_IsStreamWasFinished
    functionSourceFile: /src/clamav/libclamav/7z/XzDec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Bool
    signature: Bool XzUnpacker_IsStreamWasFinished(CXzUnpacker *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CByteInToLook*::inStream::Skip
      Src: /src/clamav/libclamav/7z/7zDec.c:59,1
    - Dst: CByteInToLook*::inStream::Look
      Src: /src/clamav/libclamav/7z/7zDec.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pp
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: ReadByte
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - CByteInToLook*::inStream::Look
    - CByteInToLook*::inStream::Skip
    linkageType: ''
    returnType: Byte
    signature: Byte ReadByte(void *pp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/7zDec.c:90,1
    - Dst: Ppmd7_Construct
      Src: /src/clamav/libclamav/7z/7zDec.c:96,1
    - Dst: Ppmd7_Alloc
      Src: /src/clamav/libclamav/7z/7zDec.c:97,1
    - Dst: Ppmd7_Init
      Src: /src/clamav/libclamav/7z/7zDec.c:99,1
    - Dst: Ppmd7z_RangeDec_CreateVTable
      Src: /src/clamav/libclamav/7z/7zDec.c:103,1
    - Dst: Ppmd7z_RangeDec_Init
      Src: /src/clamav/libclamav/7z/7zDec.c:105,1
    - Dst: Ppmd7z_RangeDec_IsFinishedOK
      Src: /src/clamav/libclamav/7z/7zDec.c:121,1
    - Dst: Ppmd7_Free
      Src: /src/clamav/libclamav/7z/7zDec.c:125,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 6
    argNames:
    - coder
    - inSize
    - inStream
    - outBuffer
    - outSize
    - allocMain
    argTypes:
    - CSzCoderInfo*
    - UInt64
    - ILookInStream*
    - Byte*
    - SizeT
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 127
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 127
    functionName: SzDecodePpmd
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - Ppmd7z_RangeDec_Init
    - Ppmd7z_RangeDec_CreateVTable
    - Ppmd7_Init
    - Ppmd7_Alloc
    - Ppmd7_Construct
    - Ppmd7z_RangeDec_IsFinishedOK
    - Ppmd7_Free
    - GetUi32
    linkageType: ''
    returnType: SRes
    signature: "SRes SzDecodePpmd(CSzCoderInfo *coder, UInt64 inSize, ILookInStream
      *inStream,\n    Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_Construct
      Src: /src/clamav/libclamav/7z/7zDec.c:138,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:139,1
    - Dst: LzmaDec_AllocateProbs
      Src: /src/clamav/libclamav/7z/7zDec.c:139,1
    - Dst: LzmaDec_Init
      Src: /src/clamav/libclamav/7z/7zDec.c:142,1
    - Dst: ILookInStream*::Look
      Src: /src/clamav/libclamav/7z/7zDec.c:150,1
    - Dst: LzmaDec_DecodeToDic
      Src: /src/clamav/libclamav/7z/7zDec.c:157,1
    - Dst: ILookInStream*::Skip
      Src: /src/clamav/libclamav/7z/7zDec.c:170,1
    - Dst: LzmaDec_FreeProbs
      Src: /src/clamav/libclamav/7z/7zDec.c:176,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 6
    argNames:
    - coder
    - inSize
    - inStream
    - outBuffer
    - outSize
    - allocMain
    argTypes:
    - CSzCoderInfo*
    - UInt64
    - ILookInStream*
    - Byte*
    - SizeT
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 178
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 178
    functionName: SzDecodeLzma
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - LzmaDec_DecodeToDic
    - ILookInStream*::Look
    - LzmaDec_AllocateProbs
    - LzmaDec_Construct
    - RINOK
    - LzmaDec_FreeProbs
    - LzmaDec_Init
    - ILookInStream*::Skip
    linkageType: ''
    returnType: SRes
    signature: "SRes SzDecodeLzma(CSzCoderInfo *coder, UInt64 inSize, ILookInStream
      *inStream,\n    Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_Construct
      Src: /src/clamav/libclamav/7z/7zDec.c:186,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:189,1
    - Dst: Lzma2Dec_AllocateProbs
      Src: /src/clamav/libclamav/7z/7zDec.c:189,1
    - Dst: Lzma2Dec_Init
      Src: /src/clamav/libclamav/7z/7zDec.c:192,1
    - Dst: ILookInStream*::Look
      Src: /src/clamav/libclamav/7z/7zDec.c:200,1
    - Dst: Lzma2Dec_DecodeToDic
      Src: /src/clamav/libclamav/7z/7zDec.c:207,1
    - Dst: ILookInStream*::Skip
      Src: /src/clamav/libclamav/7z/7zDec.c:219,1
    - Dst: Lzma2Dec_FreeProbs
      Src: /src/clamav/libclamav/7z/7zDec.c:225,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 6
    argNames:
    - coder
    - inSize
    - inStream
    - outBuffer
    - outSize
    - allocMain
    argTypes:
    - CSzCoderInfo*
    - UInt64
    - ILookInStream*
    - Byte*
    - SizeT
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 227
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 227
    functionName: SzDecodeLzma2
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - Lzma2Dec_DecodeToDic
    - Lzma2Dec_AllocateProbs
    - Lzma2Dec_Init
    - ILookInStream*::Look
    - Lzma2Dec_Construct
    - RINOK
    - ILookInStream*::Skip
    - Lzma2Dec_FreeProbs
    linkageType: ''
    returnType: SRes
    signature: "SRes SzDecodeLzma2(CSzCoderInfo *coder, UInt64 inSize, ILookInStream
      *inStream,\n    Byte *outBuffer, SizeT outSize, ISzAlloc *allocMain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:237,1
    - Dst: ILookInStream*::Look
      Src: /src/clamav/libclamav/7z/7zDec.c:237,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/7zDec.c:240,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:243,1
    - Dst: ILookInStream*::Skip
      Src: /src/clamav/libclamav/7z/7zDec.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - inSize
    - inStream
    - outBuffer
    argTypes:
    - UInt64
    - ILookInStream*
    - Byte*
    constantsTouched: []
    func_position:
      end: 246
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 246
    functionName: SzDecodeCopy
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RINOK
    - ILookInStream*::Skip
    - ILookInStream*::Look
    linkageType: ''
    returnType: SRes
    signature: SRes SzDecodeCopy(UInt64 inSize, ILookInStream *inStream, Byte *outBuffer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - UInt32
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: IS_MAIN_METHOD
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bool
    signature: Bool IS_MAIN_METHOD(UInt32 m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_MAIN_METHOD
      Src: /src/clamav/libclamav/7z/7zDec.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CSzCoderInfo*
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: IS_SUPPORTED_CODER
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - IS_MAIN_METHOD
    linkageType: ''
    returnType: Bool
    signature: Bool IS_SUPPORTED_CODER(const CSzCoderInfo *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_SUPPORTED_CODER
      Src: /src/clamav/libclamav/7z/7zDec.c:282,1
    - Dst: IS_SUPPORTED_CODER
      Src: /src/clamav/libclamav/7z/7zDec.c:314,1
    - Dst: IS_SUPPORTED_CODER
      Src: /src/clamav/libclamav/7z/7zDec.c:315,1
    - Dst: IS_BCJ2
      Src: /src/clamav/libclamav/7z/7zDec.c:316,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 32
    argCount: 1
    argNames:
    - f
    argTypes:
    - CSzFolder*
    constantsTouched: []
    func_position:
      end: 331
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 331
    functionName: CheckSupportedFolder
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - IS_BCJ2
    - IS_SUPPORTED_CODER
    linkageType: ''
    returnType: SRes
    signature: SRes CheckSupportedFolder(const CSzFolder *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - values
    - index
    argTypes:
    - UInt64*
    - UInt32
    constantsTouched: []
    func_position:
      end: 340
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 340
    functionName: GetSum
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UInt64
    signature: UInt64 GetSum(const UInt64 *values, UInt32 index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:354,1
    - Dst: CheckSupportedFolder
      Src: /src/clamav/libclamav/7z/7zDec.c:354,1
    - Dst: IS_MAIN_METHOD
      Src: /src/clamav/libclamav/7z/7zDec.c:360,1
    - Dst: IAlloc_Alloc
      Src: /src/clamav/libclamav/7z/7zDec.c:378,1
    - Dst: GetSum
      Src: /src/clamav/libclamav/7z/7zDec.c:396,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:398,1
    - Dst: LookInStream_SeekTo
      Src: /src/clamav/libclamav/7z/7zDec.c:398,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:404,1
    - Dst: SzDecodeCopy
      Src: /src/clamav/libclamav/7z/7zDec.c:404,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:408,1
    - Dst: SzDecodeLzma
      Src: /src/clamav/libclamav/7z/7zDec.c:408,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:412,1
    - Dst: SzDecodeLzma2
      Src: /src/clamav/libclamav/7z/7zDec.c:412,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:417,1
    - Dst: SzDecodePpmd
      Src: /src/clamav/libclamav/7z/7zDec.c:417,1
    - Dst: GetSum
      Src: /src/clamav/libclamav/7z/7zDec.c:425,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:430,1
    - Dst: LookInStream_SeekTo
      Src: /src/clamav/libclamav/7z/7zDec.c:430,1
    - Dst: IAlloc_Alloc
      Src: /src/clamav/libclamav/7z/7zDec.c:434,1
    - Dst: SzDecodeCopy
      Src: /src/clamav/libclamav/7z/7zDec.c:437,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:438,1
    - Dst: Bcj2_Decode
      Src: /src/clamav/libclamav/7z/7zDec.c:440,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zDec.c:446,1
    - Dst: x86_Convert_Init
      Src: /src/clamav/libclamav/7z/7zDec.c:457,1
    - Dst: x86_Convert
      Src: /src/clamav/libclamav/7z/7zDec.c:458,1
    - Dst: CASE_BRA_CONV
      Src: /src/clamav/libclamav/7z/7zDec.c:461,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 8
    argNames:
    - folder
    - packSizes
    - inStream
    - startPos
    - outBuffer
    - outSize
    - allocMain
    - tempBuf
    argTypes:
    - CSzFolder*
    - UInt64*
    - ILookInStream*
    - UInt64
    - Byte*
    - SizeT
    - ISzAlloc*
    - Byte*[]
    constantsTouched: []
    func_position:
      end: 468
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 468
    functionName: SzFolder_Decode2
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - x86_Convert_Init
    - SzDecodePpmd
    - x86_Convert
    - IAlloc_Alloc
    - GetSum
    - LookInStream_SeekTo
    - SzDecodeLzma
    - RINOK
    - IS_MAIN_METHOD
    - CASE_BRA_CONV
    - Bcj2_Decode
    - CheckSupportedFolder
    - SzDecodeCopy
    - SzDecodeLzma2
    linkageType: ''
    returnType: SRes
    signature: "SRes SzFolder_Decode2(const CSzFolder *folder, const UInt64 *packSizes,\n
      \   ILookInStream *inStream, UInt64 startPos,\n    Byte *outBuffer, SizeT outSize,
      ISzAlloc *allocMain,\n    Byte *tempBuf[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzFolder_Decode2
      Src: /src/clamav/libclamav/7z/7zDec.c:476,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zDec.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - folder
    - packSizes
    - inStream
    - startPos
    - outBuffer
    - outSize
    - allocMain
    argTypes:
    - CSzFolder*
    - UInt64*
    - ILookInStream*
    - UInt64
    - Byte*
    - size_t
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 481
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 481
    functionName: SzFolder_Decode
    functionSourceFile: /src/clamav/libclamav/7z/7zDec.c
    functionUses: 0
    functionsReached:
    - SzFolder_Decode2
    - IAlloc_Free
    linkageType: ''
    returnType: SRes
    signature: "SRes SzFolder_Decode(const CSzFolder *folder, const UInt64 *packSizes,\n
      \   ILookInStream *inStream, UInt64 startPos,\n    Byte *outBuffer, size_t outSize,
      ISzAlloc *allocMain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Buf_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzCoderInfo*
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: SzCoderInfo_Init
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - Buf_Init
    linkageType: ''
    returnType: void
    signature: void SzCoderInfo_Init(CSzCoderInfo *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Buf_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:32,1
    - Dst: SzCoderInfo_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CSzCoderInfo*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: SzCoderInfo_Free
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzCoderInfo_Init
    - Buf_Free
    linkageType: ''
    returnType: void
    signature: void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzFolder*
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: SzFolder_Init
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SzFolder_Init(CSzFolder *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzCoderInfo_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:55,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:56,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:57,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:58,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:59,1
    - Dst: SzFolder_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CSzFolder*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: SzFolder_Free
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzFolder_Init
    - SzCoderInfo_Free
    - IAlloc_Free
    linkageType: ''
    returnType: void
    signature: void SzFolder_Free(CSzFolder *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzFolder*
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: SzFolder_GetNumOutStreams
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UInt32
    signature: UInt32 SzFolder_GetNumOutStreams(CSzFolder *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - inStreamIndex
    argTypes:
    - CSzFolder*
    - UInt32
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: SzFolder_FindBindPairForInStream
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SzFolder_FindBindPairForInStream(CSzFolder *p, UInt32 inStreamIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - outStreamIndex
    argTypes:
    - CSzFolder*
    - UInt32
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: SzFolder_FindBindPairForOutStream
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SzFolder_FindBindPairForOutStream(CSzFolder *p, UInt32 outStreamIndex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzFolder_FindBindPairForOutStream
      Src: /src/clamav/libclamav/7z/7zIn.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzFolder*
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: SzFolder_GetUnpackSize
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzFolder_FindBindPairForOutStream
    linkageType: ''
    returnType: UInt64
    signature: UInt64 SzFolder_GetUnpackSize(CSzFolder *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzFileItem*
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: SzFile_Init
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SzFile_Init(CSzFileItem *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzAr*
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: SzAr_Init
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SzAr_Init(CSzAr *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzFolder_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:129,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:131,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:132,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:133,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:134,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:135,1
    - Dst: SzAr_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CSzAr*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: SzAr_Free
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzFolder_Free
    - SzAr_Init
    - IAlloc_Free
    linkageType: ''
    returnType: void
    signature: void SzAr_Free(CSzAr *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzAr_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:142,1
    - Dst: Buf_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSzArEx*
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: SzArEx_Init
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 1
    functionsReached:
    - Buf_Init
    - SzAr_Init
    linkageType: ''
    returnType: void
    signature: void SzArEx_Init(CSzArEx *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:153,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:154,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:155,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:156,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:158,1
    - Dst: Buf_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:159,1
    - Dst: SzAr_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:161,1
    - Dst: SzArEx_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CSzArEx*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: SzArEx_Free
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 1
    functionsReached:
    - SzAr_Free
    - Buf_Free
    - SzArEx_Init
    - IAlloc_Free
    linkageType: ''
    returnType: void
    signature: void SzArEx_Free(CSzArEx *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:194,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:201,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:209,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:210,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CSzArEx*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 248
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 248
    functionName: SzArEx_Fill
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - MY_ALLOC
    linkageType: ''
    returnType: SRes
    signature: SRes SzArEx_Fill(CSzArEx *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - folderIndex
    - indexInFolder
    argTypes:
    - CSzArEx*
    - UInt32
    - UInt32
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: SzArEx_GetFolderStreamPos
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UInt64
    signature: UInt64 SzArEx_GetFolderStreamPos(const CSzArEx *p, UInt32 folderIndex,
      UInt32 indexInFolder)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - p
    - folderIndex
    - resSize
    argTypes:
    - CSzArEx*
    - UInt32
    - UInt64*
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: SzArEx_GetFolderFullPackSize
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SzArEx_GetFolderFullPackSize(const CSzArEx *p, UInt32 folderIndex,
      UInt64 *resSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - testBytes
    argTypes:
    - Byte*
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: TestSignatureCandidate
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TestSignatureCandidate(Byte *testBytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sd
    - b
    argTypes:
    - CSzData*
    - Byte*
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: SzReadByte
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadByte(CSzData *sd, Byte *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:338,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sd
    - data
    - size
    argTypes:
    - CSzData*
    - Byte*
    - size_t
    constantsTouched: []
    func_position:
      end: 341
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 341
    functionName: SzReadBytes
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzReadByte
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadBytes(CSzData *sd, Byte *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:350,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sd
    - value
    argTypes:
    - CSzData*
    - UInt32*
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: SzReadUInt32
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzReadByte
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadUInt32(CSzData *sd, UInt32 *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:361,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:361,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:372,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sd
    - value
    argTypes:
    - CSzData*
    - UInt64*
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: SzReadNumber
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzReadByte
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadNumber(CSzData *sd, UInt64 *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:382,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sd
    - value
    argTypes:
    - CSzData*
    - UInt32*
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: SzReadNumber32
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzReadNumber
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadNumber32(CSzData *sd, UInt32 *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sd
    - value
    argTypes:
    - CSzData*
    - UInt64*
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: SzReadID
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadNumber
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadID(CSzData *sd, UInt64 *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sd
    - size
    argTypes:
    - CSzData*
    - UInt64
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: SzSkeepDataSize
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SRes
    signature: SRes SzSkeepDataSize(CSzData *sd, UInt64 size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:408,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:408,1
    - Dst: SzSkeepDataSize
      Src: /src/clamav/libclamav/7z/7zIn.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sd
    argTypes:
    - CSzData*
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: SzSkeepData
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzReadNumber
    - SzSkeepDataSize
    linkageType: ''
    returnType: SRes
    signature: SRes SzSkeepData(CSzData *sd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:417,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:417,1
    - Dst: SzSkeepData
      Src: /src/clamav/libclamav/7z/7zIn.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - sd
    argTypes:
    - CSzData*
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: SzReadArchiveProperties
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzSkeepData
    - SzReadID
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadArchiveProperties(CSzData *sd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:430,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:430,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:435,1
    - Dst: SzSkeepData
      Src: /src/clamav/libclamav/7z/7zIn.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sd
    - attribute
    argTypes:
    - CSzData*
    - UInt64
    constantsTouched: []
    func_position:
      end: 437
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 437
    functionName: SzWaitAttribute
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzSkeepData
    - SzReadID
    linkageType: ''
    returnType: SRes
    signature: SRes SzWaitAttribute(CSzData *sd, UInt64 attribute)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:447,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:452,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - sd
    - numItems
    - v
    - alloc
    argTypes:
    - CSzData*
    - size_t
    - Byte**
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: SzReadBoolVector
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadByte
    - RINOK
    - MY_ALLOC
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadBoolVector(CSzData *sd, size_t numItems, Byte **v, ISzAlloc
      *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:465,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:465,1
    - Dst: SzReadBoolVector
      Src: /src/clamav/libclamav/7z/7zIn.c:467,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - sd
    - numItems
    - v
    - alloc
    argTypes:
    - CSzData*
    - size_t
    - Byte**
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 474
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 474
    functionName: SzReadBoolVector2
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - MY_ALLOC
    - RINOK
    - SzReadBoolVector
    - SzReadByte
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadBoolVector2(CSzData *sd, size_t numItems, Byte **v, ISzAlloc
      *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:484,1
    - Dst: SzReadBoolVector2
      Src: /src/clamav/libclamav/7z/7zIn.c:484,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:487,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:491,1
    - Dst: SzReadUInt32
      Src: /src/clamav/libclamav/7z/7zIn.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - sd
    - numItems
    - digestsDefined
    - digests
    - alloc
    argTypes:
    - CSzData*
    - size_t
    - Byte**
    - UInt32**
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 494
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 494
    functionName: SzReadHashDigests
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadBoolVector2
    - RINOK
    - MY_ALLOC
    - SzReadUInt32
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadHashDigests(\n    CSzData *sd,\n    size_t numItems,\n
      \   Byte **digestsDefined,\n    UInt32 **digests,\n    ISzAlloc *alloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:506,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:506,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:507,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:507,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:509,1
    - Dst: SzWaitAttribute
      Src: /src/clamav/libclamav/7z/7zIn.c:509,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:513,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:517,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:517,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:523,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:523,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:528,1
    - Dst: SzReadHashDigests
      Src: /src/clamav/libclamav/7z/7zIn.c:528,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:531,1
    - Dst: SzSkeepData
      Src: /src/clamav/libclamav/7z/7zIn.c:531,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:537,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:538,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 7
    argNames:
    - sd
    - dataOffset
    - numPackStreams
    - packSizes
    - packCRCsDefined
    - packCRCs
    - alloc
    argTypes:
    - CSzData*
    - UInt64*
    - UInt32*
    - UInt64**
    - Byte**
    - UInt32**
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 546
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 546
    functionName: SzReadPackInfo
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadNumber
    - SzWaitAttribute
    - SzReadID
    - SzReadNumber32
    - SzReadHashDigests
    - RINOK
    - MY_ALLOC
    - SzSkeepData
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadPackInfo(\n    CSzData *sd,\n    UInt64 *dataOffset,\n
      \   UInt32 *numPackStreams,\n    UInt64 **packSizes,\n    Byte **packCRCsDefined,\n
      \   UInt32 **packCRCs,\n    ISzAlloc *alloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:551,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sd
    argTypes:
    - CSzData*
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: SzReadSwitch
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - RINOK
    - SzReadByte
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadSwitch(CSzData *sd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:560,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:560,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:565,1
    - Dst: SzCoderInfo_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:568,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:577,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:577,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:579,1
    - Dst: SzReadBytes
      Src: /src/clamav/libclamav/7z/7zIn.c:579,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:588,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:588,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:589,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:589,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:602,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:602,1
    - Dst: Buf_Create
      Src: /src/clamav/libclamav/7z/7zIn.c:603,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:605,1
    - Dst: SzReadBytes
      Src: /src/clamav/libclamav/7z/7zIn.c:605,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:610,1
    - Dst: SzReadByte
      Src: /src/clamav/libclamav/7z/7zIn.c:610,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:611,1
    - Dst: SzSkeepDataSize
      Src: /src/clamav/libclamav/7z/7zIn.c:611,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:615,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:615,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:616,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:616,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:621,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:621,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:622,1
    - Dst: SzSkeepDataSize
      Src: /src/clamav/libclamav/7z/7zIn.c:622,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:633,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:638,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:638,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:639,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:639,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:646,1
    - Dst: SzFolder_FindBindPairForInStream
      Src: /src/clamav/libclamav/7z/7zIn.c:651,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:660,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:660,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 3
    argNames:
    - sd
    - folder
    - alloc
    argTypes:
    - CSzData*
    - CSzFolder*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 663
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 663
    functionName: SzGetNextFolderItem
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - Buf_Create
    - SzReadNumber
    - SzFolder_FindBindPairForInStream
    - SzReadByte
    - SzReadNumber32
    - RINOK
    - SzCoderInfo_Init
    - MY_ALLOC
    - SzSkeepDataSize
    - SzReadBytes
    linkageType: ''
    returnType: SRes
    signature: SRes SzGetNextFolderItem(CSzData *sd, CSzFolder *folder, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:674,1
    - Dst: SzWaitAttribute
      Src: /src/clamav/libclamav/7z/7zIn.c:674,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:675,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:675,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:679,1
    - Dst: SzFolder_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:683,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:685,1
    - Dst: SzReadSwitch
      Src: /src/clamav/libclamav/7z/7zIn.c:685,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:689,1
    - Dst: SzGetNextFolderItem
      Src: /src/clamav/libclamav/7z/7zIn.c:689,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:693,1
    - Dst: SzWaitAttribute
      Src: /src/clamav/libclamav/7z/7zIn.c:693,1
    - Dst: SzFolder_GetNumOutStreams
      Src: /src/clamav/libclamav/7z/7zIn.c:699,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:703,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:707,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:707,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:714,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:714,1
    - Dst: SzReadHashDigests
      Src: /src/clamav/libclamav/7z/7zIn.c:722,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:732,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:733,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:734,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:737,1
    - Dst: SzSkeepData
      Src: /src/clamav/libclamav/7z/7zIn.c:737,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - sd
    - numFolders
    - folders
    - alloc
    - allocTemp
    argTypes:
    - CSzData*
    - UInt32*
    - CSzFolder**
    - ISzAlloc*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 739
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 739
    functionName: SzReadUnpackInfo
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadNumber
    - SzFolder_GetNumOutStreams
    - SzFolder_Init
    - SzWaitAttribute
    - SzReadID
    - SzReadNumber32
    - SzReadHashDigests
    - RINOK
    - IAlloc_Free
    - SzReadSwitch
    - MY_ALLOC
    - SzGetNextFolderItem
    - SzSkeepData
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadUnpackInfo(\n    CSzData *sd,\n    UInt32 *numFolders,\n
      \   CSzFolder **folders,  /* for alloc */\n    ISzAlloc *alloc,\n    ISzAlloc
      *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:762,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:762,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:769,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:769,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:779,1
    - Dst: SzSkeepData
      Src: /src/clamav/libclamav/7z/7zIn.c:779,1
    - Dst: IAlloc_Alloc
      Src: /src/clamav/libclamav/7z/7zIn.c:793,1
    - Dst: RINOM
      Src: /src/clamav/libclamav/7z/7zIn.c:794,1
    - Dst: IAlloc_Alloc
      Src: /src/clamav/libclamav/7z/7zIn.c:795,1
    - Dst: RINOM
      Src: /src/clamav/libclamav/7z/7zIn.c:796,1
    - Dst: IAlloc_Alloc
      Src: /src/clamav/libclamav/7z/7zIn.c:797,1
    - Dst: RINOM
      Src: /src/clamav/libclamav/7z/7zIn.c:798,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:816,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:816,1
    - Dst: SzFolder_GetUnpackSize
      Src: /src/clamav/libclamav/7z/7zIn.c:820,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:824,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:824,1
    - Dst: SzReadHashDigests
      Src: /src/clamav/libclamav/7z/7zIn.c:850,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z/7zIn.c:860,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/7z/7zIn.c:873,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:883,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:884,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:885,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:891,1
    - Dst: SzSkeepData
      Src: /src/clamav/libclamav/7z/7zIn.c:891,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:893,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:893,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 93
    argCount: 8
    argNames:
    - sd
    - numFolders
    - folders
    - numUnpackStreams
    - unpackSizes
    - digestsDefined
    - digests
    - allocTemp
    argTypes:
    - CSzData*
    - UInt32
    - CSzFolder*
    - UInt32*
    - UInt64**
    - Byte**
    - UInt32**
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 895
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 895
    functionName: SzReadSubStreamsInfo
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadNumber
    - IAlloc_Alloc
    - SzReadID
    - SzReadNumber32
    - SzReadHashDigests
    - RINOK
    - cli_dbgmsg
    - IAlloc_Free
    - SzFolder_GetUnpackSize
    - SzSkeepData
    - RINOM
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadSubStreamsInfo(\n    CSzData *sd,\n    UInt32 numFolders,\n
      \   CSzFolder *folders,\n    UInt32 *numUnpackStreams,\n    UInt64 **unpackSizes,\n
      \   Byte **digestsDefined,\n    UInt32 **digests,\n    ISzAlloc *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:912,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:912,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:921,1
    - Dst: SzReadPackInfo
      Src: /src/clamav/libclamav/7z/7zIn.c:921,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:927,1
    - Dst: SzReadUnpackInfo
      Src: /src/clamav/libclamav/7z/7zIn.c:927,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:932,1
    - Dst: SzReadSubStreamsInfo
      Src: /src/clamav/libclamav/7z/7zIn.c:932,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 9
    argNames:
    - sd
    - dataOffset
    - p
    - numUnpackStreams
    - unpackSizes
    - digestsDefined
    - digests
    - alloc
    - allocTemp
    argTypes:
    - CSzData*
    - UInt64*
    - CSzAr*
    - UInt32*
    - UInt64**
    - Byte**
    - UInt32**
    - ISzAlloc*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 940
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 940
    functionName: SzReadStreamsInfo
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadUnpackInfo
    - SzReadSubStreamsInfo
    - SzReadPackInfo
    - SzReadID
    - RINOK
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadStreamsInfo(\n    CSzData *sd,\n    UInt64 *dataOffset,\n
      \   CSzAr *p,\n    UInt32 *numUnpackStreams,\n    UInt64 **unpackSizes, /* allocTemp
      */\n    Byte **digestsDefined,   /* allocTemp */\n    UInt32 **digests,        /*
      allocTemp */\n    ISzAlloc *alloc,\n    ISzAlloc *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetUi16
      Src: /src/clamav/libclamav/7z/7zIn.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - fileIndex
    - dest
    argTypes:
    - CSzArEx*
    - size_t
    - UInt16*
    constantsTouched: []
    func_position:
      end: 953
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 953
    functionName: SzArEx_GetFileNameUtf16
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 1
    functionsReached:
    - GetUi16
    linkageType: ''
    returnType: size_t
    signature: size_t SzArEx_GetFileNameUtf16(const CSzArEx *p, size_t fileIndex,
      UInt16 *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - p
    - size
    - numFiles
    - sizes
    argTypes:
    - Byte*
    - size_t
    - UInt32
    - size_t*
    constantsTouched: []
    func_position:
      end: 974
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 974
    functionName: SzReadFileNames
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SRes
    signature: SRes SzReadFileNames(const Byte *p, size_t size, UInt32 numFiles, size_t
      *sizes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:995,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:995,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:999,1
    - Dst: SzReadArchiveProperties
      Src: /src/clamav/libclamav/7z/7zIn.c:999,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1000,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:1000,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1006,1
    - Dst: SzReadStreamsInfo
      Src: /src/clamav/libclamav/7z/7zIn.c:1006,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1014,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:1014,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1022,1
    - Dst: SzReadNumber32
      Src: /src/clamav/libclamav/7z/7zIn.c:1022,1
    - Dst: MY_ALLOC
      Src: /src/clamav/libclamav/7z/7zIn.c:1025,1
    - Dst: SzFile_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:1029,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1035,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:1035,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1038,1
    - Dst: SzReadNumber
      Src: /src/clamav/libclamav/7z/7zIn.c:1038,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1043,1
    - Dst: SzSkeepDataSize
      Src: /src/clamav/libclamav/7z/7zIn.c:1043,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1051,1
    - Dst: SzReadSwitch
      Src: /src/clamav/libclamav/7z/7zIn.c:1051,1
    - Dst: Buf_Create
      Src: /src/clamav/libclamav/7z/7zIn.c:1055,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/7zIn.c:1060,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1061,1
    - Dst: SzReadFileNames
      Src: /src/clamav/libclamav/7z/7zIn.c:1061,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1062,1
    - Dst: SzSkeepDataSize
      Src: /src/clamav/libclamav/7z/7zIn.c:1062,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1067,1
    - Dst: SzReadBoolVector
      Src: /src/clamav/libclamav/7z/7zIn.c:1067,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1076,1
    - Dst: SzReadBoolVector
      Src: /src/clamav/libclamav/7z/7zIn.c:1076,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1081,1
    - Dst: SzReadBoolVector2
      Src: /src/clamav/libclamav/7z/7zIn.c:1081,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1082,1
    - Dst: SzReadSwitch
      Src: /src/clamav/libclamav/7z/7zIn.c:1082,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1091,1
    - Dst: SzReadUInt32
      Src: /src/clamav/libclamav/7z/7zIn.c:1091,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1094,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1100,1
    - Dst: SzReadBoolVector2
      Src: /src/clamav/libclamav/7z/7zIn.c:1100,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1101,1
    - Dst: SzReadSwitch
      Src: /src/clamav/libclamav/7z/7zIn.c:1101,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1110,1
    - Dst: SzReadUInt32
      Src: /src/clamav/libclamav/7z/7zIn.c:1110,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1111,1
    - Dst: SzReadUInt32
      Src: /src/clamav/libclamav/7z/7zIn.c:1111,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1114,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1120,1
    - Dst: SzSkeepDataSize
      Src: /src/clamav/libclamav/7z/7zIn.c:1120,1
    - Dst: SzArEx_Fill
      Src: /src/clamav/libclamav/7z/7zIn.c:1159,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 118
    argCount: 10
    argNames:
    - p
    - sd
    - unpackSizes
    - digestsDefined
    - digests
    - emptyStreamVector
    - emptyFileVector
    - lwtVector
    - allocMain
    - allocTemp
    argTypes:
    - CSzArEx*
    - CSzData*
    - UInt64**
    - Byte**
    - UInt32**
    - Byte**
    - Byte**
    - Byte**
    - ISzAlloc*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1160
      start: 976
    functionDepth: 6
    functionLinenumber: 976
    functionLinenumberEnd: 1160
    functionName: SzReadHeader2
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadUInt32
    - Buf_Create
    - SzReadNumber
    - SzReadBoolVector
    - SzReadBoolVector2
    - SzFile_Init
    - SzReadID
    - SzReadNumber32
    - IAlloc_Free
    - RINOK
    - SzReadStreamsInfo
    - SzReadSwitch
    - SzReadFileNames
    - MY_ALLOC
    - SzSkeepDataSize
    - memcpy
    - SzArEx_Fill
    - SzReadArchiveProperties
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadHeader2(\n    CSzArEx *p,   /* allocMain */\n    CSzData
      *sd,\n    UInt64 **unpackSizes,  /* allocTemp */\n    Byte **digestsDefined,
      \   /* allocTemp */\n    UInt32 **digests,         /* allocTemp */\n    Byte
      **emptyStreamVector, /* allocTemp */\n    Byte **emptyFileVector,   /* allocTemp
      */\n    Byte **lwtVector,         /* allocTemp */\n    ISzAlloc *allocMain,\n
      \   ISzAlloc *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzReadHeader2
      Src: /src/clamav/libclamav/7z/7zIn.c:1174,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1178,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1179,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1180,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1181,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1182,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - p
    - sd
    - allocMain
    - allocTemp
    argTypes:
    - CSzArEx*
    - CSzData*
    - ISzAlloc*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1185
      start: 1162
    functionDepth: 7
    functionLinenumber: 1162
    functionLinenumberEnd: 1185
    functionName: SzReadHeader
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzReadHeader2
    - IAlloc_Free
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadHeader(\n    CSzArEx *p,\n    CSzData *sd,\n    ISzAlloc
      *allocMain,\n    ISzAlloc *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1205,1
    - Dst: SzReadStreamsInfo
      Src: /src/clamav/libclamav/7z/7zIn.c:1205,1
    - Dst: SzFolder_GetUnpackSize
      Src: /src/clamav/libclamav/7z/7zIn.c:1214,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1216,1
    - Dst: LookInStream_SeekTo
      Src: /src/clamav/libclamav/7z/7zIn.c:1216,1
    - Dst: Buf_Create
      Src: /src/clamav/libclamav/7z/7zIn.c:1218,1
    - Dst: SzFolder_Decode
      Src: /src/clamav/libclamav/7z/7zIn.c:1221,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1224,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/7zIn.c:1226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 9
    argNames:
    - inStream
    - sd
    - outBuffer
    - baseOffset
    - p
    - unpackSizes
    - digestsDefined
    - digests
    - allocTemp
    argTypes:
    - ILookInStream*
    - CSzData*
    - CBuf*
    - UInt64
    - CSzAr*
    - UInt64**
    - Byte**
    - UInt32**
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1229
      start: 1187
    functionDepth: 6
    functionLinenumber: 1187
    functionLinenumberEnd: 1229
    functionName: SzReadAndDecodePackedStreams2
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - CrcCalc
    - Buf_Create
    - LookInStream_SeekTo
    - RINOK
    - SzReadStreamsInfo
    - SzFolder_Decode
    - SzFolder_GetUnpackSize
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadAndDecodePackedStreams2(\n    ILookInStream *inStream,\n
      \   CSzData *sd,\n    CBuf *outBuffer,\n    UInt64 baseOffset,\n    CSzAr *p,\n
      \   UInt64 **unpackSizes,\n    Byte **digestsDefined,\n    UInt32 **digests,\n
      \   ISzAlloc *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzAr_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:1243,1
    - Dst: SzReadAndDecodePackedStreams2
      Src: /src/clamav/libclamav/7z/7zIn.c:1244,1
    - Dst: SzAr_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1247,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1248,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1249,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - inStream
    - sd
    - outBuffer
    - baseOffset
    - allocTemp
    argTypes:
    - ILookInStream*
    - CSzData*
    - CBuf*
    - UInt64
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1252
      start: 1231
    functionDepth: 7
    functionLinenumber: 1231
    functionLinenumberEnd: 1252
    functionName: SzReadAndDecodePackedStreams
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - SzAr_Free
    - SzAr_Init
    - SzReadAndDecodePackedStreams2
    - IAlloc_Free
    linkageType: ''
    returnType: SRes
    signature: "SRes SzReadAndDecodePackedStreams(\n    ILookInStream *inStream,\n
      \   CSzData *sd,\n    CBuf *outBuffer,\n    UInt64 baseOffset,\n    ISzAlloc
      *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1269,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/7zIn.c:1269,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1271,1
    - Dst: LookInStream_Read2
      Src: /src/clamav/libclamav/7z/7zIn.c:1271,1
    - Dst: TestSignatureCandidate
      Src: /src/clamav/libclamav/7z/7zIn.c:1273,1
    - Dst: GetUi64
      Src: /src/clamav/libclamav/7z/7zIn.c:1278,1
    - Dst: GetUi64
      Src: /src/clamav/libclamav/7z/7zIn.c:1279,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/7zIn.c:1280,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/7zIn.c:1288,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1292,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/7zIn.c:1292,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1293,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/7zIn.c:1293,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1296,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/7zIn.c:1296,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1297,1
    - Dst: LookInStream_Read2
      Src: /src/clamav/libclamav/7z/7zIn.c:1297,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/7zIn.c:1308,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1309,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/7zIn.c:1309,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1324,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/7zIn.c:1324,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1331,1
    - Dst: LookInStream_SeekTo
      Src: /src/clamav/libclamav/7z/7zIn.c:1331,1
    - Dst: Buf_Create
      Src: /src/clamav/libclamav/7z/7zIn.c:1333,1
    - Dst: LookInStream_Read
      Src: /src/clamav/libclamav/7z/7zIn.c:1336,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/7zIn.c:1340,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:1346,1
    - Dst: Buf_Init
      Src: /src/clamav/libclamav/7z/7zIn.c:1352,1
    - Dst: SzReadAndDecodePackedStreams
      Src: /src/clamav/libclamav/7z/7zIn.c:1353,1
    - Dst: Buf_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1355,1
    - Dst: Buf_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1358,1
    - Dst: SzReadID
      Src: /src/clamav/libclamav/7z/7zIn.c:1363,1
    - Dst: SzReadHeader
      Src: /src/clamav/libclamav/7z/7zIn.c:1370,1
    - Dst: Buf_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1376,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 4
    argNames:
    - p
    - inStream
    - allocMain
    - allocTemp
    argTypes:
    - CSzArEx*
    - ILookInStream*
    - ISzAlloc*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1378
      start: 1254
    functionDepth: 8
    functionLinenumber: 1254
    functionLinenumberEnd: 1378
    functionName: SzArEx_Open2
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 0
    functionsReached:
    - Buf_Init
    - LookInStream_Read
    - CrcCalc
    - Buf_Create
    - SzReadHeader
    - LookInStream_SeekTo
    - TestSignatureCandidate
    - SzReadID
    - RINOK
    - ILookInStream*::Seek
    - GetUi64
    - SzReadAndDecodePackedStreams
    - LookInStream_Read2
    - Buf_Free
    - GetUi32
    linkageType: ''
    returnType: SRes
    signature: "SRes SzArEx_Open2(\n    CSzArEx *p,\n    ILookInStream *inStream,\n
      \   ISzAlloc *allocMain,\n    ISzAlloc *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SzArEx_Open2
      Src: /src/clamav/libclamav/7z/7zIn.c:1382,1
    - Dst: SzArEx_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - p
    - inStream
    - allocMain
    - allocTemp
    argTypes:
    - CSzArEx*
    - ILookInStream*
    - ISzAlloc*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1386
      start: 1380
    functionDepth: 9
    functionLinenumber: 1380
    functionLinenumberEnd: 1386
    functionName: SzArEx_Open
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 1
    functionsReached:
    - SzArEx_Free
    - SzArEx_Open2
    linkageType: ''
    returnType: SRes
    signature: SRes SzArEx_Open(CSzArEx *p, ILookInStream *inStream, ISzAlloc *allocMain,
      ISzAlloc *allocTemp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1409,1
    - Dst: SzFolder_GetUnpackSize
      Src: /src/clamav/libclamav/7z/7zIn.c:1419,1
    - Dst: SzArEx_GetFolderStreamPos
      Src: /src/clamav/libclamav/7z/7zIn.c:1425,1
    - Dst: IAlloc_Free
      Src: /src/clamav/libclamav/7z/7zIn.c:1430,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zIn.c:1433,1
    - Dst: LookInStream_SeekTo
      Src: /src/clamav/libclamav/7z/7zIn.c:1433,1
    - Dst: IAlloc_Alloc
      Src: /src/clamav/libclamav/7z/7zIn.c:1440,1
    - Dst: SzFolder_Decode
      Src: /src/clamav/libclamav/7z/7zIn.c:1446,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/7zIn.c:1454,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/7zIn.c:1473,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 10
    argNames:
    - p
    - inStream
    - fileIndex
    - blockIndex
    - outBuffer
    - outBufferSize
    - offset
    - outSizeProcessed
    - allocMain
    - allocTemp
    argTypes:
    - CSzArEx*
    - ILookInStream*
    - UInt32
    - UInt32*
    - Byte**
    - size_t*
    - size_t*
    - size_t*
    - ISzAlloc*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1477
      start: 1388
    functionDepth: 5
    functionLinenumber: 1388
    functionLinenumberEnd: 1477
    functionName: SzArEx_Extract
    functionSourceFile: /src/clamav/libclamav/7z/7zIn.c
    functionUses: 1
    functionsReached:
    - CrcCalc
    - SzArEx_GetFolderStreamPos
    - IAlloc_Alloc
    - LookInStream_SeekTo
    - IAlloc_Free
    - RINOK
    - SzFolder_Decode
    - SzFolder_GetUnpackSize
    linkageType: ''
    returnType: SRes
    signature: "SRes SzArEx_Extract(\n    const CSzArEx *p,\n    ILookInStream *inStream,\n
      \   UInt32 fileIndex,\n    UInt32 *blockIndex,\n    Byte **outBuffer,\n    size_t
      *outBufferSize,\n    size_t *offset,\n    size_t *outSizeProcessed,\n    ISzAlloc
      *allocMain,\n    ISzAlloc *allocTemp)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - data
    - size
    - ip
    - encoding
    argTypes:
    - Byte*
    - SizeT
    - UInt32
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 67
    functionName: IA64_Convert
    functionSourceFile: /src/clamav/libclamav/7z/BraIA64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SizeT
    signature: SizeT IA64_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - flag
    argTypes:
    - UInt32
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: CheckFlag
    functionSourceFile: /src/clamav/libclamav/7z/CpuArch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UInt32
    signature: UInt32 CheckFlag(UInt32 flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/clamav/libclamav/7z/CpuArch.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - function
    - a
    - b
    - c
    - d
    argTypes:
    - UInt32
    - UInt32*
    - UInt32*
    - UInt32*
    - UInt32*
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: MyCPUID
    functionSourceFile: /src/clamav/libclamav/7z/CpuArch.c
    functionUses: 0
    functionsReached:
    - __cpuid
    linkageType: ''
    returnType: void
    signature: void MyCPUID(UInt32 function, UInt32 *a, UInt32 *b, UInt32 *c, UInt32
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MyCPUID
      Src: /src/clamav/libclamav/7z/CpuArch.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Cx86cpuid*
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: x86cpuid_CheckAndRead
    functionSourceFile: /src/clamav/libclamav/7z/CpuArch.c
    functionUses: 0
    functionsReached:
    - MyCPUID
    linkageType: ''
    returnType: Bool
    signature: Bool x86cpuid_CheckAndRead(Cx86cpuid *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Cx86cpuid*
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: x86cpuid_GetFirm
    functionSourceFile: /src/clamav/libclamav/7z/CpuArch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int x86cpuid_GetFirm(const Cx86cpuid *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86cpuid_CheckAndRead
      Src: /src/clamav/libclamav/7z/CpuArch.c:136,1
    - Dst: x86cpuid_GetFamily
      Src: /src/clamav/libclamav/7z/CpuArch.c:138,1
    - Dst: x86cpuid_GetModel
      Src: /src/clamav/libclamav/7z/CpuArch.c:139,1
    - Dst: x86cpuid_GetFirm
      Src: /src/clamav/libclamav/7z/CpuArch.c:140,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 148
    functionName: CPU_Is_InOrder
    functionSourceFile: /src/clamav/libclamav/7z/CpuArch.c
    functionUses: 0
    functionsReached:
    - x86cpuid_GetModel
    - x86cpuid_CheckAndRead
    - x86cpuid_GetFamily
    - x86cpuid_GetFirm
    linkageType: ''
    returnType: Bool
    signature: Bool CPU_Is_InOrder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetVersionEx
      Src: /src/clamav/libclamav/7z/CpuArch.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: CPU_Sys_Is_SSE_Supported
    functionSourceFile: /src/clamav/libclamav/7z/CpuArch.c
    functionUses: 0
    functionsReached:
    - GetVersionEx
    linkageType: ''
    returnType: Bool
    signature: Bool CPU_Sys_Is_SSE_Supported()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: x86cpuid_CheckAndRead
      Src: /src/clamav/libclamav/7z/CpuArch.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: CPU_Is_Aes_Supported
    functionSourceFile: /src/clamav/libclamav/7z/CpuArch.c
    functionUses: 0
    functionsReached:
    - x86cpuid_CheckAndRead
    linkageType: ''
    returnType: Bool
    signature: Bool CPU_Is_Aes_Supported()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: typedef
    functionSourceFile: /src/clamav/libclamav/7z/7zFile.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EXTERN_C_BEGIN
    signature: EXTERN_C_BEGIN typedef
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - Byte*
    constantsTouched: []
    func_position:
      end: 11
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 11
    functionName: Delta_Init
    functionSourceFile: /src/clamav/libclamav/7z/Delta.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Delta_Init(Byte *state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - Byte*
    - Byte*
    - unsigned
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: MyMemCpy
    functionSourceFile: /src/clamav/libclamav/7z/Delta.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyMemCpy(Byte *dest, const Byte *src, unsigned size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MyMemCpy
      Src: /src/clamav/libclamav/7z/Delta.c:24,1
    - Dst: MyMemCpy
      Src: /src/clamav/libclamav/7z/Delta.c:39,1
    - Dst: MyMemCpy
      Src: /src/clamav/libclamav/7z/Delta.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - state
    - delta
    - data
    - size
    argTypes:
    - Byte*
    - unsigned
    - Byte*
    - SizeT
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: Delta_Encode
    functionSourceFile: /src/clamav/libclamav/7z/Delta.c
    functionUses: 1
    functionsReached:
    - MyMemCpy
    linkageType: ''
    returnType: void
    signature: void Delta_Encode(Byte *state, unsigned delta, Byte *data, SizeT size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MyMemCpy
      Src: /src/clamav/libclamav/7z/Delta.c:47,1
    - Dst: MyMemCpy
      Src: /src/clamav/libclamav/7z/Delta.c:60,1
    - Dst: MyMemCpy
      Src: /src/clamav/libclamav/7z/Delta.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - delta
    - data
    - size
    argTypes:
    - Byte*
    - unsigned
    - Byte*
    - SizeT
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: Delta_Decode
    functionSourceFile: /src/clamav/libclamav/7z/Delta.c
    functionUses: 1
    functionsReached:
    - MyMemCpy
    linkageType: ''
    returnType: void
    signature: void Delta_Decode(Byte *state, unsigned delta, Byte *data, SizeT size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - data
    - size
    - ip
    - encoding
    argTypes:
    - Byte*
    - SizeT
    - UInt32
    - int
    constantsTouched: []
    func_position:
      end: 31
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 31
    functionName: ARM_Convert
    functionSourceFile: /src/clamav/libclamav/7z/Bra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SizeT
    signature: SizeT ARM_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - data
    - size
    - ip
    - encoding
    argTypes:
    - Byte*
    - SizeT
    - UInt32
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 67
    functionName: ARMT_Convert
    functionSourceFile: /src/clamav/libclamav/7z/Bra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SizeT
    signature: SizeT ARMT_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - data
    - size
    - ip
    - encoding
    argTypes:
    - Byte*
    - SizeT
    - UInt32
    - int
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: PPC_Convert
    functionSourceFile: /src/clamav/libclamav/7z/Bra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SizeT
    signature: SizeT PPC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - data
    - size
    - ip
    - encoding
    argTypes:
    - Byte*
    - SizeT
    - UInt32
    - int
    constantsTouched: []
    func_position:
      end: 133
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 133
    functionName: SPARC_Convert
    functionSourceFile: /src/clamav/libclamav/7z/Bra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SizeT
    signature: SizeT SPARC_Convert(Byte *data, SizeT size, UInt32 ip, int encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LZMA2_DIC_SIZE_FROM_PROP
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - prop
    - props
    argTypes:
    - Byte
    - Byte*
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Lzma2Dec_GetOldProps
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 0
    functionsReached:
    - LZMA2_DIC_SIZE_FROM_PROP
    linkageType: ''
    returnType: SRes
    signature: SRes Lzma2Dec_GetOldProps(Byte prop, Byte *props)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:78,1
    - Dst: Lzma2Dec_GetOldProps
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:78,1
    - Dst: LzmaDec_AllocateProbs
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - prop
    - alloc
    argTypes:
    - CLzma2Dec*
    - Byte
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: Lzma2Dec_AllocateProbs
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 1
    functionsReached:
    - Lzma2Dec_GetOldProps
    - RINOK
    - LzmaDec_AllocateProbs
    linkageType: ''
    returnType: SRes
    signature: SRes Lzma2Dec_AllocateProbs(CLzma2Dec *p, Byte prop, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:85,1
    - Dst: Lzma2Dec_GetOldProps
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:85,1
    - Dst: LzmaDec_Allocate
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - prop
    - alloc
    argTypes:
    - CLzma2Dec*
    - Byte
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: Lzma2Dec_Allocate
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 1
    functionsReached:
    - Lzma2Dec_GetOldProps
    - RINOK
    - LzmaDec_Allocate
    linkageType: ''
    returnType: SRes
    signature: SRes Lzma2Dec_Allocate(CLzma2Dec *p, Byte prop, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_Init
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - CLzma2Dec*
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: Lzma2Dec_Init
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 2
    functionsReached:
    - LzmaDec_Init
    linkageType: ''
    returnType: void
    signature: void Lzma2Dec_Init(CLzma2Dec *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PRF
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:104,1
    - Dst: printf
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:104,1
    - Dst: PRF
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:105,1
    - Dst: printf
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:105,1
    - Dst: LZMA2_IS_UNCOMPRESSED_STATE
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:108,1
    - Dst: PRF
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:125,1
    - Dst: printf
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:125,1
    - Dst: LZMA2_IS_UNCOMPRESSED_STATE
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:126,1
    - Dst: PRF
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:135,1
    - Dst: printf
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:135,1
    - Dst: LZMA2_IS_THERE_PROP
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:136,1
    - Dst: LZMA2_GET_LZMA_MODE
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - CLzma2Dec*
    - Byte
    constantsTouched: []
    func_position:
      end: 157
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 157
    functionName: Lzma2Dec_UpdateState
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 0
    functionsReached:
    - LZMA2_GET_LZMA_MODE
    - printf
    - LZMA2_IS_UNCOMPRESSED_STATE
    - LZMA2_IS_THERE_PROP
    - PRF
    linkageType: ''
    returnType: ELzma2State
    signature: ELzma2State Lzma2Dec_UpdateState(CLzma2Dec *p, Byte b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - src
    - size
    argTypes:
    - CLzmaDec*
    - Byte*
    - SizeT
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: LzmaDec_UpdateWithUncompressed
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void LzmaDec_UpdateWithUncompressed(CLzmaDec *p, const Byte *src, SizeT
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_UpdateState
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:195,1
    - Dst: LZMA2_IS_UNCOMPRESSED_STATE
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:209,1
    - Dst: LzmaDec_InitDicAndState
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:225,1
    - Dst: LzmaDec_UpdateWithUncompressed
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:234,1
    - Dst: LzmaDec_InitDicAndState
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:254,1
    - Dst: LzmaDec_DecodeToDic
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:262,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:271,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 77
    argCount: 6
    argNames:
    - p
    - dicLimit
    - src
    - srcLen
    - finishMode
    - status
    argTypes:
    - CLzma2Dec*
    - SizeT
    - Byte*
    - SizeT*
    - ELzmaFinishMode
    - ELzmaStatus*
    constantsTouched: []
    func_position:
      end: 289
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 289
    functionName: Lzma2Dec_DecodeToDic
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 1
    functionsReached:
    - LzmaDec_DecodeToDic
    - LzmaDec_UpdateWithUncompressed
    - Lzma2Dec_UpdateState
    - LZMA2_IS_UNCOMPRESSED_STATE
    - LzmaDec_InitDicAndState
    - RINOK
    linkageType: ''
    returnType: SRes
    signature: "SRes Lzma2Dec_DecodeToDic(CLzma2Dec *p, SizeT dicLimit,\n    const
      Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_DecodeToDic
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:314,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - p
    - dest
    - destLen
    - src
    - srcLen
    - finishMode
    - status
    argTypes:
    - CLzma2Dec*
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - ELzmaFinishMode
    - ELzmaStatus*
    constantsTouched: []
    func_position:
      end: 328
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 328
    functionName: Lzma2Dec_DecodeToBuf
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Lzma2Dec_DecodeToDic
    linkageType: ''
    returnType: SRes
    signature: SRes Lzma2Dec_DecodeToBuf(CLzma2Dec *p, Byte *dest, SizeT *destLen,
      const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lzma2Dec_Construct
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:338,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:345,1
    - Dst: Lzma2Dec_GetOldProps
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:345,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:346,1
    - Dst: LzmaDec_AllocateProbs
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:346,1
    - Dst: Lzma2Dec_DecodeToDic
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:349,1
    - Dst: LzmaDec_FreeProbs
      Src: /src/clamav/libclamav/7z/Lzma2Dec.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - dest
    - destLen
    - src
    - srcLen
    - prop
    - finishMode
    - status
    - alloc
    argTypes:
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - Byte
    - ELzmaFinishMode
    - ELzmaStatus*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 356
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 356
    functionName: Lzma2Decode
    functionSourceFile: /src/clamav/libclamav/7z/Lzma2Dec.c
    functionUses: 0
    functionsReached:
    - Lzma2Dec_DecodeToDic
    - Lzma2Dec_Construct
    - LzmaDec_AllocateProbs
    - Lzma2Dec_GetOldProps
    - RINOK
    - LzmaDec_FreeProbs
    linkageType: ''
    returnType: SRes
    signature: "SRes Lzma2Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT
      *srcLen,\n    Byte prop, ELzmaFinishMode finishMode, ELzmaStatus *status, ISzAlloc
      *alloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IsJ
      Src: /src/clamav/libclamav/7z/Bcj2.c:72,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/Bcj2.c:93,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/Bcj2.c:100,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 10
    argNames:
    - buf0
    - size0
    - buf1
    - size1
    - buf2
    - size2
    - buf3
    - size3
    - outBuf
    - outSize
    argTypes:
    - Byte*
    - SizeT
    - Byte*
    - SizeT
    - Byte*
    - SizeT
    - Byte*
    - SizeT
    - Byte*
    - SizeT
    constantsTouched: []
    func_position:
      end: 130
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 130
    functionName: Bcj2_Decode
    functionSourceFile: /src/clamav/libclamav/7z/Bcj2.c
    functionUses: 1
    functionsReached:
    - UPDATE_1
    - UPDATE_0
    - IsJ
    linkageType: ''
    returnType: int
    signature: "int Bcj2_Decode(\n    const Byte *buf0, SizeT size0,\n    const Byte
      *buf1, SizeT size1,\n    const Byte *buf2, SizeT size2,\n    const Byte *buf3,
      SizeT size3,\n    Byte *outBuf, SizeT outSize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/7z/7zAlloc.c:29,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/7z/7zAlloc.c:33,1
    - Dst: malloc
      Src: /src/clamav/libclamav/7z/7zAlloc.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: SzAlloc
    functionSourceFile: /src/clamav/libclamav/7z/7zAlloc.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - malloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *SzAlloc(void *p, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/7z/7zAlloc.c:41,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/7z/7zAlloc.c:46,1
    - Dst: free
      Src: /src/clamav/libclamav/7z/7zAlloc.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - address
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: SzFree
    functionSourceFile: /src/clamav/libclamav/7z/7zAlloc.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SzFree(void *p, void *address)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/7z/7zAlloc.c:54,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/7z/7zAlloc.c:58,1
    - Dst: HeapAlloc
      Src: /src/clamav/libclamav/7z/7zAlloc.c:61,1
    - Dst: GetProcessHeap
      Src: /src/clamav/libclamav/7z/7zAlloc.c:61,1
    - Dst: malloc
      Src: /src/clamav/libclamav/7z/7zAlloc.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: SzAllocTemp
    functionSourceFile: /src/clamav/libclamav/7z/7zAlloc.c
    functionUses: 0
    functionsReached:
    - HeapAlloc
    - UNUSEDPARAM
    - fprintf
    - GetProcessHeap
    - malloc
    linkageType: ''
    returnType: void
    signature: void *SzAllocTemp(void *p, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/libclamav/7z/7zAlloc.c:69,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/7z/7zAlloc.c:74,1
    - Dst: HeapFree
      Src: /src/clamav/libclamav/7z/7zAlloc.c:77,1
    - Dst: GetProcessHeap
      Src: /src/clamav/libclamav/7z/7zAlloc.c:77,1
    - Dst: free
      Src: /src/clamav/libclamav/7z/7zAlloc.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - address
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 82
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 82
    functionName: SzFreeTemp
    functionSourceFile: /src/clamav/libclamav/7z/7zAlloc.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - HeapFree
    - fprintf
    - GetProcessHeap
    - free
    linkageType: ''
    returnType: void
    signature: void SzFreeTemp(void *p, void *address)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CDynBuf*
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: DynBuf_Construct
    functionSourceFile: /src/clamav/libclamav/7z/7zBuf2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DynBuf_Construct(CDynBuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CDynBuf*
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: DynBuf_SeekToBeg
    functionSourceFile: /src/clamav/libclamav/7z/7zBuf2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DynBuf_SeekToBeg(CDynBuf *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/7zBuf2.c:32,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/7zBuf2.c:36,1
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/7zBuf2.c:37,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/7zBuf2.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - p
    - buf
    - size
    - alloc
    argTypes:
    - CDynBuf*
    - Byte*
    - size_t
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 43
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 43
    functionName: DynBuf_Write
    functionSourceFile: /src/clamav/libclamav/7z/7zBuf2.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Alloc
    - memcpy
    - ISzAlloc*::Free
    linkageType: ''
    returnType: int
    signature: int DynBuf_Write(CDynBuf *p, const Byte *buf, size_t size, ISzAlloc
      *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/7zBuf2.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CDynBuf*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: DynBuf_Free
    functionSourceFile: /src/clamav/libclamav/7z/7zBuf2.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void DynBuf_Free(CDynBuf *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - v
    argTypes:
    - Byte*
    - UInt64
    constantsTouched: []
    func_position:
      end: 28
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 28
    functionName: Xz_WriteVarInt
    functionSourceFile: /src/clamav/libclamav/7z/Xz.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned Xz_WriteVarInt(Byte *buf, UInt64 v)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzStream*
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: Xz_Construct
    functionSourceFile: /src/clamav/libclamav/7z/Xz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Xz_Construct(CXzStream *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/Xz.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CXzStream*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: Xz_Free
    functionSourceFile: /src/clamav/libclamav/7z/Xz.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void Xz_Free(CXzStream *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - CXzStreamFlags
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: XzFlags_GetCheckSize
    functionSourceFile: /src/clamav/libclamav/7z/Xz.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned XzFlags_GetCheckSize(CXzStreamFlags f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_init
      Src: /src/clamav/libclamav/7z/Xz.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - mode
    argTypes:
    - CXzCheck*
    - int
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: XzCheck_Init
    functionSourceFile: /src/clamav/libclamav/7z/Xz.c
    functionUses: 1
    functionsReached:
    - cl_hash_init
    linkageType: ''
    returnType: void
    signature: void XzCheck_Init(CXzCheck *p, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CrcUpdate
      Src: /src/clamav/libclamav/7z/Xz.c:67,1
    - Dst: Crc64Update
      Src: /src/clamav/libclamav/7z/Xz.c:68,1
    - Dst: cl_update_hash
      Src: /src/clamav/libclamav/7z/Xz.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - p
    - data
    - size
    argTypes:
    - CXzCheck*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: XzCheck_Update
    functionSourceFile: /src/clamav/libclamav/7z/Xz.c
    functionUses: 1
    functionsReached:
    - Crc64Update
    - cl_update_hash
    - CrcUpdate
    linkageType: ''
    returnType: void
    signature: void XzCheck_Update(CXzCheck *p, const void *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetUi32
      Src: /src/clamav/libclamav/7z/Xz.c:81,1
    - Dst: CRC_GET_DIGEST
      Src: /src/clamav/libclamav/7z/Xz.c:81,1
    - Dst: CRC64_GET_DIGEST
      Src: /src/clamav/libclamav/7z/Xz.c:86,1
    - Dst: cl_finish_hash
      Src: /src/clamav/libclamav/7z/Xz.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - p
    - digest
    argTypes:
    - CXzCheck*
    - Byte*
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: XzCheck_Final
    functionSourceFile: /src/clamav/libclamav/7z/Xz.c
    functionUses: 1
    functionsReached:
    - CRC_GET_DIGEST
    - SetUi32
    - CRC64_GET_DIGEST
    - cl_finish_hash
    linkageType: ''
    returnType: int
    signature: int XzCheck_Final(CXzCheck *p, Byte *digest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:19,1
    - Dst: SeqInStream_Read2
      Src: /src/clamav/libclamav/7z/XzIn.c:19,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/7z/XzIn.c:20,1
    - Dst: Xz_ParseHeader
      Src: /src/clamav/libclamav/7z/XzIn.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - inStream
    argTypes:
    - CXzStreamFlags*
    - ISeqInStream*
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: Xz_ReadHeader
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - SeqInStream_Read2
    - memcmp
    - RINOK
    - Xz_ParseHeader
    linkageType: ''
    returnType: SRes
    signature: SRes Xz_ReadHeader(CXzStreamFlags *p, ISeqInStream *inStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:34,1
    - Dst: SeqInStream_ReadByte
      Src: /src/clamav/libclamav/7z/XzIn.c:34,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:45,1
    - Dst: SeqInStream_Read
      Src: /src/clamav/libclamav/7z/XzIn.c:45,1
    - Dst: XzBlock_Parse
      Src: /src/clamav/libclamav/7z/XzIn.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - p
    - inStream
    - isIndex
    - headerSizeRes
    argTypes:
    - CXzBlock*
    - ISeqInStream*
    - Bool*
    - UInt32*
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: XzBlock_ReadHeader
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - XzBlock_Parse
    - SeqInStream_ReadByte
    - RINOK
    - SeqInStream_Read
    linkageType: ''
    returnType: SRes
    signature: SRes XzBlock_ReadHeader(CXzBlock *p, ISeqInStream *inStream, Bool *isIndex,
      UInt32 *headerSizeRes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADD_SIZE_CHECH
      Src: /src/clamav/libclamav/7z/XzIn.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzStream*
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: Xz_GetUnpackSize
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - ADD_SIZE_CHECH
    linkageType: ''
    returnType: UInt64
    signature: UInt64 Xz_GetUnpackSize(const CXzStream *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADD_SIZE_CHECH
      Src: /src/clamav/libclamav/7z/XzIn.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzStream*
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: Xz_GetPackSize
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - ADD_SIZE_CHECH
    linkageType: ''
    returnType: UInt64
    signature: UInt64 Xz_GetPackSize(const CXzStream *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/XzIn.c:86,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzIn.c:87,1
    - Dst: READ_VARINT_AND_CHECK
      Src: /src/clamav/libclamav/7z/XzIn.c:92,1
    - Dst: Xz_Free
      Src: /src/clamav/libclamav/7z/XzIn.c:99,1
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/XzIn.c:104,1
    - Dst: READ_VARINT_AND_CHECK
      Src: /src/clamav/libclamav/7z/XzIn.c:110,1
    - Dst: READ_VARINT_AND_CHECK
      Src: /src/clamav/libclamav/7z/XzIn.c:111,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - p
    - buf
    - size
    - alloc
    argTypes:
    - CXzStream*
    - Byte*
    - size_t
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 120
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 120
    functionName: Xz_ReadIndex2
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - CrcCalc
    - ISzAlloc*::Alloc
    - READ_VARINT_AND_CHECK
    - Xz_Free
    - GetUi32
    linkageType: ''
    returnType: SRes
    signature: SRes Xz_ReadIndex2(CXzStream *p, const Byte *buf, size_t size, ISzAlloc
      *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/XzIn.c:132,1
    - Dst: LookInStream_Read2
      Src: /src/clamav/libclamav/7z/XzIn.c:135,1
    - Dst: Xz_ReadIndex2
      Src: /src/clamav/libclamav/7z/XzIn.c:137,1
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/XzIn.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - p
    - stream
    - indexSize
    - alloc
    argTypes:
    - CXzStream*
    - ILookInStream*
    - UInt64
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: Xz_ReadIndex
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Alloc
    - Xz_ReadIndex2
    - ISzAlloc*::Free
    - LookInStream_Read2
    linkageType: ''
    returnType: SRes
    signature: SRes Xz_ReadIndex(CXzStream *p, ILookInStream *stream, UInt64 indexSize,
      ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/XzIn.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inStream
    - res
    argTypes:
    - ILookInStream*
    - Int64*
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: SeekFromCur
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - ILookInStream*::Seek
    linkageType: ''
    returnType: SRes
    signature: SRes SeekFromCur(ILookInStream *inStream, Int64 *res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:155,1
    - Dst: SeekFromCur
      Src: /src/clamav/libclamav/7z/XzIn.c:155,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:157,1
    - Dst: LookInStream_Read2
      Src: /src/clamav/libclamav/7z/XzIn.c:157,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/7z/XzIn.c:159,1
    - Dst: startOffset < XZ_STREAM_FOOTER_SIZE || i >
      Src: /src/clamav/libclamav/7z/XzIn.c:169,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:174,1
    - Dst: SeekFromCur
      Src: /src/clamav/libclamav/7z/XzIn.c:174,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:175,1
    - Dst: LookInStream_Read2
      Src: /src/clamav/libclamav/7z/XzIn.c:175,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:187,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/XzIn.c:187,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:188,1
    - Dst: LookInStream_Read2
      Src: /src/clamav/libclamav/7z/XzIn.c:188,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/7z/XzIn.c:189,1
    - Dst: GetBe16
      Src: /src/clamav/libclamav/7z/XzIn.c:196,1
    - Dst: XzFlags_IsSupported
      Src: /src/clamav/libclamav/7z/XzIn.c:198,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzIn.c:201,1
    - Dst: CrcCalc
      Src: /src/clamav/libclamav/7z/XzIn.c:201,1
    - Dst: GetUi32
      Src: /src/clamav/libclamav/7z/XzIn.c:204,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:207,1
    - Dst: SeekFromCur
      Src: /src/clamav/libclamav/7z/XzIn.c:207,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:209,1
    - Dst: Xz_ReadIndex
      Src: /src/clamav/libclamav/7z/XzIn.c:209,1
    - Dst: Xz_GetPackSize
      Src: /src/clamav/libclamav/7z/XzIn.c:212,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:219,1
    - Dst: SeekFromCur
      Src: /src/clamav/libclamav/7z/XzIn.c:219,1
    - Dst: SecToRead_CreateVTable
      Src: /src/clamav/libclamav/7z/XzIn.c:224,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:227,1
    - Dst: Xz_ReadHeader
      Src: /src/clamav/libclamav/7z/XzIn.c:227,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - p
    - stream
    - startOffset
    - alloc
    argTypes:
    - CXzStream*
    - ILookInStream*
    - Int64*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 230
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 230
    functionName: Xz_ReadBackward
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - CrcCalc
    - Xz_GetPackSize
    - SecToRead_CreateVTable
    - Xz_ReadHeader
    - GetBe16
    - XzFlags_IsSupported
    - Xz_ReadIndex
    - startOffset < XZ_STREAM_FOOTER_SIZE || i >
    - RINOK
    - ILookInStream*::Seek
    - SeekFromCur
    - LookInStream_Read2
    - memcmp
    - GetUi32
    linkageType: ''
    returnType: SRes
    signature: SRes Xz_ReadBackward(CXzStream *p, ILookInStream *stream, Int64 *startOffset,
      ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzs*
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: Xzs_Construct
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Xzs_Construct(CXzs *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Xz_Free
      Src: /src/clamav/libclamav/7z/XzIn.c:245,1
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/XzIn.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CXzs*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: Xzs_Free
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - Xz_Free
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void Xzs_Free(CXzs *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzs*
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: Xzs_GetNumBlocks
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UInt64
    signature: UInt64 Xzs_GetNumBlocks(const CXzs *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADD_SIZE_CHECH
      Src: /src/clamav/libclamav/7z/XzIn.c:265,1
    - Dst: Xz_GetUnpackSize
      Src: /src/clamav/libclamav/7z/XzIn.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CXzs*
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: Xzs_GetUnpackSize
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - ADD_SIZE_CHECH
    - Xz_GetUnpackSize
    linkageType: ''
    returnType: UInt64
    signature: UInt64 Xzs_GetUnpackSize(const CXzs *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:283,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/XzIn.c:283,1
    - Dst: Xz_Construct
      Src: /src/clamav/libclamav/7z/XzIn.c:289,1
    - Dst: Xz_ReadBackward
      Src: /src/clamav/libclamav/7z/XzIn.c:290,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:292,1
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/XzIn.c:296,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/XzIn.c:300,1
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/XzIn.c:301,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/XzIn.c:307,1
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/XzIn.c:307,1
    - Dst: ICompressProgress*::Progress
      Src: /src/clamav/libclamav/7z/XzIn.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - p
    - stream
    - startOffset
    - progress
    - alloc
    argTypes:
    - CXzs*
    - ILookInStream*
    - Int64*
    - ICompressProgress*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 312
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 312
    functionName: Xzs_ReadBackward
    functionSourceFile: /src/clamav/libclamav/7z/XzIn.c
    functionUses: 0
    functionsReached:
    - Xz_Construct
    - ICompressProgress*::Progress
    - ISzAlloc*::Alloc
    - RINOK
    - ILookInStream*::Seek
    - Xz_ReadBackward
    - memcpy
    - ISzAlloc*::Free
    linkageType: ''
    returnType: SRes
    signature: SRes Xzs_ReadBackward(CXzs *p, ILookInStream *stream, Int64 *startOffset,
      ICompressProgress *progress, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/7z/Ppmd7.c:78,1
    - Dst: memset
      Src: /src/clamav/libclamav/7z/Ppmd7.c:79,1
    - Dst: memset
      Src: /src/clamav/libclamav/7z/Ppmd7.c:90,1
    - Dst: memset
      Src: /src/clamav/libclamav/7z/Ppmd7.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 92
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 92
    functionName: Ppmd7_Construct
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void Ppmd7_Construct(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/Ppmd7.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CPpmd7*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Ppmd7_Free
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void Ppmd7_Free(CPpmd7 *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ppmd7_Free
      Src: /src/clamav/libclamav/7z/Ppmd7.c:105,1
    - Dst: PPMD_32BIT
      Src: /src/clamav/libclamav/7z/Ppmd7.c:107,1
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/Ppmd7.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - p
    - size
    - alloc
    argTypes:
    - CPpmd7*
    - UInt32
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 121
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 121
    functionName: Ppmd7_Alloc
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - ISzAlloc*::Alloc
    - PPMD_32BIT
    - Ppmd7_Free
    linkageType: ''
    returnType: Bool
    signature: Bool Ppmd7_Alloc(CPpmd7 *p, UInt32 size, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - node
    - indx
    argTypes:
    - CPpmd7*
    - void*
    - unsigned
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: InsertNode
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 5
    functionsReached:
    - REF
    linkageType: ''
    returnType: void
    signature: void InsertNode(CPpmd7 *p, void *node, unsigned indx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ppmd7_GetPtr
      Src: /src/clamav/libclamav/7z/Ppmd7.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - indx
    argTypes:
    - CPpmd7*
    - unsigned
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: RemoveNode
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 4
    functionsReached:
    - Ppmd7_GetPtr
    linkageType: ''
    returnType: void
    signature: void *RemoveNode(CPpmd7 *p, unsigned indx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U2B
      Src: /src/clamav/libclamav/7z/Ppmd7.c:139,1
    - Dst: I2U
      Src: /src/clamav/libclamav/7z/Ppmd7.c:139,1
    - Dst: I2U
      Src: /src/clamav/libclamav/7z/Ppmd7.c:140,1
    - Dst: U2I
      Src: /src/clamav/libclamav/7z/Ppmd7.c:140,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:143,1
    - Dst: U2B
      Src: /src/clamav/libclamav/7z/Ppmd7.c:143,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - ptr
    - oldIndx
    - newIndx
    argTypes:
    - CPpmd7*
    - void*
    - unsigned
    - unsigned
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: SplitBlock
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 2
    functionsReached:
    - U2B
    - InsertNode
    - I2U
    - U2I
    linkageType: ''
    returnType: void
    signature: void SplitBlock(CPpmd7 *p, void *ptr, unsigned oldIndx, unsigned newIndx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: I2U
      Src: /src/clamav/libclamav/7z/Ppmd7.c:165,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:170,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:172,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:178,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:179,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:180,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:187,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:191,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:195,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:196,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:203,1
    - Dst: NODE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:205,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:209,1
    - Dst: I2U
      Src: /src/clamav/libclamav/7z/Ppmd7.c:210,1
    - Dst: U2I
      Src: /src/clamav/libclamav/7z/Ppmd7.c:210,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:213,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:215,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 218
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 218
    functionName: GlueFreeBlocks
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - InsertNode
    - NODE
    - I2U
    - U2I
    linkageType: ''
    returnType: void
    signature: void GlueFreeBlocks(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GlueFreeBlocks
      Src: /src/clamav/libclamav/7z/Ppmd7.c:226,1
    - Dst: RemoveNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:228,1
    - Dst: U2B
      Src: /src/clamav/libclamav/7z/Ppmd7.c:235,1
    - Dst: I2U
      Src: /src/clamav/libclamav/7z/Ppmd7.c:235,1
    - Dst: RemoveNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:241,1
    - Dst: SplitBlock
      Src: /src/clamav/libclamav/7z/Ppmd7.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - p
    - indx
    argTypes:
    - CPpmd7*
    - unsigned
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: AllocUnitsRare
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 2
    functionsReached:
    - U2B
    - RemoveNode
    - SplitBlock
    - I2U
    - GlueFreeBlocks
    linkageType: ''
    returnType: void
    signature: void *AllocUnitsRare(CPpmd7 *p, unsigned indx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RemoveNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:250,1
    - Dst: U2B
      Src: /src/clamav/libclamav/7z/Ppmd7.c:251,1
    - Dst: I2U
      Src: /src/clamav/libclamav/7z/Ppmd7.c:251,1
    - Dst: AllocUnitsRare
      Src: /src/clamav/libclamav/7z/Ppmd7.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - indx
    argTypes:
    - CPpmd7*
    - unsigned
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 259
    functionName: AllocUnits
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 2
    functionsReached:
    - U2B
    - I2U
    - RemoveNode
    - AllocUnitsRare
    linkageType: ''
    returnType: void
    signature: void *AllocUnits(CPpmd7 *p, unsigned indx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MyMem12Cpy
      Src: /src/clamav/libclamav/7z/Ppmd7.c:274,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:275,1
    - Dst: SplitBlock
      Src: /src/clamav/libclamav/7z/Ppmd7.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - oldPtr
    - oldNU
    - newNU
    argTypes:
    - CPpmd7*
    - void*
    - unsigned
    - unsigned
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: ShrinkUnits
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - InsertNode
    - MyMem12Cpy
    - SplitBlock
    linkageType: ''
    returnType: void
    signature: void *ShrinkUnits(CPpmd7 *p, void *oldPtr, unsigned oldNU, unsigned
      newNU)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - CPpmd_State*
    - CPpmd_Void_Ref
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: SetSuccessor
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSuccessor(CPpmd_State *p, CPpmd_Void_Ref v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/7z/Ppmd7.c:294,1
    - Dst: U2B
      Src: /src/clamav/libclamav/7z/Ppmd7.c:309,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:310,1
    - Dst: SetSuccessor
      Src: /src/clamav/libclamav/7z/Ppmd7.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 335
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 335
    functionName: RestartModel
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - U2B
    - memset
    - REF
    - SetSuccessor
    linkageType: ''
    returnType: void
    signature: void RestartModel(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RestartModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - maxOrder
    argTypes:
    - CPpmd7*
    - unsigned
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: Ppmd7_Init
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - RestartModel
    linkageType: ''
    returnType: void
    signature: void Ppmd7_Init(CPpmd7 *p, unsigned maxOrder)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SUCCESSOR
      Src: /src/clamav/libclamav/7z/Ppmd7.c:350,1
    - Dst: SUFFIX
      Src: /src/clamav/libclamav/7z/Ppmd7.c:361,1
    - Dst: STATS
      Src: /src/clamav/libclamav/7z/Ppmd7.c:364,1
    - Dst: ONE_STATE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:367,1
    - Dst: SUCCESSOR
      Src: /src/clamav/libclamav/7z/Ppmd7.c:368,1
    - Dst: CTX
      Src: /src/clamav/libclamav/7z/Ppmd7.c:371,1
    - Dst: Ppmd7_GetPtr
      Src: /src/clamav/libclamav/7z/Ppmd7.c:379,1
    - Dst: SetSuccessor
      Src: /src/clamav/libclamav/7z/Ppmd7.c:380,1
    - Dst: ONE_STATE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:383,1
    - Dst: STATS
      Src: /src/clamav/libclamav/7z/Ppmd7.c:388,1
    - Dst: RemoveNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:401,1
    - Dst: AllocUnitsRare
      Src: /src/clamav/libclamav/7z/Ppmd7.c:404,1
    - Dst: ONE_STATE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:409,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:410,1
    - Dst: SetSuccessor
      Src: /src/clamav/libclamav/7z/Ppmd7.c:411,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:411,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - p
    - skip
    argTypes:
    - CPpmd7*
    - Bool
    constantsTouched: []
    func_position:
      end: 417
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 417
    functionName: CreateSuccessors
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - STATS
    - SUFFIX
    - RemoveNode
    - REF
    - SetSuccessor
    - SUCCESSOR
    - Ppmd7_GetPtr
    - AllocUnitsRare
    - ONE_STATE
    - CTX
    linkageType: ''
    returnType: CTX_PTR
    signature: CTX_PTR CreateSuccessors(CPpmd7 *p, Bool skip)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - CPpmd_State*
    - CPpmd_State*
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: SwapStates
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SwapStates(CPpmd_State *t1, CPpmd_State *t2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SUCCESSOR
      Src: /src/clamav/libclamav/7z/Ppmd7.c:428,1
    - Dst: SUFFIX
      Src: /src/clamav/libclamav/7z/Ppmd7.c:434,1
    - Dst: ONE_STATE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:438,1
    - Dst: STATS
      Src: /src/clamav/libclamav/7z/Ppmd7.c:444,1
    - Dst: SwapStates
      Src: /src/clamav/libclamav/7z/Ppmd7.c:450,1
    - Dst: CreateSuccessors
      Src: /src/clamav/libclamav/7z/Ppmd7.c:464,1
    - Dst: RestartModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:467,1
    - Dst: SetSuccessor
      Src: /src/clamav/libclamav/7z/Ppmd7.c:470,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:470,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:475,1
    - Dst: RestartModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:478,1
    - Dst: CreateSuccessors
      Src: /src/clamav/libclamav/7z/Ppmd7.c:486,1
    - Dst: RestartModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:489,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:492,1
    - Dst: SetSuccessor
      Src: /src/clamav/libclamav/7z/Ppmd7.c:502,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:503,1
    - Dst: SUFFIX
      Src: /src/clamav/libclamav/7z/Ppmd7.c:508,1
    - Dst: U2I
      Src: /src/clamav/libclamav/7z/Ppmd7.c:519,1
    - Dst: RestartModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:525,1
    - Dst: STATS
      Src: /src/clamav/libclamav/7z/Ppmd7.c:528,1
    - Dst: MyMem12Cpy
      Src: /src/clamav/libclamav/7z/Ppmd7.c:529,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:530,1
    - Dst: STATS_REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:531,1
    - Dst: AllocUnits
      Src: /src/clamav/libclamav/7z/Ppmd7.c:538,1
    - Dst: RestartModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:541,1
    - Dst: ONE_STATE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:544,1
    - Dst: REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:545,1
    - Dst: STATS
      Src: /src/clamav/libclamav/7z/Ppmd7.c:565,1
    - Dst: SetSuccessor
      Src: /src/clamav/libclamav/7z/Ppmd7.c:566,1
    - Dst: CTX
      Src: /src/clamav/libclamav/7z/Ppmd7.c:572,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 97
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 573
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 573
    functionName: UpdateModel
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 1
    functionsReached:
    - InsertNode
    - SUFFIX
    - AllocUnits
    - CTX
    - REF
    - SetSuccessor
    - SUCCESSOR
    - SwapStates
    - RestartModel
    - MyMem12Cpy
    - STATS_REF
    - ONE_STATE
    - CreateSuccessors
    - STATS
    - U2I
    linkageType: ''
    returnType: void
    signature: void UpdateModel(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STATS
      Src: /src/clamav/libclamav/7z/Ppmd7.c:578,1
    - Dst: InsertNode
      Src: /src/clamav/libclamav/7z/Ppmd7.c:626,1
    - Dst: U2I
      Src: /src/clamav/libclamav/7z/Ppmd7.c:626,1
    - Dst: ONE_STATE
      Src: /src/clamav/libclamav/7z/Ppmd7.c:627,1
    - Dst: STATS_REF
      Src: /src/clamav/libclamav/7z/Ppmd7.c:633,1
    - Dst: ShrinkUnits
      Src: /src/clamav/libclamav/7z/Ppmd7.c:633,1
    - Dst: STATS
      Src: /src/clamav/libclamav/7z/Ppmd7.c:636,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 637
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 637
    functionName: Rescale
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - ShrinkUnits
    - STATS_REF
    - U2I
    - InsertNode
    - STATS
    - ONE_STATE
    linkageType: ''
    returnType: void
    signature: void Rescale(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SUFFIX
      Src: /src/clamav/libclamav/7z/Ppmd7.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - p
    - numMasked
    - escFreq
    argTypes:
    - CPpmd7*
    - unsigned
    - UInt32*
    constantsTouched: []
    func_position:
      end: 662
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 662
    functionName: Ppmd7_MakeEscFreq
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - SUFFIX
    linkageType: ''
    returnType: CPpmd_See
    signature: CPpmd_See *Ppmd7_MakeEscFreq(CPpmd7 *p, unsigned numMasked, UInt32
      *escFreq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/clamav/libclamav/7z/Ppmd7.c:666,1
    - Dst: SUCCESSOR
      Src: /src/clamav/libclamav/7z/Ppmd7.c:666,1
    - Dst: UpdateModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 671
      start: 664
    functionDepth: 5
    functionLinenumber: 664
    functionLinenumberEnd: 671
    functionName: NextContext
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - UpdateModel
    - SUCCESSOR
    - CTX
    linkageType: ''
    returnType: void
    signature: void NextContext(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SwapStates
      Src: /src/clamav/libclamav/7z/Ppmd7.c:680,1
    - Dst: Rescale
      Src: /src/clamav/libclamav/7z/Ppmd7.c:683,1
    - Dst: NextContext
      Src: /src/clamav/libclamav/7z/Ppmd7.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 686
      start: 673
    functionDepth: 6
    functionLinenumber: 673
    functionLinenumberEnd: 686
    functionName: Ppmd7_Update1
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - Rescale
    - SwapStates
    - NextContext
    linkageType: ''
    returnType: void
    signature: void Ppmd7_Update1(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rescale
      Src: /src/clamav/libclamav/7z/Ppmd7.c:694,1
    - Dst: NextContext
      Src: /src/clamav/libclamav/7z/Ppmd7.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 696
      start: 688
    functionDepth: 6
    functionLinenumber: 688
    functionLinenumberEnd: 696
    functionName: Ppmd7_Update1_0
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - Rescale
    - NextContext
    linkageType: ''
    returnType: void
    signature: void Ppmd7_Update1_0(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NextContext
      Src: /src/clamav/libclamav/7z/Ppmd7.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 704
      start: 698
    functionDepth: 6
    functionLinenumber: 698
    functionLinenumberEnd: 704
    functionName: Ppmd7_UpdateBin
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - NextContext
    linkageType: ''
    returnType: void
    signature: void Ppmd7_UpdateBin(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rescale
      Src: /src/clamav/libclamav/7z/Ppmd7.c:710,1
    - Dst: UpdateModel
      Src: /src/clamav/libclamav/7z/Ppmd7.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7*
    constantsTouched: []
    func_position:
      end: 713
      start: 706
    functionDepth: 5
    functionLinenumber: 706
    functionLinenumberEnd: 713
    functionName: Ppmd7_Update2
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7.c
    functionUses: 0
    functionsReached:
    - Rescale
    - UpdateModel
    linkageType: ''
    returnType: void
    signature: void Ppmd7_Update2(CPpmd7 *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:166,1
    - Dst: GET_BIT
      Src: /src/clamav/libclamav/7z/LzmaDec.c:176,1
    - Dst: GET_BIT2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:191,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:201,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:205,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:211,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:217,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:221,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:228,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:233,1
    - Dst: IF_BIT_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:235,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:237,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:242,1
    - Dst: IF_BIT_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:244,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:246,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:251,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:268,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:275,1
    - Dst: UPDATE_0
      Src: /src/clamav/libclamav/7z/LzmaDec.c:279,1
    - Dst: UPDATE_1
      Src: /src/clamav/libclamav/7z/LzmaDec.c:286,1
    - Dst: TREE_6_DECODE
      Src: /src/clamav/libclamav/7z/LzmaDec.c:301,1
    - Dst: GET_BIT2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:316,1
    - Dst: GET_BIT2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:351,1
    - Dst: GET_BIT2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:352,1
    - Dst: GET_BIT2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:353,1
    - Dst: GET_BIT2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:354,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 144
    argCount: 3
    argNames:
    - p
    - limit
    - bufLimit
    argTypes:
    - CLzmaDec*
    - SizeT
    - Byte*
    constantsTouched: []
    func_position:
      end: 428
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 428
    functionName: MY_FAST_CALL::LzmaDec_DecodeReal
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached:
    - GET_BIT
    - IF_BIT_0
    - UPDATE_1
    - UPDATE_0
    - TREE_6_DECODE
    - GET_BIT2
    linkageType: ''
    returnType: int
    signature: int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const
      Byte *bufLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - p
    - limit
    argTypes:
    - CLzmaDec*
    - SizeT
    constantsTouched: []
    func_position:
      end: 454
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 454
    functionName: MY_FAST_CALL::LzmaDec_WriteRem
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MY_FAST_CALL LzmaDec_WriteRem(CLzmaDec *p, SizeT limit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:467,1
    - Dst: MY_FAST_CALL::LzmaDec_DecodeReal
      Src: /src/clamav/libclamav/7z/LzmaDec.c:467,1
    - Dst: MY_FAST_CALL::LzmaDec_WriteRem
      Src: /src/clamav/libclamav/7z/LzmaDec.c:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - p
    - limit
    - bufLimit
    argTypes:
    - CLzmaDec*
    - SizeT
    - Byte*
    constantsTouched: []
    func_position:
      end: 479
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 479
    functionName: MY_FAST_CALL::LzmaDec_DecodeReal2
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached:
    - MY_FAST_CALL::LzmaDec_DecodeReal
    - RINOK
    - MY_FAST_CALL::LzmaDec_WriteRem
    linkageType: ''
    returnType: int
    signature: int MY_FAST_CALL LzmaDec_DecodeReal2(CLzmaDec *p, SizeT limit, const
      Byte *bufLimit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_BIT_CHECK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:520,1
    - Dst: GET_BIT2_CHECK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:535,1
    - Dst: IF_BIT_0_CHECK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:547,1
    - Dst: IF_BIT_0_CHECK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:559,1
    - Dst: IF_BIT_0_CHECK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:563,1
    - Dst: IF_BIT_0_CHECK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:578,1
    - Dst: IF_BIT_0_CHECK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:586,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 3
    argNames:
    - p
    - buf
    - inSize
    argTypes:
    - CLzmaDec*
    - Byte*
    - SizeT
    constantsTouched: []
    func_position:
      end: 627
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 627
    functionName: LzmaDec_TryDummy
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached:
    - IF_BIT_0_CHECK
    - GET_BIT_CHECK
    - GET_BIT2_CHECK
    linkageType: ''
    returnType: ELzmaDummy
    signature: ELzmaDummy LzmaDec_TryDummy(const CLzmaDec *p, const Byte *buf, SizeT
      inSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - data
    argTypes:
    - CLzmaDec*
    - Byte*
    constantsTouched: []
    func_position:
      end: 685
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 685
    functionName: LzmaDec_InitRc
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LzmaDec_InitRc(CLzmaDec *p, const Byte *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - p
    - initDic
    - initState
    argTypes:
    - CLzmaDec*
    - Bool
    - Bool
    constantsTouched: []
    func_position:
      end: 701
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 701
    functionName: LzmaDec_InitDicAndState
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_InitDicAndState
      Src: /src/clamav/libclamav/7z/LzmaDec.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - CLzmaDec*
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: LzmaDec_Init
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 3
    functionsReached:
    - LzmaDec_InitDicAndState
    linkageType: ''
    returnType: void
    signature: void LzmaDec_Init(CLzmaDec *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - CLzmaDec*
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: LzmaDec_InitStateReal
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LzmaDec_InitStateReal(CLzmaDec *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_WriteRem
      Src: /src/clamav/libclamav/7z/LzmaDec.c:726,1
    - Dst: LzmaDec_InitRc
      Src: /src/clamav/libclamav/7z/LzmaDec.c:746,1
    - Dst: LzmaDec_InitStateReal
      Src: /src/clamav/libclamav/7z/LzmaDec.c:772,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/LzmaDec.c:783,1
    - Dst: LzmaDec_DecodeReal2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:799,1
    - Dst: LzmaDec_DecodeReal2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:828,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 6
    argNames:
    - p
    - dicLimit
    - src
    - srcLen
    - finishMode
    - status
    argTypes:
    - CLzmaDec*
    - SizeT
    - Byte*
    - SizeT*
    - ELzmaFinishMode
    - ELzmaStatus*
    constantsTouched: []
    func_position:
      end: 840
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 840
    functionName: LzmaDec_DecodeToDic
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 2
    functionsReached:
    - LzmaDec_InitStateReal
    - LzmaDec_DecodeReal2
    - LzmaDec_WriteRem
    - LzmaDec_InitRc
    - memcpy
    linkageType: ''
    returnType: SRes
    signature: "SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src,
      SizeT *srcLen,\n    ELzmaFinishMode finishMode, ELzmaStatus *status)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_DecodeToDic
      Src: /src/clamav/libclamav/7z/LzmaDec.c:866,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/LzmaDec.c:871,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - p
    - dest
    - destLen
    - src
    - srcLen
    - finishMode
    - status
    argTypes:
    - CLzmaDec*
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - ELzmaFinishMode
    - ELzmaStatus*
    constantsTouched: []
    func_position:
      end: 880
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 880
    functionName: LzmaDec_DecodeToBuf
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 1
    functionsReached:
    - memcpy
    - LzmaDec_DecodeToDic
    linkageType: ''
    returnType: SRes
    signature: SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const
      Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/LzmaDec.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CLzmaDec*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: LzmaDec_FreeProbs
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 2
    functionsReached:
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISzAlloc*::Free
      Src: /src/clamav/libclamav/7z/LzmaDec.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CLzmaDec*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: LzmaDec_FreeDict
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Free
    linkageType: ''
    returnType: void
    signature: void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_FreeProbs
      Src: /src/clamav/libclamav/7z/LzmaDec.c:896,1
    - Dst: LzmaDec_FreeDict
      Src: /src/clamav/libclamav/7z/LzmaDec.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - alloc
    argTypes:
    - CLzmaDec*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 898
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 898
    functionName: LzmaDec_Free
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 1
    functionsReached:
    - LzmaDec_FreeDict
    - LzmaDec_FreeProbs
    linkageType: ''
    returnType: void
    signature: void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - p
    - data
    - size
    argTypes:
    - CLzmaProps*
    - Byte*
    - unsigned
    constantsTouched: []
    func_position:
      end: 924
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 924
    functionName: LzmaProps_Decode
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SRes
    signature: SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaProps_GetNumProbs
      Src: /src/clamav/libclamav/7z/LzmaDec.c:928,1
    - Dst: LzmaDec_FreeProbs
      Src: /src/clamav/libclamav/7z/LzmaDec.c:931,1
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/LzmaDec.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - p
    - propNew
    - alloc
    argTypes:
    - CLzmaDec*
    - CLzmaProps*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 938
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 938
    functionName: LzmaDec_AllocateProbs2
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 0
    functionsReached:
    - ISzAlloc*::Alloc
    - LzmaDec_FreeProbs
    - LzmaProps_GetNumProbs
    linkageType: ''
    returnType: SRes
    signature: SRes LzmaDec_AllocateProbs2(CLzmaDec *p, const CLzmaProps *propNew,
      ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:943,1
    - Dst: LzmaProps_Decode
      Src: /src/clamav/libclamav/7z/LzmaDec.c:943,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:944,1
    - Dst: LzmaDec_AllocateProbs2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - p
    - props
    - propsSize
    - alloc
    argTypes:
    - CLzmaDec*
    - Byte*
    - unsigned
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 947
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 947
    functionName: LzmaDec_AllocateProbs
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 3
    functionsReached:
    - RINOK
    - LzmaProps_Decode
    - LzmaDec_AllocateProbs2
    linkageType: ''
    returnType: SRes
    signature: SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned
      propsSize, ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:953,1
    - Dst: LzmaProps_Decode
      Src: /src/clamav/libclamav/7z/LzmaDec.c:953,1
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/LzmaDec.c:954,1
    - Dst: LzmaDec_AllocateProbs2
      Src: /src/clamav/libclamav/7z/LzmaDec.c:954,1
    - Dst: LzmaDec_FreeDict
      Src: /src/clamav/libclamav/7z/LzmaDec.c:958,1
    - Dst: ISzAlloc*::Alloc
      Src: /src/clamav/libclamav/7z/LzmaDec.c:959,1
    - Dst: LzmaDec_FreeProbs
      Src: /src/clamav/libclamav/7z/LzmaDec.c:962,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - p
    - props
    - propsSize
    - alloc
    argTypes:
    - CLzmaDec*
    - Byte*
    - unsigned
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 969
      start: 949
    functionDepth: 2
    functionLinenumber: 949
    functionLinenumberEnd: 969
    functionName: LzmaDec_Allocate
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 2
    functionsReached:
    - LzmaDec_FreeDict
    - ISzAlloc*::Alloc
    - RINOK
    - LzmaProps_Decode
    - LzmaDec_FreeProbs
    - LzmaDec_AllocateProbs2
    linkageType: ''
    returnType: SRes
    signature: SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize,
      ISzAlloc *alloc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LzmaDec_Construct
      Src: /src/clamav/libclamav/7z/LzmaDec.c:983,1
    - Dst: LzmaDec_AllocateProbs
      Src: /src/clamav/libclamav/7z/LzmaDec.c:984,1
    - Dst: LzmaDec_Init
      Src: /src/clamav/libclamav/7z/LzmaDec.c:990,1
    - Dst: LzmaDec_DecodeToDic
      Src: /src/clamav/libclamav/7z/LzmaDec.c:993,1
    - Dst: LzmaDec_FreeProbs
      Src: /src/clamav/libclamav/7z/LzmaDec.c:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 9
    argNames:
    - dest
    - destLen
    - src
    - srcLen
    - propData
    - propSize
    - finishMode
    - status
    - alloc
    argTypes:
    - Byte*
    - SizeT*
    - Byte*
    - SizeT*
    - Byte*
    - unsigned
    - ELzmaFinishMode
    - ELzmaStatus*
    - ISzAlloc*
    constantsTouched: []
    func_position:
      end: 1001
      start: 971
    functionDepth: 3
    functionLinenumber: 971
    functionLinenumberEnd: 1001
    functionName: LzmaDecode
    functionSourceFile: /src/clamav/libclamav/7z/LzmaDec.c
    functionUses: 6
    functionsReached:
    - LzmaDec_DecodeToDic
    - LzmaDec_AllocateProbs
    - LzmaDec_Construct
    - LzmaDec_FreeProbs
    - LzmaDec_Init
    linkageType: ''
    returnType: SRes
    signature: "SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT
      *srcLen,\n    const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,\n
      \   ELzmaStatus *status, ISzAlloc *alloc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zStream.c:13,1
    - Dst: ISeqInStream*::Read
      Src: /src/clamav/libclamav/7z/7zStream.c:13,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - stream
    - buf
    - size
    - errorType
    argTypes:
    - ISeqInStream*
    - void*
    - size_t
    - SRes
    constantsTouched: []
    func_position:
      end: 20
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 20
    functionName: SeqInStream_Read2
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 1
    functionsReached:
    - RINOK
    - ISeqInStream*::Read
    linkageType: ''
    returnType: SRes
    signature: SRes SeqInStream_Read2(ISeqInStream *stream, void *buf, size_t size,
      SRes errorType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SeqInStream_Read2
      Src: /src/clamav/libclamav/7z/7zStream.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - stream
    - buf
    - size
    argTypes:
    - ISeqInStream*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: SeqInStream_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 1
    functionsReached:
    - SeqInStream_Read2
    linkageType: ''
    returnType: SRes
    signature: SRes SeqInStream_Read(ISeqInStream *stream, void *buf, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zStream.c:30,1
    - Dst: ISeqInStream*::Read
      Src: /src/clamav/libclamav/7z/7zStream.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - buf
    argTypes:
    - ISeqInStream*
    - Byte*
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: SeqInStream_ReadByte
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 1
    functionsReached:
    - RINOK
    - ISeqInStream*::Read
    linkageType: ''
    returnType: SRes
    signature: SRes SeqInStream_ReadByte(ISeqInStream *stream, Byte *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ILookInStream*::Seek
      Src: /src/clamav/libclamav/7z/7zStream.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - offset
    argTypes:
    - ILookInStream*
    - UInt64
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: LookInStream_SeekTo
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 4
    functionsReached:
    - ILookInStream*::Seek
    linkageType: ''
    returnType: SRes
    signature: SRes LookInStream_SeekTo(ILookInStream *stream, UInt64 offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zStream.c:45,1
    - Dst: ILookInStream*::Look
      Src: /src/clamav/libclamav/7z/7zStream.c:45,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/7zStream.c:46,1
    - Dst: ILookInStream*::Skip
      Src: /src/clamav/libclamav/7z/7zStream.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - stream
    - buf
    - size
    argTypes:
    - ILookInStream*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: LookInStream_LookRead
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RINOK
    - ILookInStream*::Skip
    - ILookInStream*::Look
    linkageType: ''
    returnType: SRes
    signature: SRes LookInStream_LookRead(ILookInStream *stream, void *buf, size_t
      *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RINOK
      Src: /src/clamav/libclamav/7z/7zStream.c:55,1
    - Dst: ILookInStream*::Read
      Src: /src/clamav/libclamav/7z/7zStream.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - stream
    - buf
    - size
    - errorType
    argTypes:
    - ILookInStream*
    - void*
    - size_t
    - SRes
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: LookInStream_Read2
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 3
    functionsReached:
    - RINOK
    - ILookInStream*::Read
    linkageType: ''
    returnType: SRes
    signature: SRes LookInStream_Read2(ILookInStream *stream, void *buf, size_t size,
      SRes errorType)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookInStream_Read2
      Src: /src/clamav/libclamav/7z/7zStream.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - stream
    - buf
    - size
    argTypes:
    - ILookInStream*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: LookInStream_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 1
    functionsReached:
    - LookInStream_Read2
    linkageType: ''
    returnType: SRes
    signature: SRes LookInStream_Read(ILookInStream *stream, void *buf, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLookToRead*::realStream::Read
      Src: /src/clamav/libclamav/7z/7zStream.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void**
    - size_t*
    constantsTouched: []
    func_position:
      end: 85
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 85
    functionName: LookToRead_Look_Lookahead
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached:
    - CLookToRead*::realStream::Read
    linkageType: ''
    returnType: SRes
    signature: SRes LookToRead_Look_Lookahead(void *pp, const void **buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLookToRead*::realStream::Read
      Src: /src/clamav/libclamav/7z/7zStream.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void**
    - size_t*
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: LookToRead_Look_Exact
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached:
    - CLookToRead*::realStream::Read
    linkageType: ''
    returnType: SRes
    signature: SRes LookToRead_Look_Exact(void *pp, const void **buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - offset
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: LookToRead_Skip
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SRes
    signature: SRes LookToRead_Skip(void *pp, size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLookToRead*::realStream::Read
      Src: /src/clamav/libclamav/7z/7zStream.c:118,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/7z/7zStream.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: LookToRead_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CLookToRead*::realStream::Read
    linkageType: ''
    returnType: SRes
    signature: SRes LookToRead_Read(void *pp, void *buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLookToRead*::realStream::Seek
      Src: /src/clamav/libclamav/7z/7zStream.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pp
    - pos
    - origin
    argTypes:
    - void*
    - Int64*
    - ESzSeek
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: LookToRead_Seek
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached:
    - CLookToRead*::realStream::Seek
    linkageType: ''
    returnType: SRes
    signature: SRes LookToRead_Seek(void *pp, Int64 *pos, ESzSeek origin)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - lookahead
    argTypes:
    - CLookToRead*
    - int
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: LookToRead_CreateVTable
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LookToRead_CreateVTable(CLookToRead *p, int lookahead)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CLookToRead*
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: LookToRead_Init
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void LookToRead_Init(CLookToRead *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LookInStream_LookRead
      Src: /src/clamav/libclamav/7z/7zStream.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: SecToLook_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached:
    - LookInStream_LookRead
    linkageType: ''
    returnType: SRes
    signature: SRes SecToLook_Read(void *pp, void *buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSecToLook*
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: SecToLook_CreateVTable
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecToLook_CreateVTable(CSecToLook *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CSecToRead*::realStream::Read
      Src: /src/clamav/libclamav/7z/7zStream.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pp
    - buf
    - size
    argTypes:
    - void*
    - void*
    - size_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: SecToRead_Read
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 0
    functionsReached:
    - CSecToRead*::realStream::Read
    linkageType: ''
    returnType: SRes
    signature: SRes SecToRead_Read(void *pp, void *buf, size_t *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - CSecToRead*
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: SecToRead_CreateVTable
    functionSourceFile: /src/clamav/libclamav/7z/7zStream.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecToRead_CreateVTable(CSecToRead *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPpmd7z_RangeDec*::Stream::Read
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:14,1
    - Dst: CPpmd7z_RangeDec*::Stream::Read
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7z_RangeDec*
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: Ppmd7z_RangeDec_Init
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7Dec.c
    functionUses: 1
    functionsReached:
    - CPpmd7z_RangeDec*::Stream::Read
    linkageType: ''
    returnType: Bool
    signature: Bool Ppmd7z_RangeDec_Init(CPpmd7z_RangeDec *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pp
    - total
    argTypes:
    - void*
    - UInt32
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: Range_GetThreshold
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7Dec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UInt32
    signature: UInt32 Range_GetThreshold(void *pp, UInt32 total)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPpmd7z_RangeDec*::Stream::Read
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:31,1
    - Dst: CPpmd7z_RangeDec*::Stream::Read
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7z_RangeDec*
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: Range_Normalize
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7Dec.c
    functionUses: 0
    functionsReached:
    - CPpmd7z_RangeDec*::Stream::Read
    linkageType: ''
    returnType: void
    signature: void Range_Normalize(CPpmd7z_RangeDec *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Range_Normalize
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pp
    - start
    - size
    argTypes:
    - void*
    - UInt32
    - UInt32
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: Range_Decode
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7Dec.c
    functionUses: 0
    functionsReached:
    - Range_Normalize
    linkageType: ''
    returnType: void
    signature: void Range_Decode(void *pp, UInt32 start, UInt32 size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Range_Normalize
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pp
    - size0
    argTypes:
    - void*
    - UInt32
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: Range_DecodeBit
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7Dec.c
    functionUses: 0
    functionsReached:
    - Range_Normalize
    linkageType: ''
    returnType: UInt32
    signature: UInt32 Range_DecodeBit(void *pp, UInt32 size0)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - CPpmd7z_RangeDec*
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: Ppmd7z_RangeDec_CreateVTable
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7Dec.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ppmd7z_RangeDec_CreateVTable(CPpmd7z_RangeDec *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ppmd7_GetStats
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:84,1
    - Dst: IPpmd7_RangeDec*::GetThreshold
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:87,1
    - Dst: IPpmd7_RangeDec*::Decode
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:90,1
    - Dst: Ppmd7_Update1_0
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:93,1
    - Dst: IPpmd7_RangeDec*::Decode
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:103,1
    - Dst: Ppmd7_Update1
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:106,1
    - Dst: IPpmd7_RangeDec*::Decode
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:114,1
    - Dst: PPMD_SetAllBitsIn256Bytes
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:115,1
    - Dst: MASK
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:116,1
    - Dst: MASK
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:118,1
    - Dst: Ppmd7_GetBinSumm
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:122,1
    - Dst: IPpmd7_RangeDec*::DecodeBit
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:123,1
    - Dst: PPMD_UPDATE_PROB_0
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:126,1
    - Dst: Ppmd7Context_OneState
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:127,1
    - Dst: Ppmd7_UpdateBin
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:128,1
    - Dst: PPMD_UPDATE_PROB_1
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:131,1
    - Dst: PPMD_SetAllBitsIn256Bytes
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:133,1
    - Dst: MASK
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:134,1
    - Dst: Ppmd7Context_OneState
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:134,1
    - Dst: Ppmd7_GetContext
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:148,1
    - Dst: Ppmd7_GetStats
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:152,1
    - Dst: Ppmd7_MakeEscFreq
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:164,1
    - Dst: IPpmd7_RangeDec*::GetThreshold
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:166,1
    - Dst: IPpmd7_RangeDec*::Decode
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:174,1
    - Dst: Ppmd_See_Update
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:175,1
    - Dst: Ppmd7_Update2
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:178,1
    - Dst: IPpmd7_RangeDec*::Decode
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:183,1
    - Dst: MASK
      Src: /src/clamav/libclamav/7z/Ppmd7Dec.c:185,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 81
    argCount: 2
    argNames:
    - p
    - rc
    argTypes:
    - CPpmd7*
    - IPpmd7_RangeDec*
    constantsTouched: []
    func_position:
      end: 187
      start: 79
    functionDepth: 7
    functionLinenumber: 79
    functionLinenumberEnd: 187
    functionName: Ppmd7_DecodeSymbol
    functionSourceFile: /src/clamav/libclamav/7z/Ppmd7Dec.c
    functionUses: 0
    functionsReached:
    - Ppmd7_MakeEscFreq
    - IPpmd7_RangeDec*::GetThreshold
    - Ppmd7_GetStats
    - PPMD_SetAllBitsIn256Bytes
    - Ppmd7_Update2
    - Ppmd_See_Update
    - Ppmd7_UpdateBin
    - Ppmd7Context_OneState
    - Ppmd7_GetContext
    - IPpmd7_RangeDec*::Decode
    - PPMD_UPDATE_PROB_1
    - PPMD_UPDATE_PROB_0
    - Ppmd7_GetBinSumm
    - IPpmd7_RangeDec*::DecodeBit
    - Ppmd7_Update1
    - Ppmd7_Update1_0
    - MASK
    linkageType: ''
    returnType: int
    signature: int Ppmd7_DecodeSymbol(CPpmd7 *p, IPpmd7_RangeDec *rc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 20
    functionName: MY_FAST_CALL::Crc64GenerateTable
    functionSourceFile: /src/clamav/libclamav/7z/XzCrc64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MY_FAST_CALL Crc64GenerateTable(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC64_UPDATE_BYTE
      Src: /src/clamav/libclamav/7z/XzCrc64.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v
    - data
    - size
    argTypes:
    - UInt64
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: MY_FAST_CALL::Crc64Update
    functionSourceFile: /src/clamav/libclamav/7z/XzCrc64.c
    functionUses: 0
    functionsReached:
    - CRC64_UPDATE_BYTE
    linkageType: ''
    returnType: UInt64
    signature: UInt64 MY_FAST_CALL Crc64Update(UInt64 v, const void *data, size_t
      size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC64_GET_DIGEST
      Src: /src/clamav/libclamav/7z/XzCrc64.c:32,1
    - Dst: MY_FAST_CALL::Crc64Update
      Src: /src/clamav/libclamav/7z/XzCrc64.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: MY_FAST_CALL::Crc64Calc
    functionSourceFile: /src/clamav/libclamav/7z/XzCrc64.c
    functionUses: 0
    functionsReached:
    - MY_FAST_CALL::Crc64Update
    - CRC64_GET_DIGEST
    linkageType: ''
    returnType: UInt64
    signature: UInt64 MY_FAST_CALL Crc64Calc(const void *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Test86MSByte
      Src: /src/clamav/libclamav/7z/Bra86.c:39,1
    - Dst: Test86MSByte
      Src: /src/clamav/libclamav/7z/Bra86.c:50,1
    - Dst: Test86MSByte
      Src: /src/clamav/libclamav/7z/Bra86.c:66,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 5
    argNames:
    - data
    - size
    - ip
    - state
    - encoding
    argTypes:
    - Byte*
    - SizeT
    - UInt32
    - UInt32*
    - int
    constantsTouched: []
    func_position:
      end: 85
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 85
    functionName: x86_Convert
    functionSourceFile: /src/clamav/libclamav/7z/Bra86.c
    functionUses: 2
    functionsReached:
    - Test86MSByte
    linkageType: ''
    returnType: SizeT
    signature: SizeT x86_Convert(Byte *data, SizeT size, UInt32 ip, UInt32 *state,
      int encoding)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CRC_UPDATE_BYTE_2
      Src: /src/clamav/libclamav/7z/7zCrcOpt.c:19,1
    - Dst: CRC_UPDATE_BYTE_2
      Src: /src/clamav/libclamav/7z/7zCrcOpt.c:30,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - v
    - data
    - size
    - table
    argTypes:
    - UInt32
    - void*
    - size_t
    - UInt32*
    constantsTouched: []
    func_position:
      end: 32
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 32
    functionName: MY_FAST_CALL::CrcUpdateT4
    functionSourceFile: /src/clamav/libclamav/7z/7zCrcOpt.c
    functionUses: 0
    functionsReached:
    - CRC_UPDATE_BYTE_2
    linkageType: ''
    returnType: UInt32
    signature: UInt32 MY_FAST_CALL CrcUpdateT4(UInt32 v, const void *data, size_t
      size, const UInt32 *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MY_FAST_CALL::CrcUpdateT4
      Src: /src/clamav/libclamav/7z/7zCrcOpt.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - data
    - size
    - table
    argTypes:
    - UInt32
    - void*
    - size_t
    - UInt32*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: MY_FAST_CALL::CrcUpdateT8
    functionSourceFile: /src/clamav/libclamav/7z/7zCrcOpt.c
    functionUses: 0
    functionsReached:
    - MY_FAST_CALL::CrcUpdateT4
    linkageType: ''
    returnType: UInt32
    signature: UInt32 MY_FAST_CALL CrcUpdateT8(UInt32 v, const void *data, size_t
      size, const UInt32 *table)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/libclamav/lzw/lzwdec.c:163,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/lzw/lzwdec.c:175,1
    - Dst: free
      Src: /src/clamav/libclamav/lzw/lzwdec.c:177,1
    - Dst: MAXCODE
      Src: /src/clamav/libclamav/lzw/lzwdec.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - strm
    argTypes:
    - lzw_streamp
    constantsTouched: []
    func_position:
      end: 197
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 197
    functionName: lzwInit
    functionSourceFile: /src/clamav/libclamav/lzw/lzwdec.c
    functionUses: 1
    functionsReached:
    - malloc
    - cli_max_calloc
    - MAXCODE
    - free
    linkageType: ''
    returnType: int
    signature: int lzwInit(lzw_streamp strm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CodeClear
      Src: /src/clamav/libclamav/lzw/lzwdec.c:284,1
    - Dst: GetNextCode
      Src: /src/clamav/libclamav/lzw/lzwdec.c:290,1
    - Dst: CodeClear
      Src: /src/clamav/libclamav/lzw/lzwdec.c:296,1
    - Dst: MAXCODE
      Src: /src/clamav/libclamav/lzw/lzwdec.c:313,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/libclamav/lzw/lzwdec.c:320,1
    - Dst: MAXCODE
      Src: /src/clamav/libclamav/lzw/lzwdec.c:339,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 156
    argCount: 1
    argNames:
    - strm
    argTypes:
    - lzw_streamp
    constantsTouched: []
    func_position:
      end: 417
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 417
    functionName: lzwInflate
    functionSourceFile: /src/clamav/libclamav/lzw/lzwdec.c
    functionUses: 1
    functionsReached:
    - cli_dbgmsg
    - MAXCODE
    - CodeClear
    - GetNextCode
    linkageType: ''
    returnType: int
    signature: int lzwInflate(lzw_streamp strm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/lzw/lzwdec.c:421,1
    - Dst: free
      Src: /src/clamav/libclamav/lzw/lzwdec.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - lzw_streamp
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: lzwInflateEnd
    functionSourceFile: /src/clamav/libclamav/lzw/lzwdec.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int lzwInflateEnd(lzw_streamp strm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/lzw/lzwdec.c:434,1
    - Dst: isalnum
      Src: /src/clamav/libclamav/lzw/lzwdec.c:439,1
    - Dst: printf
      Src: /src/clamav/libclamav/lzw/lzwdec.c:448,1
    - Dst: free
      Src: /src/clamav/libclamav/lzw/lzwdec.c:449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - code
    argTypes:
    - code_t*
    constantsTouched: []
    func_position:
      end: 450
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 450
    functionName: code_print
    functionSourceFile: /src/clamav/libclamav/lzw/lzwdec.c
    functionUses: 0
    functionsReached:
    - isalnum
    - cli_max_calloc
    - free
    - printf
    linkageType: ''
    returnType: void
    signature: void code_print(code_t *code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/lzw/lzwdec.c:457,1
    - Dst: code_print
      Src: /src/clamav/libclamav/lzw/lzwdec.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - codetab
    - start
    - maxcode
    argTypes:
    - code_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: dict_print
    functionSourceFile: /src/clamav/libclamav/lzw/lzwdec.c
    functionUses: 0
    functionsReached:
    - code_print
    - printf
    linkageType: ''
    returnType: void
    signature: void dict_print(code_t *codetab, uint16_t start, uint16_t maxcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/clamav/libclamav/regex/strlcpy.c:36,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: cli_strlcpy
    functionSourceFile: /src/clamav/libclamav/regex/strlcpy.c
    functionUses: 0
    functionsReached:
    - strlcpy
    linkageType: ''
    returnType: size_t
    signature: size_t cli_strlcpy(char *dst, const char *src, size_t siz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/libclamav/regex/regfree.c:63,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regfree.c:64,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regfree.c:65,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regfree.c:66,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regfree.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - preg
    argTypes:
    - regex_t*
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: cli_regfree
    functionSourceFile: /src/clamav/libclamav/regex/regfree.c
    functionUses: 13
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cli_regfree(regex_t *preg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GOODFLAGS
      Src: /src/clamav/libclamav/regex/regcomp.c:156,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex/regcomp.c:165,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/regex/regcomp.c:168,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regcomp.c:184,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regcomp.c:189,1
    - Dst: cli_max_calloc
      Src: /src/clamav/libclamav/regex/regcomp.c:193,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regcomp.c:196,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:224,1
    - Dst: THERE
      Src: /src/clamav/libclamav/regex/regcomp.c:225,1
    - Dst: p_ere
      Src: /src/clamav/libclamav/regex/regcomp.c:227,1
    - Dst: p_str
      Src: /src/clamav/libclamav/regex/regcomp.c:229,1
    - Dst: p_bre
      Src: /src/clamav/libclamav/regex/regcomp.c:231,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:232,1
    - Dst: THERE
      Src: /src/clamav/libclamav/regex/regcomp.c:233,1
    - Dst: stripsnug
      Src: /src/clamav/libclamav/regex/regcomp.c:236,1
    - Dst: findmust
      Src: /src/clamav/libclamav/regex/regcomp.c:237,1
    - Dst: pluscount
      Src: /src/clamav/libclamav/regex/regcomp.c:238,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:246,1
    - Dst: cli_regfree
      Src: /src/clamav/libclamav/regex/regcomp.c:251,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 71
    argCount: 3
    argNames:
    - preg
    - pattern
    - cflags
    argTypes:
    - regex_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 253
    functionName: cli_regcomp_real
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - pluscount
    - strlen
    - GOODFLAGS
    - p_ere
    - stripsnug
    - findmust
    - EMIT
    - cli_max_malloc
    - SETERROR
    - cli_regfree
    - p_str
    - p_bre
    - cli_max_calloc
    - free
    - THERE
    linkageType: ''
    returnType: int
    signature: int cli_regcomp_real(regex_t *preg, const char *pattern, int cflags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:269,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:270,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:270,1
    - Dst: p_ere_exp
      Src: /src/clamav/libclamav/regex/regcomp.c:271,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:272,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:272,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:274,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:278,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:283,1
    - Dst: THERE
      Src: /src/clamav/libclamav/regex/regcomp.c:284,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:285,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:286,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:287,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:291,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:292,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:295,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:295,1
    - Dst: SEE
      Src: /src/clamav/libclamav/regex/regcomp.c:295,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - p
    - stop
    argTypes:
    - struct parse*
    - int
    constantsTouched: []
    func_position:
      end: 296
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 296
    functionName: p_ere
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - EAT
    - HERE
    - MORE
    - REQUIRE
    - EMIT
    - PEEK
    - ASTERN
    - p_ere_exp
    - INSERT
    - AHEAD
    - SEE
    - assert
    - THERE
    linkageType: ''
    returnType: void
    signature: void p_ere(struct parse *p, int stop)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:311,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:311,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:312,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:314,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:317,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:317,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:321,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:322,1
    - Dst: SEE
      Src: /src/clamav/libclamav/regex/regcomp.c:323,1
    - Dst: p_ere
      Src: /src/clamav/libclamav/regex/regcomp.c:324,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:326,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:327,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:329,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:330,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:330,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:330,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:333,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:339,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:344,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:349,1
    - Dst: nonnewline
      Src: /src/clamav/libclamav/regex/regcomp.c:353,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:355,1
    - Dst: p_bracket
      Src: /src/clamav/libclamav/regex/regcomp.c:358,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:361,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:361,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:362,1
    - Dst: backslash
      Src: /src/clamav/libclamav/regex/regcomp.c:363,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:366,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:366,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex/regcomp.c:366,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:366,1
    - Dst: ordinary
      Src: /src/clamav/libclamav/regex/regcomp.c:371,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:375,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:377,1
    - Dst: MORE2
      Src: /src/clamav/libclamav/regex/regcomp.c:380,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex/regcomp.c:380,1
    - Dst: PEEK2
      Src: /src/clamav/libclamav/regex/regcomp.c:380,1
    - Dst: NEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:382,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:384,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:388,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:389,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:390,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:391,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:394,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:395,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:399,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:400,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:401,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:402,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:403,1
    - Dst: THERE
      Src: /src/clamav/libclamav/regex/regcomp.c:403,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:404,1
    - Dst: THERETHERE
      Src: /src/clamav/libclamav/regex/regcomp.c:404,1
    - Dst: p_count
      Src: /src/clamav/libclamav/regex/regcomp.c:407,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:408,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex/regcomp.c:409,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:409,1
    - Dst: p_count
      Src: /src/clamav/libclamav/regex/regcomp.c:410,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:411,1
    - Dst: repeat
      Src: /src/clamav/libclamav/regex/regcomp.c:416,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:417,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:418,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:418,1
    - Dst: NEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:419,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:420,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:420,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:421,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:426,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:428,1
    - Dst: MORE2
      Src: /src/clamav/libclamav/regex/regcomp.c:430,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex/regcomp.c:430,1
    - Dst: PEEK2
      Src: /src/clamav/libclamav/regex/regcomp.c:430,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:432,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 112
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct parse*
    constantsTouched: []
    func_position:
      end: 433
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 433
    functionName: p_ere_exp
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - nonnewline
    - HERE
    - backslash
    - THERETHERE
    - REQUIRE
    - PEEK
    - INSERT
    - MORE2
    - MORE
    - p_bracket
    - AHEAD
    - NEXT
    - p_ere
    - p_count
    - EMIT
    - GETNEXT
    - SETERROR
    - THERE
    - EAT
    - repeat
    - ordinary
    - ASTERN
    - SEE
    - PEEK2
    - assert
    - isdigit
    linkageType: ''
    returnType: void
    signature: void p_ere_exp(struct parse *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:441,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:441,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:442,1
    - Dst: ordinary
      Src: /src/clamav/libclamav/regex/regcomp.c:443,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct parse*
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: p_str
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - MORE
    - ordinary
    - REQUIRE
    - GETNEXT
    linkageType: ''
    returnType: void
    signature: void p_str(struct parse *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:461,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:465,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:466,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:470,1
    - Dst: SEETWO
      Src: /src/clamav/libclamav/regex/regcomp.c:470,1
    - Dst: p_simp_re
      Src: /src/clamav/libclamav/regex/regcomp.c:471,1
    - Dst: DROP
      Src: /src/clamav/libclamav/regex/regcomp.c:475,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:476,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:481,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - p
    - end1
    - end2
    argTypes:
    - struct parse*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 482
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 482
    functionName: p_bre
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - EAT
    - HERE
    - MORE
    - p_simp_re
    - EMIT
    - REQUIRE
    - SEETWO
    - DROP
    linkageType: ''
    returnType: void
    signature: "void p_bre(struct parse *p,\n    int end1,\t\t/* first terminating
      character */\n    int end2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:499,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:501,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:501,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:502,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:504,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:504,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:505,1
    - Dst: nonnewline
      Src: /src/clamav/libclamav/regex/regcomp.c:510,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:512,1
    - Dst: p_bracket
      Src: /src/clamav/libclamav/regex/regcomp.c:515,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:518,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:521,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:524,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:530,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:531,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:533,1
    - Dst: SEETWO
      Src: /src/clamav/libclamav/regex/regcomp.c:533,1
    - Dst: p_bre
      Src: /src/clamav/libclamav/regex/regcomp.c:534,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:536,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:537,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:539,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:540,1
    - Dst: EATTWO
      Src: /src/clamav/libclamav/regex/regcomp.c:540,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:544,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:556,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:558,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:559,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:560,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:561,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:561,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:562,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:562,1
    - Dst: dupl
      Src: /src/clamav/libclamav/regex/regcomp.c:563,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:564,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:566,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:570,1
    - Dst: ordinary
      Src: /src/clamav/libclamav/regex/regcomp.c:575,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:579,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:581,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:582,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:583,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:584,1
    - Dst: EATTWO
      Src: /src/clamav/libclamav/regex/regcomp.c:585,1
    - Dst: p_count
      Src: /src/clamav/libclamav/regex/regcomp.c:586,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:587,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:588,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex/regcomp.c:588,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:588,1
    - Dst: p_count
      Src: /src/clamav/libclamav/regex/regcomp.c:589,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:590,1
    - Dst: repeat
      Src: /src/clamav/libclamav/regex/regcomp.c:595,1
    - Dst: EATTWO
      Src: /src/clamav/libclamav/regex/regcomp.c:596,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:597,1
    - Dst: SEETWO
      Src: /src/clamav/libclamav/regex/regcomp.c:597,1
    - Dst: NEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:598,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:599,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:599,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:600,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 103
    argCount: 2
    argNames:
    - p
    - starordinary
    argTypes:
    - struct parse*
    - int
    constantsTouched: []
    func_position:
      end: 606
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 606
    functionName: p_simp_re
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - nonnewline
    - dupl
    - OP
    - HERE
    - REQUIRE
    - PEEK
    - INSERT
    - MORE
    - p_bracket
    - p_bre
    - NEXT
    - p_count
    - EMIT
    - GETNEXT
    - EATTWO
    - SETERROR
    - SEETWO
    - EAT
    - repeat
    - ordinary
    - ASTERN
    - assert
    - isdigit
    linkageType: ''
    returnType: int
    signature: "int p_simp_re(struct parse *p,\n    int starordinary)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:617,1
    - Dst: isdigit
      Src: /src/clamav/libclamav/regex/regcomp.c:617,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:617,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:618,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct parse*
    constantsTouched: []
    func_position:
      end: 624
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 624
    functionName: p_count
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - MORE
    - REQUIRE
    - GETNEXT
    - PEEK
    - isdigit
    linkageType: ''
    returnType: int
    signature: int p_count(struct parse *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/libclamav/regex/regcomp.c:640,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:641,1
    - Dst: NEXTn
      Src: /src/clamav/libclamav/regex/regcomp.c:642,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/regex/regcomp.c:645,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:646,1
    - Dst: NEXTn
      Src: /src/clamav/libclamav/regex/regcomp.c:647,1
    - Dst: allocset
      Src: /src/clamav/libclamav/regex/regcomp.c:652,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:657,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:659,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:660,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:661,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:662,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:663,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:663,1
    - Dst: SEETWO
      Src: /src/clamav/libclamav/regex/regcomp.c:663,1
    - Dst: p_b_term
      Src: /src/clamav/libclamav/regex/regcomp.c:664,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:665,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:666,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:667,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:667,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:667,1
    - Dst: freeset
      Src: /src/clamav/libclamav/regex/regcomp.c:670,1
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/regcomp.c:679,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/regex/regcomp.c:679,1
    - Dst: othercase
      Src: /src/clamav/libclamav/regex/regcomp.c:680,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:682,1
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/regcomp.c:689,1
    - Dst: CHsub
      Src: /src/clamav/libclamav/regex/regcomp.c:690,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:692,1
    - Dst: CHsub
      Src: /src/clamav/libclamav/regex/regcomp.c:694,1
    - Dst: nch
      Src: /src/clamav/libclamav/regex/regcomp.c:697,1
    - Dst: ordinary
      Src: /src/clamav/libclamav/regex/regcomp.c:698,1
    - Dst: firstch
      Src: /src/clamav/libclamav/regex/regcomp.c:698,1
    - Dst: freeset
      Src: /src/clamav/libclamav/regex/regcomp.c:699,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:701,1
    - Dst: freezeset
      Src: /src/clamav/libclamav/regex/regcomp.c:701,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct parse*
    constantsTouched: []
    func_position:
      end: 702
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 702
    functionName: p_bracket
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - REQUIRE
    - PEEK
    - MORE
    - isalpha
    - othercase
    - NEXTn
    - freeset
    - nch
    - freezeset
    - EMIT
    - GETNEXT
    - SEETWO
    - allocset
    - EAT
    - CHadd
    - firstch
    - CHIN
    - p_b_term
    - ordinary
    - CHsub
    - strncmp
    linkageType: ''
    returnType: void
    signature: void p_bracket(struct parse *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:715,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:715,1
    - Dst: MORE2
      Src: /src/clamav/libclamav/regex/regcomp.c:717,1
    - Dst: PEEK2
      Src: /src/clamav/libclamav/regex/regcomp.c:717,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:720,1
    - Dst: NEXT2
      Src: /src/clamav/libclamav/regex/regcomp.c:730,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:731,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:731,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:732,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:733,1
    - Dst: p_b_cclass
      Src: /src/clamav/libclamav/regex/regcomp.c:734,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:735,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:735,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:736,1
    - Dst: EATTWO
      Src: /src/clamav/libclamav/regex/regcomp.c:736,1
    - Dst: NEXT2
      Src: /src/clamav/libclamav/regex/regcomp.c:739,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:740,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:740,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:741,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:742,1
    - Dst: p_b_eclass
      Src: /src/clamav/libclamav/regex/regcomp.c:743,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:744,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:744,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:745,1
    - Dst: EATTWO
      Src: /src/clamav/libclamav/regex/regcomp.c:745,1
    - Dst: p_b_symbol
      Src: /src/clamav/libclamav/regex/regcomp.c:749,1
    - Dst: SEE
      Src: /src/clamav/libclamav/regex/regcomp.c:750,1
    - Dst: MORE2
      Src: /src/clamav/libclamav/regex/regcomp.c:750,1
    - Dst: PEEK2
      Src: /src/clamav/libclamav/regex/regcomp.c:750,1
    - Dst: NEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:752,1
    - Dst: EAT
      Src: /src/clamav/libclamav/regex/regcomp.c:753,1
    - Dst: p_b_symbol
      Src: /src/clamav/libclamav/regex/regcomp.c:756,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:760,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:762,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - p
    - cs
    argTypes:
    - struct parse*
    - cset*
    constantsTouched: []
    func_position:
      end: 765
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 765
    functionName: p_b_term
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - MORE2
    - EAT
    - p_b_symbol
    - CHadd
    - MORE
    - REQUIRE
    - NEXT2
    - EATTWO
    - SETERROR
    - PEEK
    - p_b_eclass
    - PEEK2
    - p_b_cclass
    - SEE
    - NEXT
    linkageType: ''
    returnType: void
    signature: void p_b_term(struct parse *p, cset *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:779,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/regex/regcomp.c:779,1
    - Dst: PEEK
      Src: /src/clamav/libclamav/regex/regcomp.c:779,1
    - Dst: NEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:780,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/regex/regcomp.c:783,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:787,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:793,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - p
    - cs
    argTypes:
    - struct parse*
    - cset*
    constantsTouched: []
    func_position:
      end: 794
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 794
    functionName: p_b_cclass
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - CHadd
    - MORE
    - isalpha
    - SETERROR
    - PEEK
    - NEXT
    - strncmp
    linkageType: ''
    returnType: void
    signature: void p_b_cclass(struct parse *p, cset *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p_b_coll_elem
      Src: /src/clamav/libclamav/regex/regcomp.c:806,1
    - Dst: CHadd
      Src: /src/clamav/libclamav/regex/regcomp.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - cs
    argTypes:
    - struct parse*
    - cset*
    constantsTouched: []
    func_position:
      end: 808
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 808
    functionName: p_b_eclass
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - p_b_coll_elem
    - CHadd
    linkageType: ''
    returnType: void
    signature: void p_b_eclass(struct parse *p, cset *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:818,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:818,1
    - Dst: EATTWO
      Src: /src/clamav/libclamav/regex/regcomp.c:819,1
    - Dst: GETNEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:820,1
    - Dst: p_b_coll_elem
      Src: /src/clamav/libclamav/regex/regcomp.c:823,1
    - Dst: REQUIRE
      Src: /src/clamav/libclamav/regex/regcomp.c:824,1
    - Dst: EATTWO
      Src: /src/clamav/libclamav/regex/regcomp.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct parse*
    constantsTouched: []
    func_position:
      end: 826
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 826
    functionName: p_b_symbol
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - MORE
    - REQUIRE
    - GETNEXT
    - EATTWO
    - p_b_coll_elem
    linkageType: ''
    returnType: char
    signature: char p_b_symbol(struct parse *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:839,1
    - Dst: SEETWO
      Src: /src/clamav/libclamav/regex/regcomp.c:839,1
    - Dst: NEXT
      Src: /src/clamav/libclamav/regex/regcomp.c:840,1
    - Dst: MORE
      Src: /src/clamav/libclamav/regex/regcomp.c:841,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:842,1
    - Dst: strncmp
      Src: /src/clamav/libclamav/regex/regcomp.c:847,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex/regcomp.c:847,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - p
    - endc
    argTypes:
    - struct parse*
    - int
    constantsTouched: []
    func_position:
      end: 853
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 853
    functionName: p_b_coll_elem
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - strlen
    - MORE
    - SETERROR
    - SEETWO
    - NEXT
    - strncmp
    linkageType: ''
    returnType: char
    signature: "char p_b_coll_elem(struct parse *p,\n    int endc)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:862,1
    - Dst: isalpha
      Src: /src/clamav/libclamav/regex/regcomp.c:862,1
    - Dst: isupper
      Src: /src/clamav/libclamav/regex/regcomp.c:863,1
    - Dst: tolower
      Src: /src/clamav/libclamav/regex/regcomp.c:864,1
    - Dst: islower
      Src: /src/clamav/libclamav/regex/regcomp.c:865,1
    - Dst: toupper
      Src: /src/clamav/libclamav/regex/regcomp.c:866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 869
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 869
    functionName: othercase
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - tolower
    - islower
    - isupper
    - isalpha
    - assert
    - toupper
    linkageType: ''
    returnType: char
    signature: char othercase(int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:884,1
    - Dst: othercase
      Src: /src/clamav/libclamav/regex/regcomp.c:884,1
    - Dst: p_bracket
      Src: /src/clamav/libclamav/regex/regcomp.c:890,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - p
    - ch
    argTypes:
    - struct parse*
    - int
    constantsTouched: []
    func_position:
      end: 894
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 894
    functionName: bothcases
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - assert
    - p_bracket
    - othercase
    linkageType: ''
    returnType: void
    signature: void bothcases(struct parse *p, int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/clamav/libclamav/regex/regcomp.c:902,1
    - Dst: othercase
      Src: /src/clamav/libclamav/regex/regcomp.c:902,1
    - Dst: bothcases
      Src: /src/clamav/libclamav/regex/regcomp.c:903,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - p
    - ch
    argTypes:
    - struct parse*
    - int
    constantsTouched: []
    func_position:
      end: 906
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 906
    functionName: ordinary
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 4
    functionsReached:
    - isalpha
    - bothcases
    - othercase
    - EMIT
    linkageType: ''
    returnType: void
    signature: void ordinary(struct parse *p, int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:916,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:919,1
    - Dst: ordinary
      Src: /src/clamav/libclamav/regex/regcomp.c:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - p
    - ch
    argTypes:
    - struct parse*
    - int
    constantsTouched: []
    func_position:
      end: 925
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 925
    functionName: backslash
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - ordinary
    - EMIT
    linkageType: ''
    returnType: void
    signature: void backslash(struct parse *p, int ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: p_bracket
      Src: /src/clamav/libclamav/regex/regcomp.c:941,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct parse*
    constantsTouched: []
    func_position:
      end: 945
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 945
    functionName: nonnewline
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - assert
    - p_bracket
    linkageType: ''
    returnType: void
    signature: void nonnewline(struct parse *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:956,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:966,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:968,1
    - Dst: MAP
      Src: /src/clamav/libclamav/regex/regcomp.c:968,1
    - Dst: MAP
      Src: /src/clamav/libclamav/regex/regcomp.c:968,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:969,1
    - Dst: DROP
      Src: /src/clamav/libclamav/regex/regcomp.c:970,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:972,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:973,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:974,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:976,1
    - Dst: repeat
      Src: /src/clamav/libclamav/regex/regcomp.c:977,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:978,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:979,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:980,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:981,1
    - Dst: THERE
      Src: /src/clamav/libclamav/regex/regcomp.c:981,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:982,1
    - Dst: THERETHERE
      Src: /src/clamav/libclamav/regex/regcomp.c:982,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:984,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:987,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:989,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:990,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:991,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:992,1
    - Dst: AHEAD
      Src: /src/clamav/libclamav/regex/regcomp.c:993,1
    - Dst: THERE
      Src: /src/clamav/libclamav/regex/regcomp.c:993,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:994,1
    - Dst: THERETHERE
      Src: /src/clamav/libclamav/regex/regcomp.c:994,1
    - Dst: dupl
      Src: /src/clamav/libclamav/regex/regcomp.c:995,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:996,1
    - Dst: repeat
      Src: /src/clamav/libclamav/regex/regcomp.c:997,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:999,1
    - Dst: INSERT
      Src: /src/clamav/libclamav/regex/regcomp.c:1000,1
    - Dst: ASTERN
      Src: /src/clamav/libclamav/regex/regcomp.c:1001,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:1003,1
    - Dst: dupl
      Src: /src/clamav/libclamav/regex/regcomp.c:1004,1
    - Dst: repeat
      Src: /src/clamav/libclamav/regex/regcomp.c:1005,1
    - Dst: REP
      Src: /src/clamav/libclamav/regex/regcomp.c:1007,1
    - Dst: dupl
      Src: /src/clamav/libclamav/regex/regcomp.c:1008,1
    - Dst: repeat
      Src: /src/clamav/libclamav/regex/regcomp.c:1009,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:1012,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - p
    - start
    - from
    - to
    argTypes:
    - struct parse*
    - sopno
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1015
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 1015
    functionName: repeat
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 3
    functionsReached:
    - MAP
    - dupl
    - repeat
    - HERE
    - REP
    - THERETHERE
    - EMIT
    - SETERROR
    - ASTERN
    - AHEAD
    - INSERT
    - DROP
    - assert
    - THERE
    linkageType: ''
    returnType: void
    signature: "void repeat(struct parse *p,\n    sopno start,\t\t/* operand from
      here to end of strip */\n    int from,\t\t\t/* repeated from this number */\n
      \   int to)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - e
    argTypes:
    - struct parse*
    - int
    constantsTouched: []
    func_position:
      end: 1027
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1027
    functionName: seterr
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void seterr(struct parse *p, int e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1047,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/regex/regcomp.c:1050,1
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/regex/regcomp.c:1055,1
    - Dst: memset
      Src: /src/clamav/libclamav/regex/regcomp.c:1064,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regcomp.c:1077,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/regcomp.c:1079,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:1082,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct parse*
    constantsTouched: []
    func_position:
      end: 1085
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1085
    functionName: allocset
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - memset
    - SETERROR
    - cli_max_realloc
    - assert
    - free
    linkageType: ''
    returnType: cset
    signature: 'cset *

      allocset(struct parse *p)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHsub
      Src: /src/clamav/libclamav/regex/regcomp.c:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - cs
    argTypes:
    - struct parse*
    - cset*
    constantsTouched: []
    func_position:
      end: 1101
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1101
    functionName: freeset
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - CHsub
    linkageType: ''
    returnType: void
    signature: void freeset(struct parse *p, cset *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/regcomp.c:1126,1
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/regcomp.c:1126,1
    - Dst: freeset
      Src: /src/clamav/libclamav/regex/regcomp.c:1133,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - p
    - cs
    argTypes:
    - struct parse*
    - cset*
    constantsTouched: []
    func_position:
      end: 1138
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1138
    functionName: freezeset
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - freeset
    - CHIN
    linkageType: ''
    returnType: int
    signature: int freezeset(struct parse *p, cset *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/regcomp.c:1150,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - cs
    argTypes:
    - struct parse*
    - cset*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1154
    functionName: firstch
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - assert
    - CHIN
    linkageType: ''
    returnType: int
    signature: int firstch(struct parse *p, cset *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/regcomp.c:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - cs
    argTypes:
    - struct parse*
    - cset*
    constantsTouched: []
    func_position:
      end: 1170
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1170
    functionName: nch
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - CHIN
    linkageType: ''
    returnType: int
    signature: int nch(struct parse *p, cset *cs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:1180,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1183,1
    - Dst: enlarge
      Src: /src/clamav/libclamav/regex/regcomp.c:1186,1
    - Dst: memcpy
      Src: /src/clamav/libclamav/regex/regcomp.c:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - p
    - start
    - finish
    argTypes:
    - struct parse*
    - sopno
    - sopno
    constantsTouched: []
    func_position:
      end: 1191
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1191
    functionName: dupl
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - memcpy
    - HERE
    - assert
    - enlarge
    linkageType: ''
    returnType: sopno
    signature: "sopno dupl(struct parse *p,\n    sopno start,\t\t/* from here */\n
      \   sopno finish)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1208,1
    - Dst: enlarge
      Src: /src/clamav/libclamav/regex/regcomp.c:1212,1
    - Dst: SOP
      Src: /src/clamav/libclamav/regex/regcomp.c:1216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - p
    - op
    - opnd
    argTypes:
    - struct parse*
    - sop
    - size_t
    constantsTouched: []
    func_position:
      end: 1217
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1217
    functionName: doemit
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - SOP
    - assert
    - enlarge
    linkageType: ''
    returnType: void
    signature: void doemit(struct parse *p, sop op, size_t opnd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:1233,1
    - Dst: EMIT
      Src: /src/clamav/libclamav/regex/regcomp.c:1234,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:1235,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:1236,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1242,1
    - Dst: memmove
      Src: /src/clamav/libclamav/regex/regcomp.c:1252,1
    - Dst: HERE
      Src: /src/clamav/libclamav/regex/regcomp.c:1253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - p
    - op
    - opnd
    - pos
    argTypes:
    - struct parse*
    - sop
    - size_t
    - sopno
    constantsTouched: []
    func_position:
      end: 1255
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1255
    functionName: doinsert
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - HERE
    - EMIT
    - SETERROR
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void doinsert(struct parse *p, sop op, size_t opnd, sopno pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1267,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - pos
    - value
    argTypes:
    - struct parse*
    - sopno
    - sop
    constantsTouched: []
    func_position:
      end: 1269
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1269
    functionName: dofwd
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 0
    functionsReached:
    - OP
    - assert
    linkageType: ''
    returnType: void
    signature: void dofwd(struct parse *p, sopno pos, sop value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/regex/regcomp.c:1282,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:1284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - struct parse*
    - sopno
    constantsTouched: []
    func_position:
      end: 1290
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1290
    functionName: enlarge
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 2
    functionsReached:
    - cli_max_realloc
    - SETERROR
    linkageType: ''
    returnType: int
    signature: int enlarge(struct parse *p, sopno size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_max_realloc
      Src: /src/clamav/libclamav/regex/regcomp.c:1299,1
    - Dst: SETERROR
      Src: /src/clamav/libclamav/regex/regcomp.c:1301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - g
    argTypes:
    - struct parse*
    - struct re_guts*
    constantsTouched: []
    func_position:
      end: 1304
      start: 1295
    functionDepth: 3
    functionLinenumber: 1295
    functionLinenumberEnd: 1304
    functionName: stripsnug
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - cli_max_realloc
    - SETERROR
    linkageType: ''
    returnType: void
    signature: void stripsnug(struct parse *p, struct re_guts *g)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1335,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/regcomp.c:1349,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1352,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1352,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1353,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1357,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1357,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1367,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/regex/regcomp.c:1377,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1385,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1387,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/regcomp.c:1388,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regcomp.c:1390,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - p
    - g
    argTypes:
    - struct parse*
    - struct re_guts*
    constantsTouched: []
    func_position:
      end: 1392
      start: 1315
    functionDepth: 3
    functionLinenumber: 1315
    functionLinenumberEnd: 1392
    functionName: findmust
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - OP
    - cli_max_malloc
    - OPND
    - assert
    linkageType: ''
    returnType: void
    signature: void findmust(struct parse *p, struct re_guts *g)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1411,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/regcomp.c:1421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - p
    - g
    argTypes:
    - struct parse*
    - struct re_guts*
    constantsTouched: []
    func_position:
      end: 1425
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1425
    functionName: pluscount
    functionSourceFile: /src/clamav/libclamav/regex/regcomp.c
    functionUses: 1
    functionsReached:
    - OP
    linkageType: ''
    returnType: sopno
    signature: sopno pluscount(struct parse *p, struct re_guts *g)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: regatoi
      Src: /src/clamav/libclamav/regex/regerror.c:87,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regerror.c:95,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex/regerror.c:95,1
    - Dst: cli_strlcpy
      Src: /src/clamav/libclamav/regex/regerror.c:96,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/regex/regerror.c:98,1
    - Dst: cli_strlcpy
      Src: /src/clamav/libclamav/regex/regerror.c:106,1
    - Dst: strlen
      Src: /src/clamav/libclamav/regex/regerror.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - errcode
    - preg
    - errbuf
    - errbuf_size
    argTypes:
    - int
    - regex_t*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 111
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 111
    functionName: cli_regerror
    functionSourceFile: /src/clamav/libclamav/regex/regerror.c
    functionUses: 2
    functionsReached:
    - snprintf
    - strlen
    - regatoi
    - cli_strlcpy
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t cli_regerror(int errcode, const regex_t *preg, char *errbuf,
      size_t errbuf_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/libclamav/regex/regerror.c:122,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/regex/regerror.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - preg
    - localbuf
    - localbufsize
    argTypes:
    - regex_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: regatoi
    functionSourceFile: /src/clamav/libclamav/regex/regerror.c
    functionUses: 1
    functionsReached:
    - snprintf
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      regatoi(const regex_t *preg, char *localbuf, int localbufsize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/regex/regexec.c:153,1
    - Dst: GOODFLAGS
      Src: /src/clamav/libclamav/regex/regexec.c:156,1
    - Dst: smatcher
      Src: /src/clamav/libclamav/regex/regexec.c:159,1
    - Dst: lmatcher
      Src: /src/clamav/libclamav/regex/regexec.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - preg
    - string
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - regex_t*
    - char*
    - size_t
    - regmatch_t[]
    - int
    constantsTouched: []
    func_position:
      end: 162
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 162
    functionName: cli_regexec
    functionSourceFile: /src/clamav/libclamav/regex/regexec.c
    functionUses: 9
    functionsReached:
    - lmatcher
    - GOODFLAGS
    - smatcher
    - assert
    linkageType: ''
    returnType: int
    signature: "int cli_regexec(const regex_t *preg, const char *string, size_t nmatch,\n
      \   regmatch_t pmatch[], int eflags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/libclamav/regex/engine.c:155,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/regex/engine.c:164,1
    - Dst: STATESETUP
      Src: /src/clamav/libclamav/regex/engine.c:178,1
    - Dst: SETUP
      Src: /src/clamav/libclamav/regex/engine.c:179,1
    - Dst: SETUP
      Src: /src/clamav/libclamav/regex/engine.c:180,1
    - Dst: SETUP
      Src: /src/clamav/libclamav/regex/engine.c:181,1
    - Dst: SETUP
      Src: /src/clamav/libclamav/regex/engine.c:182,1
    - Dst: CLEAR
      Src: /src/clamav/libclamav/regex/engine.c:183,1
    - Dst: fast
      Src: /src/clamav/libclamav/regex/engine.c:187,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/engine.c:189,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/engine.c:190,1
    - Dst: STATETEARDOWN
      Src: /src/clamav/libclamav/regex/engine.c:191,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:198,1
    - Dst: NOTE
      Src: /src/clamav/libclamav/regex/engine.c:200,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:201,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:204,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/regex/engine.c:212,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/engine.c:215,1
    - Dst: STATETEARDOWN
      Src: /src/clamav/libclamav/regex/engine.c:216,1
    - Dst: NOTE
      Src: /src/clamav/libclamav/regex/engine.c:222,1
    - Dst: dissect
      Src: /src/clamav/libclamav/regex/engine.c:223,1
    - Dst: cli_max_malloc
      Src: /src/clamav/libclamav/regex/engine.c:226,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/engine.c:229,1
    - Dst: STATETEARDOWN
      Src: /src/clamav/libclamav/regex/engine.c:230,1
    - Dst: NOTE
      Src: /src/clamav/libclamav/regex/engine.c:233,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:234,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:240,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:241,1
    - Dst: NOTE
      Src: /src/clamav/libclamav/regex/engine.c:245,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:246,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:252,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:253,1
    - Dst: NOTE
      Src: /src/clamav/libclamav/regex/engine.c:256,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:257,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:259,1
    - Dst: NOTE
      Src: /src/clamav/libclamav/regex/engine.c:264,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:276,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/engine.c:286,1
    - Dst: free
      Src: /src/clamav/libclamav/regex/engine.c:287,1
    - Dst: STATETEARDOWN
      Src: /src/clamav/libclamav/regex/engine.c:288,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 119
    argCount: 5
    argNames:
    - g
    - string
    - nmatch
    - pmatch
    - eflags
    argTypes:
    - struct re_guts*
    - char*
    - size_t
    - regmatch_t[]
    - int
    constantsTouched: []
    func_position:
      end: 290
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 290
    functionName: matcher
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 4
    functionsReached:
    - backref
    - slow
    - strlen
    - CLEAR
    - NOTE
    - dissect
    - fast
    - cli_max_malloc
    - STATETEARDOWN
    - SETUP
    - memcmp
    - STATESETUP
    - assert
    - free
    linkageType: ''
    returnType: int
    signature: "int matcher(struct re_guts *g, const char *string, size_t nmatch,\n
      \   regmatch_t pmatch[], int eflags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AT
      Src: /src/clamav/libclamav/regex/engine.c:313,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:318,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:321,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:324,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:325,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:331,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:333,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:349,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:356,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:357,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:359,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:364,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:369,1
    - Dst: dissect
      Src: /src/clamav/libclamav/regex/engine.c:370,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:371,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:373,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:380,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:381,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:383,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:388,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:395,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:406,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:407,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:407,1
    - Dst: dissect
      Src: /src/clamav/libclamav/regex/engine.c:408,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:409,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:416,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:417,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:419,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:424,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:427,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:428,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:428,1
    - Dst: slow
      Src: /src/clamav/libclamav/regex/engine.c:430,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:433,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:433,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:435,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:435,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:437,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:438,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:441,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:441,1
    - Dst: dissect
      Src: /src/clamav/libclamav/regex/engine.c:443,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:444,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:452,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:455,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:456,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:460,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:461,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:465,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:470,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 142
    argCount: 5
    argNames:
    - m
    - start
    - stop
    - startst
    - stopst
    argTypes:
    - struct match*
    - char*
    - char*
    - sopno
    - sopno
    constantsTouched: []
    func_position:
      end: 472
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 472
    functionName: dissect
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 2
    functionsReached:
    - slow
    - OPND
    - AT
    - OP
    - dissect
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\t\t/* == stop (success) always */\ndissect(struct match *m,
      const char *start, const char *stop, sopno startst,\n    sopno stopst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AT
      Src: /src/clamav/libclamav/regex/engine.c:494,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:500,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:502,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:511,1
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/engine.c:512,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:532,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:534,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:543,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:544,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:555,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:555,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:556,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:557,1
    - Dst: AT
      Src: /src/clamav/libclamav/regex/engine.c:572,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:574,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:576,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:577,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:580,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:584,1
    - Dst: memcmp
      Src: /src/clamav/libclamav/regex/engine.c:588,1
    - Dst: SOP
      Src: /src/clamav/libclamav/regex/engine.c:590,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:592,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:595,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:598,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:598,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:601,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:602,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:604,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:608,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:611,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:611,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:613,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:619,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:620,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:620,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:622,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:626,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:629,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:629,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:631,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:632,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:635,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:635,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:639,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:640,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:643,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:650,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:651,1
    - Dst: backref
      Src: /src/clamav/libclamav/regex/engine.c:654,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:661,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:666,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 150
    argCount: 7
    argNames:
    - m
    - start
    - stop
    - startst
    - stopst
    - lev
    - rec
    argTypes:
    - struct match*
    - char*
    - char*
    - sopno
    - sopno
    - sopno
    - int
    constantsTouched: []
    func_position:
      end: 669
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 669
    functionName: backref
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 2
    functionsReached:
    - ISWORD
    - OPND
    - backref
    - AT
    - OP
    - SOP
    - CHIN
    - memcmp
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\t\t/* == stop (success) or NULL (failure) */\nbackref(struct
      match *m, const char *start, const char *stop, sopno startst,\n    sopno stopst,
      sopno lev, int rec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR
      Src: /src/clamav/libclamav/regex/engine.c:693,1
    - Dst: SET1
      Src: /src/clamav/libclamav/regex/engine.c:694,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:695,1
    - Dst: ASSIGN
      Src: /src/clamav/libclamav/regex/engine.c:696,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:697,1
    - Dst: EQ
      Src: /src/clamav/libclamav/regex/engine.c:703,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:721,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:723,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:727,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:728,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:730,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:731,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:734,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:735,1
    - Dst: ISSET
      Src: /src/clamav/libclamav/regex/engine.c:739,1
    - Dst: ASSIGN
      Src: /src/clamav/libclamav/regex/engine.c:743,1
    - Dst: ASSIGN
      Src: /src/clamav/libclamav/regex/engine.c:744,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:745,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:746,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:747,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:748,1
    - Dst: EQ
      Src: /src/clamav/libclamav/regex/engine.c:748,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:748,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:752,1
    - Dst: ISSET
      Src: /src/clamav/libclamav/regex/engine.c:754,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 53
    argCount: 5
    argNames:
    - m
    - start
    - stop
    - startst
    - stopst
    argTypes:
    - struct match*
    - char*
    - char*
    - sopno
    - sopno
    constantsTouched: []
    func_position:
      end: 758
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 758
    functionName: fast
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 1
    functionsReached:
    - step
    - ISWORD
    - CLEAR
    - SET1
    - EQ
    - ASSIGN
    - SP
    - assert
    - ISSET
    linkageType: ''
    returnType: char
    signature: "char *\t\t\t/* where tentative match ended, or NULL */\nfast(struct
      match *m, const char *start, const char *stop, sopno startst,\n    sopno stopst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AT
      Src: /src/clamav/libclamav/regex/engine.c:782,1
    - Dst: CLEAR
      Src: /src/clamav/libclamav/regex/engine.c:783,1
    - Dst: SET1
      Src: /src/clamav/libclamav/regex/engine.c:784,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:785,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:786,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:808,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:810,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:814,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:815,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:817,1
    - Dst: ISWORD
      Src: /src/clamav/libclamav/regex/engine.c:818,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:821,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:822,1
    - Dst: ISSET
      Src: /src/clamav/libclamav/regex/engine.c:826,1
    - Dst: EQ
      Src: /src/clamav/libclamav/regex/engine.c:828,1
    - Dst: ASSIGN
      Src: /src/clamav/libclamav/regex/engine.c:832,1
    - Dst: ASSIGN
      Src: /src/clamav/libclamav/regex/engine.c:833,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:834,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:835,1
    - Dst: SP
      Src: /src/clamav/libclamav/regex/engine.c:836,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:837,1
    - Dst: EQ
      Src: /src/clamav/libclamav/regex/engine.c:837,1
    - Dst: step
      Src: /src/clamav/libclamav/regex/engine.c:837,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 49
    argCount: 5
    argNames:
    - m
    - start
    - stop
    - startst
    - stopst
    argTypes:
    - struct match*
    - char*
    - char*
    - sopno
    - sopno
    constantsTouched: []
    func_position:
      end: 842
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 842
    functionName: slow
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 2
    functionsReached:
    - step
    - ISWORD
    - AT
    - CLEAR
    - SET1
    - EQ
    - ASSIGN
    - SP
    - assert
    - ISSET
    linkageType: ''
    returnType: char
    signature: "char *\t\t/* where it ended */\nslow(struct match *m, const char *start,
      const char *stop, sopno startst,\n    sopno stopst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INIT
      Src: /src/clamav/libclamav/regex/engine.c:863,1
    - Dst: INC
      Src: /src/clamav/libclamav/regex/engine.c:863,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:865,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:867,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:871,1
    - Dst: NONCHAR
      Src: /src/clamav/libclamav/regex/engine.c:871,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:871,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:872,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:873,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:877,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:881,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:885,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:889,1
    - Dst: NONCHAR
      Src: /src/clamav/libclamav/regex/engine.c:892,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:893,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:896,1
    - Dst: NONCHAR
      Src: /src/clamav/libclamav/regex/engine.c:897,1
    - Dst: CHIN
      Src: /src/clamav/libclamav/regex/engine.c:897,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:898,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:902,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:905,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:908,1
    - Dst: ISSETBACK
      Src: /src/clamav/libclamav/regex/engine.c:909,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:909,1
    - Dst: BACK
      Src: /src/clamav/libclamav/regex/engine.c:910,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:910,1
    - Dst: ISSETBACK
      Src: /src/clamav/libclamav/regex/engine.c:911,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:911,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:913,1
    - Dst: INIT
      Src: /src/clamav/libclamav/regex/engine.c:914,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:918,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:919,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:919,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:922,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:926,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:929,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:930,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:930,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:930,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:931,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:931,1
    - Dst: ISSTATEIN
      Src: /src/clamav/libclamav/regex/engine.c:934,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:936,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:937,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:938,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:938,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:939,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:943,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:944,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:944,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:945,1
    - Dst: OP
      Src: /src/clamav/libclamav/regex/engine.c:945,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:945,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:946,1
    - Dst: OPND
      Src: /src/clamav/libclamav/regex/engine.c:946,1
    - Dst: FWD
      Src: /src/clamav/libclamav/regex/engine.c:950,1
    - Dst: assert
      Src: /src/clamav/libclamav/regex/engine.c:953,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 92
    argCount: 6
    argNames:
    - g
    - start
    - stop
    - bef
    - ch
    - aft
    argTypes:
    - struct re_guts*
    - sopno
    - sopno
    - states
    - int
    - states
    constantsTouched: []
    func_position:
      end: 959
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 959
    functionName: step
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 2
    functionsReached:
    - FWD
    - OPND
    - BACK
    - OP
    - ISSETBACK
    - CHIN
    - INC
    - ISSTATEIN
    - assert
    - NONCHAR
    - INIT
    linkageType: ''
    returnType: states
    signature: "states step(struct re_guts *g,\n    sopno start,\t\t/* start state
      within strip */\n    sopno stop,\t\t\t/* state after stop state within strip
      */\n    states bef,\t\t\t/* states reachable before */\n    int ch,\t\t\t/*
      character or NONCHAR code */\n    states aft)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/libclamav/regex/engine.c:975,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/regex/engine.c:976,1
    - Dst: pchar
      Src: /src/clamav/libclamav/regex/engine.c:976,1
    - Dst: ISSET
      Src: /src/clamav/libclamav/regex/engine.c:978,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/regex/engine.c:979,1
    - Dst: fprintf
      Src: /src/clamav/libclamav/regex/engine.c:983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - m
    - caption
    - st
    - ch
    - d
    argTypes:
    - struct match*
    - char*
    - states
    - int
    - FILE*
    constantsTouched: []
    func_position:
      end: 984
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 984
    functionName: print
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 20
    functionsReached:
    - fprintf
    - pchar
    - ISSET
    linkageType: ''
    returnType: void
    signature: void print(struct match *m, const char *caption, states st, int ch,
      FILE *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/regex/engine.c:996,1
    - Dst: pchar
      Src: /src/clamav/libclamav/regex/engine.c:996,1
    - Dst: printf
      Src: /src/clamav/libclamav/regex/engine.c:997,1
    - Dst: pchar
      Src: /src/clamav/libclamav/regex/engine.c:997,1
    - Dst: printf
      Src: /src/clamav/libclamav/regex/engine.c:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - m
    - title
    - start
    - stop
    - startst
    - stopst
    argTypes:
    - struct match*
    - char*
    - char*
    - char*
    - sopno
    - sopno
    constantsTouched: []
    func_position:
      end: 999
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 999
    functionName: at
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 35
    functionsReached:
    - pchar
    - printf
    linkageType: ''
    returnType: void
    signature: "void at(struct match *m, const char *title, const char *start, const
      char *stop,\n    sopno startst, sopno stopst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NONCHAR
      Src: /src/clamav/libclamav/regex/engine.c:1022,1
    - Dst: isprint
      Src: /src/clamav/libclamav/regex/engine.c:1027,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/regex/engine.c:1028,1
    - Dst: snprintf
      Src: /src/clamav/libclamav/regex/engine.c:1030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1032
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1032
    functionName: pchar
    functionSourceFile: /src/clamav/libclamav/regex/engine.c
    functionUses: 2
    functionsReached:
    - snprintf
    - NONCHAR
    - isprint
    linkageType: ''
    returnType: char
    signature: "char *\t\t/* -> representation */\npchar(int ch)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cs
    - c
    argTypes:
    - cset*
    - char
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: CHadd
    functionSourceFile: /src/clamav/libclamav/regex/regex2.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CHadd(cset *cs, char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cs
    - c
    argTypes:
    - cset*
    - char
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: CHsub
    functionSourceFile: /src/clamav/libclamav/regex/regex2.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CHsub(cset *cs, char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - c
    argTypes:
    - cset*
    - char
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: CHIN
    functionSourceFile: /src/clamav/libclamav/regex/regex2.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CHIN(const cset *cs, char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: errs
      Src: /src/clamav/libclamav/c++/detect.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msg
    - a
    - b
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: warn_assumptions
    functionSourceFile: /src/clamav/libclamav/c++/detect.cpp
    functionUses: 0
    functionsReached:
    - errs
    linkageType: ''
    returnType: void
    signature: void warn_assumptions(const char *msg, int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sys::getDefaultTargetTriple
      Src: /src/clamav/libclamav/c++/detect.cpp:55,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/c++/detect.cpp:56,1
    - Dst: std::string::c_str
      Src: /src/clamav/libclamav/c++/detect.cpp:56,1
    - Dst: sys::getHostCPUName
      Src: /src/clamav/libclamav/c++/detect.cpp:58,1
    - Dst: INIT_STRFIELD
      Src: /src/clamav/libclamav/c++/detect.cpp:59,1
    - Dst: std::string::c_str
      Src: /src/clamav/libclamav/c++/detect.cpp:59,1
    - Dst: warn_assumptions
      Src: /src/clamav/libclamav/c++/detect.cpp:62,1
    - Dst: MAKE_VERSION
      Src: /src/clamav/libclamav/c++/detect.cpp:67,1
    - Dst: Triple::getArch
      Src: /src/clamav/libclamav/c++/detect.cpp:77,1
    - Dst: warn_assumptions
      Src: /src/clamav/libclamav/c++/detect.cpp:124,1
    - Dst: Triple::getOS
      Src: /src/clamav/libclamav/c++/detect.cpp:130,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:136,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:137,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:138,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:139,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:140,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:141,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:142,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:143,1
    - Dst: warn_assumptions
      Src: /src/clamav/libclamav/c++/detect.cpp:148,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:150,1
    - Dst: CASE_OS
      Src: /src/clamav/libclamav/c++/detect.cpp:151,1
    - Dst: sys::Memory::allocateMappedMemory
      Src: /src/clamav/libclamav/c++/detect.cpp:156,1
    - Dst: errs
      Src: /src/clamav/libclamav/c++/detect.cpp:158,1
    - Dst: std::error_code::message
      Src: /src/clamav/libclamav/c++/detect.cpp:158,1
    - Dst: sys::Memory::releaseMappedMemory
      Src: /src/clamav/libclamav/c++/detect.cpp:161,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct cli_environment*
    constantsTouched: []
    func_position:
      end: 163
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 163
    functionName: cli_detect_env_jit
    functionSourceFile: /src/clamav/libclamav/c++/detect.cpp
    functionUses: 1
    functionsReached:
    - sys::Memory::allocateMappedMemory
    - std::string::c_str
    - MAKE_VERSION
    - sys::getDefaultTargetTriple
    - Triple::getArch
    - Triple::getOS
    - CASE_OS
    - sys::getHostCPUName
    - sys::Memory::releaseMappedMemory
    - warn_assumptions
    - errs
    - INIT_STRFIELD
    - std::error_code::message
    linkageType: ''
    returnType: void
    signature: void cli_detect_env_jit(struct cli_environment *env)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UpgradeIntrinsicFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:198,1
    - Dst: UpgradeIntrinsicCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - C
    - Intr
    argTypes:
    - CallInst*
    - Function*
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: UpgradeCall
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - UpgradeIntrinsicCall
    - UpgradeIntrinsicFunction
    linkageType: ''
    returnType: void
    signature: void UpgradeCall(CallInst *&C, Function *Intr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: '&getEnv()'
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jmp_buf
    signature: jmp_buf &getEnv()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: ScopedExceptionHandler::Set
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - set
    linkageType: ''
    returnType: void
    signature: void Set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: ~ScopedExceptionHandler()
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - erase
    linkageType: ''
    returnType: void
    signature: void ~ScopedExceptionHandler()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: errs
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:260,1
    - Dst: clear_error
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:260,1
    - Dst: llvm_shutdown
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:262,1
    - Dst: errs
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:264,1
    - Dst: clear_error
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:264,1
    - Dst: HANDLER_END
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:266,1
    - Dst: remove_fatal_error_handler
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: do_shutdown
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - llvm_shutdown
    - clear_error
    - HANDLER_END
    - errs
    - remove_fatal_error_handler
    linkageType: ''
    returnType: void
    signature: void do_shutdown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<jmp_buf *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:272,1
    - Dst: get
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:272,1
    - Dst: longjmp
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:275,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:279,1
    - Dst: llvm_unreachable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 284
    functionName: jit_exception_handler
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - const_cast<jmp_buf *>
    - get
    - llvm_unreachable
    - cli_errmsg
    - longjmp
    linkageType: ''
    returnType: void
    signature: void jit_exception_handler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:288,1
    - Dst: jit_exception_handler
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: jit_ssp_handler
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - cli_errmsg
    - jit_exception_handler
    linkageType: ''
    returnType: void
    signature: void jit_ssp_handler(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:295,1
    - Dst: std::string::c_str
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:295,1
    - Dst: jit_exception_handler
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - user_data
    - reason
    argTypes:
    - void*
    - std::string
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: llvm_error_handler
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - cli_errmsg
    - jit_exception_handler
    linkageType: ''
    returnType: void
    signature: void llvm_error_handler(void *user_data, const std::string &reason,
      bool gen_crash_diag = true)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: rtlib_sdiv_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t rtlib_sdiv_i64(int64_t a, int64_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: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: rtlib_udiv_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rtlib_udiv_i64(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: rtlib_srem_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t rtlib_srem_i64(int64_t a, int64_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: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: rtlib_urem_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rtlib_urem_i64(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: 325
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 325
    functionName: rtlib_mul_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t rtlib_mul_i64(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: rtlib_shl_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t rtlib_shl_i64(int64_t a, int32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: rtlib_srl_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t rtlib_srl_i64(int64_t a, int32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_SRS
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: rtlib_sra_i64
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - CLI_SRS
    linkageType: ''
    returnType: int64_t
    signature: int64_t rtlib_sra_i64(int64_t a, int32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: rtlib_bzero
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void rtlib_bzero(void *s, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Case
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:379,1
    - Dst: Default
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 390
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 390
    functionName: noUnknownFunctions
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - Case
    - Default
    linkageType: ''
    returnType: void
    signature: void *noUnknownFunctions(const std::string &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:401,1
    - Dst: object::ObjectFile::getFileFormatName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:402,1
    - Dst: object::ObjectFile::getFileName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:403,1
    - Dst: object::ObjectFile::getData
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - Obj
    - L
    argTypes:
    - object::ObjectFile
    - RuntimeDyld::LoadedObjectInfo
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: NotifyListener::NotifyObjectEmitted
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - object::ObjectFile::getFileFormatName
    - object::ObjectFile::getData
    - cli_dbgmsg_no_inline
    - object::ObjectFile::getFileName
    linkageType: ''
    returnType: void
    signature: "void NotifyObjectEmitted(const object::ObjectFile &Obj,\n                                     const
      RuntimeDyld::LoadedObjectInfo &L)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Timer::Timer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: TimerWrapper::TimerWrapper
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - Timer::Timer
    linkageType: ''
    returnType: void
    signature: void TimerWrapper(const std::string &name)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: ~TimerWrapper()
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TimerWrapper()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimerWrapper::startTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: TimerWrapper::startTimer
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - TimerWrapper::startTimer
    linkageType: ''
    returnType: void
    signature: void startTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TimerWrapper::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: TimerWrapper::stopTimer
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - TimerWrapper::stopTimer
    linkageType: ''
    returnType: void
    signature: void stopTimer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Type::getVoidTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:446,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:448,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:451,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:451,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:453,1
    - Dst: Type::getInt16Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:453,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:455,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:455,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:457,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:457,1
    - Dst: llvm_unreachable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ty
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 460
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 460
    functionName: LLVMTypeMapper::getStatic
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - Type::getInt64Ty
    - Type::getInt8Ty
    - Type::getInt16Ty
    - optget
    - Type::getInt32Ty
    - llvm_unreachable
    - Type::getVoidTy
    - PointerType::getUnqual
    linkageType: ''
    returnType: Type
    signature: Type *getStatic(uint16_t ty)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:471,1
    - Dst: push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:476,1
    - Dst: LLVMTypeMapper::buildType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - Context
    - types
    - count
    argTypes:
    - LLVMContext
    - struct cli_bc_type*
    - unsigned
    constantsTouched: []
    func_position:
      end: 484
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 484
    functionName: LLVMTypeMapper::LLVMTypeMapper
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - push_back
    - LLVMTypeMapper::buildType
    linkageType: ''
    returnType: void
    signature: "void LLVMTypeMapper(LLVMContext &Context, const struct cli_bc_type
      *types,\n                   unsigned count, Type *Hidden = 0)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:491,1
    - Dst: LLVMTypeMapper::get
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:491,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:496,1
    - Dst: std::vector::size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:496,1
    - Dst: std::vector::erase
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:501,1
    - Dst: std::vector::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:501,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:502,1
    - Dst: PointerType::isValidElementType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:506,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:507,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:507,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:509,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:513,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:516,1
    - Dst: llvm_unreachable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:519,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - type
    - types
    - Hidden
    - recursive
    argTypes:
    - struct cli_bc_type*
    - struct cli_bc_type*
    - Type*
    - int
    constantsTouched: []
    func_position:
      end: 522
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 522
    functionName: LLVMTypeMapper::buildType
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - PointerType::isValidElementType
    - Type::getInt8Ty
    - std::vector::erase
    - std::vector::push_back
    - optget
    - llvm_unreachable
    - std::vector::size
    - PointerType::getUnqual
    - assert
    - LLVMTypeMapper::get
    linkageType: ''
    returnType: Type
    signature: Type *buildType(const struct cli_bc_type *type, const struct cli_bc_type
      *types, Type *Hidden, int recursive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMTypeMapper::getStatic
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:528,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:530,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:534,1
    - Dst: LLVMTypeMapper::buildType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ty
    - types
    - Hidden
    argTypes:
    - uint16_t
    - struct cli_bc_type*
    - Type*
    constantsTouched: []
    func_position:
      end: 538
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 538
    functionName: LLVMTypeMapper::get
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - LLVMTypeMapper::getStatic
    - LLVMTypeMapper::buildType
    - assert
    linkageType: ''
    returnType: Type
    signature: Type *get(uint16_t ty, const struct cli_bc_type *types, Type *Hidden)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScalarEvolution::getMaxBackedgeTakenCount
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:573,1
    - Dst: ScalarEvolution::getConstantMaxBackedgeTakenCount
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:575,1
    - Dst: isa<SCEVCouldNotCompute>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:577,1
    - Dst: ScalarEvolution::getUnsignedRange
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:580,1
    - Dst: Loop*::block_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:586,1
    - Dst: Loop*::block_end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:586,1
    - Dst: Loop*::getHeader
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - SE
    - L
    - Map
    argTypes:
    - ScalarEvolution
    - Loop*
    - BBMapTy
    constantsTouched: []
    func_position:
      end: 596
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 596
    functionName: RuntimeLimits::loopNeedsTimeoutCheck
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - isa<SCEVCouldNotCompute>
    - ScalarEvolution::getConstantMaxBackedgeTakenCount
    - Loop*::block_end
    - Loop*::block_begin
    - Loop*::getHeader
    - ScalarEvolution::getMaxBackedgeTakenCount
    - ScalarEvolution::getUnsignedRange
    linkageType: ''
    returnType: bool
    signature: bool loopNeedsTimeoutCheck(ScalarEvolution &SE, const Loop *L, BBMapTy
      &Map)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PassRegistry::getPassRegistry
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:602,1
    - Dst: initializeRuntimeLimitsPass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: RuntimeLimits::DEFINEPASS
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - PassRegistry::getPassRegistry
    - initializeRuntimeLimitsPass
    linkageType: ''
    returnType: void
    signature: void DEFINEPASS(RuntimeLimits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Function::isDeclaration
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:610,1
    - Dst: FindFunctionBackedges
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:617,1
    - Dst: BBPairVectorTy::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:618,1
    - Dst: BBPairVectorTy::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:618,1
    - Dst: BBSetTy::insert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:619,1
    - Dst: const_cast<BasicBlock *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:619,1
    - Dst: getAnalysis<DominatorTreeWrapperPass>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:624,1
    - Dst: Function::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:625,1
    - Dst: Function::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:625,1
    - Dst: BasicBlock*::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:628,1
    - Dst: BasicBlock*::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:628,1
    - Dst: dyn_cast<CallInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:630,1
    - Dst: CallInst*::getCalledFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:631,1
    - Dst: Function*::isDeclaration
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:632,1
    - Dst: BBSetTy::insert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:637,1
    - Dst: BBSetTy::empty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:642,1
    - Dst: getAnalysis<LoopInfoWrapperPass>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:643,1
    - Dst: getAnalysis<ScalarEvolutionWrapperPass>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:644,1
    - Dst: BBSetTy::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:648,1
    - Dst: BBSetTy::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:648,1
    - Dst: LoopInfo::getLoopFor
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:650,1
    - Dst: Loop*::getHeader
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:651,1
    - Dst: RuntimeLimits::loopNeedsTimeoutCheck
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:652,1
    - Dst: BBSetTy::insert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:654,1
    - Dst: po_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:661,1
    - Dst: DominatorTree::getRootNode
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:661,1
    - Dst: po_end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:662,1
    - Dst: DominatorTree::getRootNode
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:662,1
    - Dst: BBSetTy::count
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:664,1
    - Dst: po_iterator::getBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:664,1
    - Dst: po_iterator::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:667,1
    - Dst: po_iterator::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:667,1
    - Dst: getBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:669,1
    - Dst: BBSetTy::insert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:672,1
    - Dst: po_iterator::getBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:672,1
    - Dst: po_iterator::getBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:675,1
    - Dst: BBSetTy::empty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:677,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:682,1
    - Dst: Type::getVoidTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:683,1
    - Dst: Function*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:683,1
    - Dst: Function*::getParent
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:686,1
    - Dst: Function*::getParent
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:688,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:691,1
    - Dst: Function*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:691,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:692,1
    - Dst: CallInst*::setCallingConv
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:693,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:694,1
    - Dst: CallInst*::setDoesNotReturn
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:695,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:696,1
    - Dst: Function*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:697,1
    - Dst: UnreachableInst::UnreachableInst
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:697,1
    - Dst: Function*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:699,1
    - Dst: Function*::arg_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:701,1
    - Dst: verifyFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:702,1
    - Dst: Function*::getEntryBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:703,1
    - Dst: IRBuilder::SetInsertPoint
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:705,1
    - Dst: BasicBlock*::getTerminator
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:705,1
    - Dst: IRBuilder::CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:707,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:707,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:708,1
    - Dst: Function*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:708,1
    - Dst: BBSetTy::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:710,1
    - Dst: BBSetTy::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:711,1
    - Dst: BasicBlock*::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:716,1
    - Dst: BasicBlock*::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:716,1
    - Dst: llvm::cast<Instruction>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:717,1
    - Dst: llvm::isa<PHINode>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:721,1
    - Dst: llvm::isa<LandingPadInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:721,1
    - Dst: IRBuilder::SetInsertPoint
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:726,1
    - Dst: IRBuilder::CreateFence
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:728,1
    - Dst: IRBuilder::CreateLoad
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:731,1
    - Dst: BasicBlock*::splitBasicBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:734,1
    - Dst: llvm::cast<Instruction>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:736,1
    - Dst: BasicBlock*::getTerminator
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:736,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:737,1
    - Dst: Instruction*::eraseFromParent
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:738,1
    - Dst: DominatorTree::getNode
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:741,1
    - Dst: DominatorTree::addNewBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:743,1
    - Dst: DominatorTree::findNearestCommonDominator
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:745,1
    - Dst: DomTreeNode*::getIDom
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:746,1
    - Dst: DominatorTree::changeImmediateDominator
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:747,1
    - Dst: verifyFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:751,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 1
    argNames:
    - F
    argTypes:
    - Function
    constantsTouched: []
    func_position:
      end: 753
      start: 606
    functionDepth: 4
    functionLinenumber: 606
    functionLinenumberEnd: 753
    functionName: RuntimeLimits::runOnFunction
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - DominatorTree::changeImmediateDominator
    - BBSetTy::begin
    - getAnalysis<ScalarEvolutionWrapperPass>
    - llvm::isa<PHINode>
    - File::Create
    - DominatorTree::addNewBlock
    - Function*::getParent
    - po_iterator::getBlock
    - IRBuilder::CreateFence
    - llvm::cast<Instruction>
    - Function*::isDeclaration
    - BasicBlock*::end
    - Instruction*::eraseFromParent
    - getBlock
    - po_end
    - BasicBlock*::splitBasicBlock
    - getAnalysis<LoopInfoWrapperPass>
    - BBPairVectorTy::begin
    - po_iterator::begin
    - DominatorTree::getRootNode
    - Function::end
    - Function*::getContext
    - optget
    - BasicBlock*::begin
    - Function*::getEntryBlock
    - Type::getVoidTy
    - PointerType::getUnqual
    - DominatorTree::findNearestCommonDominator
    - BasicBlock*::getTerminator
    - Function::isDeclaration
    - dyn_cast<CallInst>
    - po_begin
    - LoopInfo::getLoopFor
    - Type::getInt1Ty
    - IRBuilder::CreateLoad
    - DominatorTree::getNode
    - llvm::isa<LandingPadInst>
    - UnreachableInst::UnreachableInst
    - BBSetTy::end
    - verifyFunction
    - BBSetTy::empty
    - BBSetTy::count
    - IRBuilder::CreatePointerCast
    - Loop*::getHeader
    - CallInst*::setDoesNotReturn
    - DomTreeNode*::getIDom
    - IRBuilder::SetInsertPoint
    - const_cast<BasicBlock *>
    - RuntimeLimits::loopNeedsTimeoutCheck
    - CallInst*::setDoesNotThrow
    - CallInst*::getCalledFunction
    - getAnalysis<DominatorTreeWrapperPass>
    - po_iterator::end
    - Function*::arg_begin
    - BBPairVectorTy::end
    - BBSetTy::insert
    - FindFunctionBackedges
    - CallInst*::setCallingConv
    - Function::begin
    - CallInst*::setTailCall
    linkageType: ''
    returnType: bool
    signature: bool runOnFunction(Function &F)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AnalysisUsage::setPreservesAll
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:757,1
    - Dst: AnalysisUsage::addRequired
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:758,1
    - Dst: AnalysisUsage::addRequired
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:759,1
    - Dst: AnalysisUsage::addRequired
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - AU
    argTypes:
    - AnalysisUsage
    constantsTouched: []
    func_position:
      end: 761
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 761
    functionName: RuntimeLimits::getAnalysisUsage
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - AnalysisUsage::setPreservesAll
    - AnalysisUsage::addRequired
    linkageType: ''
    returnType: void
    signature: void getAnalysisUsage(AnalysisUsage &AU) const
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: BrSimplifier::DEFINEPASS
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DEFINEPASS(BrSimplifier)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Function::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:776,1
    - Dst: Function::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:776,1
    - Dst: dyn_cast<BranchInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:777,1
    - Dst: Function::iterator::getTerminator
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:777,1
    - Dst: BranchInst*::isUnconditional
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:778,1
    - Dst: BranchInst*::getCondition
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:780,1
    - Dst: dyn_cast<ConstantInt>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:781,1
    - Dst: ConstantInt*::isOne
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:783,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:784,1
    - Dst: BranchInst*::getSuccessor
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:784,1
    - Dst: BranchInst*::getSuccessor
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:785,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:787,1
    - Dst: BranchInst*::getSuccessor
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:787,1
    - Dst: BranchInst*::getSuccessor
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:788,1
    - Dst: BasicBlock*::removePredecessor
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:790,1
    - Dst: BranchInst*::eraseFromParent
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:791,1
    - Dst: Function::iterator::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:795,1
    - Dst: Function::iterator::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:795,1
    - Dst: dyn_cast<SelectInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:797,1
    - Dst: dyn_cast<ConstantInt>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:801,1
    - Dst: SelectInst*::getCondition
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:801,1
    - Dst: ConstantInt*::isOne
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:804,1
    - Dst: SelectInst*::replaceAllUsesWith
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:805,1
    - Dst: SelectInst*::getTrueValue
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:805,1
    - Dst: SelectInst*::replaceAllUsesWith
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:807,1
    - Dst: SelectInst*::getFalseValue
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:807,1
    - Dst: SelectInst*::eraseFromParent
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:808,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - F
    argTypes:
    - Function
    constantsTouched: []
    func_position:
      end: 814
      start: 773
    functionDepth: 4
    functionLinenumber: 773
    functionLinenumberEnd: 814
    functionName: BrSimplifier::runOnFunction
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - BranchInst*::eraseFromParent
    - SelectInst*::getFalseValue
    - BranchInst*::getCondition
    - BranchInst*::isUnconditional
    - File::Create
    - dyn_cast<ConstantInt>
    - SelectInst*::getTrueValue
    - Function::iterator::getTerminator
    - Function::end
    - BasicBlock*::removePredecessor
    - SelectInst*::eraseFromParent
    - BranchInst*::getSuccessor
    - ConstantInt*::isOne
    - Function::iterator::begin
    - dyn_cast<SelectInst>
    - Function::iterator::end
    - dyn_cast<BranchInst>
    - SelectInst*::getCondition
    - Function::begin
    - SelectInst*::replaceAllUsesWith
    linkageType: ''
    returnType: bool
    signature: bool runOnFunction(Function &F)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - func
    - Ty
    - operand
    argTypes:
    - struct cli_bc_func*
    - Type*
    - operand_t
    constantsTouched: []
    func_position:
      end: 856
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 856
    functionName: LLVMCodegen::getOperand
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - LLVMCodegen::convertOperand
    linkageType: ''
    returnType: Value
    signature: Value *getOperand(const struct cli_bc_func *func, Type *Ty, operand_t
      operand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:865,1
    - Dst: CreateLoad
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:868,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:869,1
    - Dst: isa<PointerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:870,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:870,1
    - Dst: isa<PointerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:871,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:872,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:873,1
    - Dst: Value*::print
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:878,1
    - Dst: Type*::print
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:879,1
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:881,1
    - Dst: raw_string_ostream::str
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:881,1
    - Dst: llvm_report_error
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:883,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:892,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - func
    - Ty
    - operand
    argTypes:
    - struct cli_bc_func*
    - Type*
    - operand_t
    constantsTouched: []
    func_position:
      end: 893
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 893
    functionName: LLVMCodegen::convertOperand
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 2
    functionsReached:
    - CreateLoad
    - Value*::print
    - Value*::getType
    - Type*::print
    - raw_string_ostream::str
    - CreateBitCast
    - cli_dbgmsg_no_inline
    - llvm_report_error
    - LLVMCodegen::convertOperand
    - isa<PointerType>
    linkageType: ''
    returnType: Value
    signature: Value *convertOperand(const struct cli_bc_func *func, Type *Ty, operand_t
      operand)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - func
    - inst
    - operand
    argTypes:
    - struct cli_bc_func*
    - struct cli_bc_inst*
    - operand_t
    constantsTouched: []
    func_position:
      end: 899
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 899
    functionName: LLVMCodegen::convertOperand
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 3
    functionsReached:
    - LLVMCodegen::convertOperand
    linkageType: ''
    returnType: Value
    signature: "Value *convertOperand(const struct cli_bc_func *func,\n                          const
      struct cli_bc_inst *inst, operand_t operand)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateLoad
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:909,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:914,1
    - Dst: size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:914,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:917,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:917,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:917,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:918,1
    - Dst: dyn_cast<GlobalVariable>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:919,1
    - Dst: dyn_cast<ConstantExpr>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:920,1
    - Dst: GlobalVariable*::getInitializer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:920,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:930,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:937,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:937,1
    - Dst: Type::getInt16Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:941,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:945,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:949,1
    - Dst: llvm_unreachable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:953,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:955,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - func
    - w
    - operand
    argTypes:
    - struct cli_bc_func*
    - unsigned
    - operand_t
    constantsTouched: []
    func_position:
      end: 956
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 956
    functionName: LLVMCodegen::convertOperand
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 3
    functionsReached:
    - dyn_cast<ConstantExpr>
    - Type::getInt64Ty
    - CreateLoad
    - Type::getInt8Ty
    - dyn_cast<GlobalVariable>
    - Type::getInt1Ty
    - Type::getInt16Ty
    - optget
    - GlobalVariable*::getInitializer
    - Type::getInt32Ty
    - llvm_unreachable
    - size
    - PointerType::getUnqual
    - assert
    linkageType: ''
    returnType: Value
    signature: "Value *convertOperand(const struct cli_bc_func *func,\n                          unsigned
      w, operand_t operand)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:960,1
    - Dst: CreateStore
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - V
    argTypes:
    - uint16_t
    - Value*
    constantsTouched: []
    func_position:
      end: 962
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 962
    functionName: LLVMCodegen::Store
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - CreateStore
    - assert
    linkageType: ''
    returnType: void
    signature: void Store(uint16_t dest, Value *V)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:969,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:970,1
    - Dst: UnreachableInst::UnreachableInst
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:971,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:973,1
    - Dst: CreateCondBr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:974,1
    - Dst: SetInsertPoint
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - FailCond
    - Fail
    - FHandler
    - F
    argTypes:
    - Value*
    - BasicBlock*
    - Function*
    - Function*
    constantsTouched: []
    func_position:
      end: 976
      start: 965
    functionDepth: 4
    functionLinenumber: 965
    functionLinenumberEnd: 976
    functionName: LLVMCodegen::InsertVerify
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - File::Create
    - UnreachableInst::UnreachableInst
    - CreateCondBr
    - SetInsertPoint
    linkageType: ''
    returnType: void
    signature: "void InsertVerify(Value *FailCond, BasicBlock *&Fail, Function *FHandler,\n
      \                     Function *F)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - typeID
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: LLVMCodegen::mapType
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Type
    signature: Type *mapType(uint16_t typeID)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dyn_cast<PointerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:985,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:987,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:987,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:990,1
    - Dst: size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:992,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:993,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:995,1
    - Dst: size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:995,1
    - Dst: dyn_cast<GlobalVariable>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:996,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:998,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1000,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1000,1
    - Dst: Type*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1000,1
    - Dst: ConstantExpr::getPointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1001,1
    - Dst: ConstantExpr::getPointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1003,1
    - Dst: ConstantExpr::getInBoundsGetElementPtr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1004,1
    - Dst: Constant*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1004,1
    - Dst: isa<IntegerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1007,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1008,1
    - Dst: dyn_cast<ArrayType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1010,1
    - Dst: std::vector::reserve
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1012,1
    - Dst: ArrayType*::getNumElements
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1012,1
    - Dst: ArrayType*::getNumElements
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1013,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1014,1
    - Dst: LLVMCodegen::buildConstant
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1014,1
    - Dst: ArrayType*::getElementType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1014,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1016,1
    - Dst: dyn_cast<StructType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1018,1
    - Dst: std::vector::reserve
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1020,1
    - Dst: StructType*::getNumElements
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1020,1
    - Dst: StructType*::getNumElements
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1021,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1022,1
    - Dst: LLVMCodegen::buildConstant
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1022,1
    - Dst: StructType*::getElementType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1022,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1024,1
    - Dst: llvm_unreachable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1027,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - Ty
    - components
    - c
    argTypes:
    - Type*
    - uint64_t*
    - unsigned
    constantsTouched: []
    func_position:
      end: 1029
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 1029
    functionName: LLVMCodegen::buildConstant
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - std::vector::reserve
    - std::vector::push_back
    - StructType*::getNumElements
    - ArrayType*::getNumElements
    - dyn_cast<StructType>
    - Type::getInt64Ty
    - optget
    - size
    - PointerType::getUnqual
    - llvm_unreachable
    - Constant*::getType
    - dyn_cast<PointerType>
    - ConstantExpr::getPointerCast
    - StructType*::getElementType
    - ArrayType*::getElementType
    - Type::getInt8Ty
    - dyn_cast<GlobalVariable>
    - isa<IntegerType>
    - ConstantExpr::getInBoundsGetElementPtr
    - LLVMCodegen::buildConstant
    - Type*::getContext
    - dyn_cast<ArrayType>
    - assert
    linkageType: ''
    returnType: Constant
    signature: Constant *buildConstant(Type *Ty, uint64_t *components, unsigned &c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Module*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1035,1
    - Dst: Twine
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1037,1
    - Dst: ExecutionEngine*::getDataLayout
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - bc
    - M
    - CF
    - cFuncs
    - EE
    - PM
    - PMUnsigned
    - apiFuncs
    - apiMap
    argTypes:
    - struct cli_bc*
    - Module*
    - struct CommonFunctions*
    - FunctionMapTy
    - ExecutionEngine*
    - legacy::FunctionPassManager
    - legacy::FunctionPassManager
    - Function**
    - LLVMTypeMapper
    constantsTouched: []
    func_position:
      end: 1047
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1047
    functionName: LLVMCodegen::LLVMCodegen
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - Twine
    - Module*::getContext
    - ExecutionEngine*::getDataLayout
    linkageType: ''
    returnType: void
    signature: "void LLVMCodegen(const struct cli_bc *bc, Module *M, struct CommonFunctions
      *CF, FunctionMapTy &cFuncs,\n                ExecutionEngine *EE, legacy::FunctionPassManager
      &PM, legacy::FunctionPassManager &PMUnsigned,\n                Function **apiFuncs,
      LLVMTypeMapper &apiMap)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CreateGEP
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - Base
    - ETy
    - ARef
    argTypes:
    - Value*
    - Type*
    - ArrayRef<Value *>
    constantsTouched: []
    func_position:
      end: 1052
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1052
    functionName: LLVMCodegen::createGEP
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - CreateGEP
    linkageType: ''
    returnType: Value
    signature: Value *createGEP(Value *Base, Type *ETy, ArrayRef<Value *> ARef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1056,1
    - Dst: cast<PointerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1057,1
    - Dst: cast<PointerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1057,1
    - Dst: getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1057,1
    - Dst: LLVMCodegen::createGEP
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1058,1
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1061,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1065,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1065,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1066,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - dest
    - Base
    - ARef
    argTypes:
    - unsigned
    - Value*
    - ArrayRef<Value *>
    constantsTouched: []
    func_position:
      end: 1068
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1068
    functionName: LLVMCodegen::createGEP
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - cast<PointerType>
    - LLVMCodegen::Store
    - cli_dbgmsg_no_inline
    - getType
    - CreateBitCast
    - PointerType::getUnqual
    - assert
    - LLVMCodegen::createGEP
    linkageType: ''
    returnType: bool
    signature: bool createGEP(unsigned dest, Value *Base, ArrayRef<Value *> ARef)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1072,1
    - Dst: resize
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1076,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1077,1
    - Dst: size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1077,1
    - Dst: Metadata::Metadata
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1079,1
    - Dst: LLVMCodegen::convertMDNode
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1087,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1089,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1091,1
    - Dst: StringRef
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1091,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1093,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1093,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1093,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1098,1
    - Dst: ArrayRef<Metadata *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1098,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - unsigned
    constantsTouched: []
    func_position:
      end: 1102
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1102
    functionName: LLVMCodegen::convertMDNode
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - Metadata::Metadata
    - StringRef
    - ArrayRef<Metadata *>
    - optget
    - LLVMCodegen::convertMDNode
    - resize
    - size
    - assert
    linkageType: ''
    returnType: MDNode
    signature: MDNode *convertMDNode(unsigned i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Function*::getEntryBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1106,1
    - Dst: isa<AllocaInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1107,1
    - Dst: BasicBlock::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - F
    argTypes:
    - Function*
    constantsTouched: []
    func_position:
      end: 1115
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1115
    functionName: LLVMCodegen::AddStackProtect
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - Function*::getEntryBlock
    - BasicBlock::begin
    - isa<AllocaInst>
    linkageType: ''
    returnType: void
    signature: void AddStackProtect(Function *F)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dyn_cast<LoadInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1119,1
    - Dst: LoadInst*::getOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1120,1
    - Dst: Value*::use_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1122,1
    - Dst: Value*::use_end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1123,1
    - Dst: dyn_cast<StoreInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1126,1
    - Dst: isa<LoadInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1130,1
    - Dst: StoreInst*::getOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1133,1
    - Dst: getDataLayout
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1135,1
    - Dst: dyn_cast<TruncInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1137,1
    - Dst: TruncInst*::getOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1138,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1139,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1139,1
    - Dst: TruncInst*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1140,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1140,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - V
    argTypes:
    - Value*
    constantsTouched: []
    func_position:
      end: 1145
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1145
    functionName: LLVMCodegen::GEPOperand
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - Value*::use_begin
    - StoreInst*::getOperand
    - Type::getInt64Ty
    - dyn_cast<TruncInst>
    - TruncInst*::getOperand
    - isa<LoadInst>
    - Value*::getType
    - TruncInst*::getType
    - Value*::use_end
    - Type::getInt32Ty
    - LoadInst*::getOperand
    - dyn_cast<LoadInst>
    - getDataLayout
    - dyn_cast<StoreInst>
    linkageType: ''
    returnType: Value
    signature: Value *GEPOperand(Value *V)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: irgenTimer::startTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1150,1
    - Dst: LLVMTypeMapper::LLVMTypeMapper
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1151,1
    - Dst: push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1153,1
    - Dst: LLVMCodegen::convertMDNode
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1153,1
    - Dst: get
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1158,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1164,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1164,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1164,1
    - Dst: reserve
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1166,1
    - Dst: BitVector::resize
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1168,1
    - Dst: push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1169,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1171,1
    - Dst: isa<PointerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1176,1
    - Dst: count
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1178,1
    - Dst: BitVector::set
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1179,1
    - Dst: push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1180,1
    - Dst: LLVMCodegen::buildConstant
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1184,1
    - Dst: Twine
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1188,1
    - Dst: GlobalVariable::GlobalVariable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1186,1
    - Dst: push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1189,1
    - Dst: Function::Function
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1191,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1196,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1198,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1198,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1200,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1201,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1202,1
    - Dst: Twine
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1202,1
    - Dst: setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1203,1
    - Dst: setCallingConv
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1204,1
    - Dst: setLinkage
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1205,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1207,1
    - Dst: BasicBlock::BasicBlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1215,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1217,1
    - Dst: Value::Value
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1221,1
    - Dst: SetInsertPoint
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1222,1
    - Dst: Function*::arg_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1223,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1224,1
    - Dst: Function*::arg_size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1224,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1227,1
    - Dst: Function*::arg_end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1227,1
    - Dst: CreateAlloca
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1237,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1237,1
    - Dst: BitVector::any
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1242,1
    - Dst: Function*::arg_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1243,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1249,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1249,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1251,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1251,1
    - Dst: CreateInBoundsGEP
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1253,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1253,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1255,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1255,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1256,1
    - Dst: CreateLoad
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1257,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1258,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1259,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1260,1
    - Dst: Value*::setName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1261,1
    - Dst: Twine
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1261,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1263,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1263,1
    - Dst: LLVMCodegen::createGEP
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1264,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1264,1
    - Dst: Type*::print
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1270,1
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1271,1
    - Dst: raw_string_ostream::str
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1271,1
    - Dst: llvm_report_error
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1273,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1275,1
    - Dst: dyn_cast<GetElementPtrInst>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1276,1
    - Dst: GetElementPtrInst*::setIsInBounds
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1277,1
    - Dst: GetElementPtrInst*::setName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1278,1
    - Dst: Twine
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1278,1
    - Dst: SetInsertPoint
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1287,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1293,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1297,1
    - Dst: size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1297,1
    - Dst: llvm::dyn_cast<DILocation>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1298,1
    - Dst: SetCurrentDebugLocation
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1299,1
    - Dst: SetCurrentDebugLocation
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1302,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1327,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1330,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1331,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1332,1
    - Dst: getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1332,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1333,1
    - Dst: Value*::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1333,1
    - Dst: getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1333,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1337,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1338,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1339,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1346,1
    - Dst: CreateAdd
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1346,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1349,1
    - Dst: CreateSub
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1349,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1352,1
    - Dst: CreateMul
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1352,1
    - Dst: CreateICmpEQ
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1355,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1355,1
    - Dst: getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1355,1
    - Dst: LLVMCodegen::InsertVerify
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1356,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1357,1
    - Dst: CreateUDiv
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1357,1
    - Dst: CreateICmpEQ
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1362,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1362,1
    - Dst: getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1362,1
    - Dst: LLVMCodegen::InsertVerify
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1363,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1364,1
    - Dst: CreateSDiv
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1364,1
    - Dst: CreateICmpEQ
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1368,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1368,1
    - Dst: getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1368,1
    - Dst: LLVMCodegen::InsertVerify
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1369,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1370,1
    - Dst: CreateURem
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1370,1
    - Dst: CreateICmpEQ
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1375,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1375,1
    - Dst: getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1375,1
    - Dst: LLVMCodegen::InsertVerify
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1376,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1377,1
    - Dst: CreateSRem
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1377,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1381,1
    - Dst: CreateShl
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1381,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1384,1
    - Dst: CreateLShr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1384,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1387,1
    - Dst: CreateAShr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1387,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1390,1
    - Dst: CreateAnd
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1390,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1393,1
    - Dst: CreateOr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1393,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1396,1
    - Dst: CreateXor
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1396,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1399,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1400,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1401,1
    - Dst: CreateTrunc
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1401,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1405,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1406,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1407,1
    - Dst: CreateZExt
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1407,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1411,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1412,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1413,1
    - Dst: CreateSExt
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1413,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1417,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1420,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1420,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1421,1
    - Dst: CreateCondBr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1425,1
    - Dst: CreateBr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1430,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1434,1
    - Dst: Function*::getReturnType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1434,1
    - Dst: CreateRet
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1435,1
    - Dst: CreateRetVoid
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1439,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1442,1
    - Dst: CreateICmpEQ
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1442,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1445,1
    - Dst: CreateICmpNE
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1445,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1448,1
    - Dst: CreateICmpUGT
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1448,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1451,1
    - Dst: CreateICmpUGE
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1451,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1454,1
    - Dst: CreateICmpULT
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1454,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1457,1
    - Dst: CreateICmpULE
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1457,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1460,1
    - Dst: CreateICmpSGT
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1460,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1463,1
    - Dst: CreateICmpSGE
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1463,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1466,1
    - Dst: CreateICmpSLT
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1466,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1469,1
    - Dst: CreateICmpSLE
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1469,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1472,1
    - Dst: CreateSelect
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1472,1
    - Dst: cast<PointerType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1476,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1476,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1477,1
    - Dst: PointerType*::getElementType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1477,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1478,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1478,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1479,1
    - Dst: CreateStore
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1480,1
    - Dst: SmallVector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1486,1
    - Dst: Function*::arg_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1486,1
    - Dst: SmallVector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1489,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1489,1
    - Dst: Function*::getFunctionType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1489,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1491,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1491,1
    - Dst: SmallVector::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1491,1
    - Dst: SmallVector::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1491,1
    - Dst: CallInst*::setCallingConv
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1492,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1493,1
    - Dst: CallInst*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1494,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1495,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1499,1
    - Dst: strcmp
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1502,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1503,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1504,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1504,1
    - Dst: cl_retflevel
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1505,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1507,1
    - Dst: Function*::arg_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1507,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1510,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1510,1
    - Dst: Function*::getFunctionType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1510,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1512,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1512,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1513,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1514,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1519,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1520,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1521,1
    - Dst: LLVMCodegen::GEPOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1522,1
    - Dst: LLVMCodegen::createGEP
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1523,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1523,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1524,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1531,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1531,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1532,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1533,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1534,1
    - Dst: LLVMCodegen::GEPOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1535,1
    - Dst: LLVMCodegen::createGEP
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1536,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1536,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1537,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1544,1
    - Dst: LLVMCodegen::mapType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1545,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1546,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1548,1
    - Dst: LLVMCodegen::GEPOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1549,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1550,1
    - Dst: LLVMCodegen::createGEP
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1552,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1552,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1553,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1559,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1560,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1561,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1561,1
    - Dst: Value*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1562,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1563,1
    - Dst: CreateStore
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1564,1
    - Dst: CreateBitCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1568,1
    - Dst: getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1569,1
    - Dst: CreateLoad
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1570,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1571,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1575,1
    - Dst: CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1576,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1576,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1576,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1577,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1577,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1578,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1578,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1579,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1580,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1580,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1581,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1581,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1582,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1583,1
    - Dst: UpgradeCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1584,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1588,1
    - Dst: CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1589,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1589,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1589,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1590,1
    - Dst: CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1591,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1591,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1591,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1592,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1592,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1593,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1594,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1594,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1595,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1595,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1596,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1597,1
    - Dst: UpgradeCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1598,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1602,1
    - Dst: CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1603,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1603,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1603,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1604,1
    - Dst: CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1605,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1605,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1605,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1606,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1606,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1607,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1608,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1608,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1609,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1609,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1610,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1611,1
    - Dst: UpgradeCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1612,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1616,1
    - Dst: CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1617,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1617,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1617,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1618,1
    - Dst: CreatePointerCast
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1619,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1619,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1619,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1620,1
    - Dst: getDataLayout
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1620,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1621,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1622,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1623,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1624,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1628,1
    - Dst: ConstantInt::getTrue
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1628,1
    - Dst: ConstantInt::getFalse
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1628,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1632,1
    - Dst: CallInst*::setDoesNotReturn
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1633,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1634,1
    - Dst: CreateUnreachable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1635,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1640,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1640,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1641,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1642,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1643,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1647,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1647,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1648,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1649,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1650,1
    - Dst: CreateCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1654,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1654,1
    - Dst: CallInst*::setTailCall
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1655,1
    - Dst: CallInst*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1656,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1657,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1661,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1662,1
    - Dst: CreatePtrToInt
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1663,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1663,1
    - Dst: CreatePtrToInt
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1664,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1664,1
    - Dst: CreateSub
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1665,1
    - Dst: CreateTrunc
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1666,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1666,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1667,1
    - Dst: LLVMCodegen::convertOperand
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1671,1
    - Dst: CreatePtrToInt
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1672,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1672,1
    - Dst: LLVMCodegen::Store
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1673,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1677,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1681,1
    - Dst: verifyFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1690,1
    - Dst: errs
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1690,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1693,1
    - Dst: Function*::print
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1697,1
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1698,1
    - Dst: raw_string_ostream::str
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1698,1
    - Dst: irgenTimer::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1711,1
    - Dst: irgenTimer::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1721,1
    - Dst: pmTimer::startTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1722,1
    - Dst: doInitialization
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1724,1
    - Dst: run
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1725,1
    - Dst: doFinalization
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1726,1
    - Dst: doInitialization
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1728,1
    - Dst: run
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1729,1
    - Dst: doFinalization
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1730,1
    - Dst: pmTimer::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1732,1
    - Dst: irgenTimer::startTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1733,1
    - Dst: LLVMCodegen::AddStackProtect
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1738,1
    - Dst: std::vector::clear
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1743,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1744,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1744,1
    - Dst: getFunctionType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1748,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1749,1
    - Dst: irgenTimer::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1750,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1759,1
    - Dst: getFunctionType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1759,1
    - Dst: getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1761,1
    - Dst: Function*::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1762,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1763,1
    - Dst: Function*::arg_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1765,1
    - Dst: Function*::arg_end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1766,1
    - Dst: llvm::cast<Argument>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1768,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1769,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1772,1
    - Dst: ArrayRef<Value *>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1772,1
    - Dst: CallInst*::setCallingConv
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1773,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1774,1
    - Dst: verifyFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1777,1
    - Dst: errs
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1777,1
    - Dst: irgenTimer::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1781,1
    CyclomaticComplexity: 115
    EdgeCount: 115
    ICount: 463
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1147
    functionDepth: 5
    functionLinenumber: 1147
    functionLinenumberEnd: 1783
    functionName: LLVMCodegen::generate
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - CreateSRem
    - SmallVector::begin
    - File::Create
    - Value::Value
    - Type::getInt32Ty
    - CreateAlloca
    - ArrayRef<Value *>
    - Value*::setName
    - CreateTrunc
    - cast<PointerType>
    - strcmp
    - CreateAShr
    - LLVMTypeMapper::LLVMTypeMapper
    - UpgradeCall
    - PointerType::getUnqual
    - CreateICmpSGE
    - Function::Function
    - irgenTimer::startTimer
    - CreateMul
    - cl_retflevel
    - CreateShl
    - CreateBr
    - setLinkage
    - CallInst*::setDoesNotReturn
    - CreateICmpEQ
    - CreateAdd
    - llvm::cast<Argument>
    - Function*::getReturnType
    - errs
    - LLVMCodegen::convertMDNode
    - LLVMCodegen::buildConstant
    - GetElementPtrInst*::setIsInBounds
    - CreateSDiv
    - SetInsertPoint
    - CreateLoad
    - cli_warnmsg
    - doFinalization
    - std::vector::push_back
    - CreateCall
    - Type*::print
    - LLVMCodegen::Store
    - CreateZExt
    - LLVMCodegen::convertOperand
    - Function*::arg_size
    - isa<PointerType>
    - CreateICmpUGT
    - CreateInBoundsGEP
    - CreateSelect
    - ConstantInt::getFalse
    - LLVMCodegen::mapType
    - CreateICmpSLE
    - cli_dbgmsg_no_inline
    - size
    - CreateCondBr
    - Value*::getName
    - push_back
    - BitVector::set
    - verifyFunction
    - CreateOr
    - SmallVector::push_back
    - setDoesNotThrow
    - CreateICmpUGE
    - pmTimer::stopTimer
    - CreateStore
    - PointerType*::getElementType
    - Function*::getFunctionType
    - CreateXor
    - CreateRet
    - assert
    - CreateICmpSGT
    - CallInst*::setTailCall
    - CreateAnd
    - LLVMCodegen::AddStackProtect
    - getName
    - run
    - raw_string_ostream::str
    - CreateSExt
    - getFunctionType
    - llvm_report_error
    - GetElementPtrInst*::setName
    - CreateICmpULT
    - pmTimer::startTimer
    - Type::getInt64Ty
    - CreateICmpNE
    - optget
    - LLVMCodegen::createGEP
    - irgenTimer::stopTimer
    - GlobalVariable::GlobalVariable
    - get
    - getDataLayout
    - CreateICmpSLT
    - LLVMCodegen::GEPOperand
    - CallInst*::setDoesNotThrow
    - CreateRetVoid
    - Function*::setDoesNotThrow
    - Function*::arg_begin
    - setCallingConv
    - CreateUnreachable
    - CreateURem
    - Function*::arg_end
    - Function*::print
    - CallInst*::getType
    - BasicBlock::BasicBlock
    - CreateUDiv
    - reserve
    - dyn_cast<GetElementPtrInst>
    - SmallVector::end
    - SetCurrentDebugLocation
    - doInitialization
    - Twine
    - llvm::dyn_cast<DILocation>
    - std::vector::clear
    - CreateBitCast
    - BitVector::resize
    - getType
    - count
    - Type::getInt1Ty
    - ConstantInt::getTrue
    - LLVMCodegen::InsertVerify
    - CreatePointerCast
    - Type::getInt8Ty
    - CreateICmpULE
    - CreateSub
    - Value*::getType
    - CreatePtrToInt
    - BitVector::any
    - CreateLShr
    - CallInst*::setCallingConv
    linkageType: ''
    returnType: Function
    signature: Function *generate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1802
    functionName: LLVMApiScopedLock::LLVMApiScopedLock
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: void
    signature: void LLVMApiScopedLock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1806
    functionName: ~LLVMApiScopedLock()
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: void
    signature: void ~LLVMApiScopedLock()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Function*::arg_begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1811,1
    - Dst: Function*::arg_end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1811,1
    - Dst: llvm::cast<Argument>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1812,1
    - Dst: Argument*::getType
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1813,1
    - Dst: Argument*::hasNoCaptureAttr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1813,1
    - Dst: Argument*::addAttr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pFunc
    argTypes:
    - Function*
    constantsTouched: []
    func_position:
      end: 1817
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1817
    functionName: addNoCapture
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - Argument*::getType
    - Function*::arg_end
    - llvm::cast<Argument>
    - Argument*::hasNoCaptureAttr
    - Function*::arg_begin
    - Argument*::addAttr
    linkageType: ''
    returnType: void
    signature: void addNoCapture(Function *pFunc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Module*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1821,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1822,1
    - Dst: Type::getVoidTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1822,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1823,1
    - Dst: struct CommonFunctions*::FHandler::setDoesNotReturn
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1824,1
    - Dst: struct CommonFunctions*::FHandler::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1825,1
    - Dst: struct CommonFunctions*::FHandler::addFnAttr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1826,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1827,1
    - Dst: struct CommonFunctions*::FHandler::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1827,1
    - Dst: ExecutionEngine*::InstallLazyFunctionCreator
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1828,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1829,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1832,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1832,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1832,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1833,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1833,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1834,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1834,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1835,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1835,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1836,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1836,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1837,1
    - Dst: Type::getVoidTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1837,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1838,1
    - Dst: struct CommonFunctions*::FMemset::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1839,1
    - Dst: addNoCapture
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1840,1
    - Dst: std::vector::clear
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1842,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1843,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1843,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1843,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1844,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1844,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1844,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1845,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1845,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1846,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1846,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1847,1
    - Dst: Type::getInt1Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1847,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1848,1
    - Dst: Type::getVoidTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1848,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1849,1
    - Dst: struct CommonFunctions*::FMemmove::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1850,1
    - Dst: addNoCapture
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1851,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1853,1
    - Dst: struct CommonFunctions*::FMemcpy::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1854,1
    - Dst: addNoCapture
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1855,1
    - Dst: std::vector::clear
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1857,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1858,1
    - Dst: Type::getInt16Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1858,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1859,1
    - Dst: Type::getInt16Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1859,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1860,1
    - Dst: struct CommonFunctions*::FBSwap16::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1861,1
    - Dst: std::vector::clear
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1863,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1864,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1864,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1865,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1865,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1866,1
    - Dst: struct CommonFunctions*::FBSwap32::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1867,1
    - Dst: std::vector::clear
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1869,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1870,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1870,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1871,1
    - Dst: Type::getInt64Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1871,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1872,1
    - Dst: struct CommonFunctions*::FBSwap64::setDoesNotThrow
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1873,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1875,1
    - Dst: Type::getVoidTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1875,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1876,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1877,1
    - Dst: struct CommonFunctions*::FRealmemset::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1877,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1878,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1879,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1881,1
    - Dst: struct CommonFunctions*::FRealMemmove::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1881,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1882,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1883,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1885,1
    - Dst: struct CommonFunctions*::FRealmemcpy::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1885,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1886,1
    - Dst: std::vector::clear
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1888,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1889,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1889,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1889,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1890,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1890,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1890,1
    - Dst: std::vector::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1891,1
    - Dst: ExecutionEngine*::getDataLayout
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1891,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1892,1
    - Dst: Type::getInt32Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1892,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1893,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1894,1
    - Dst: struct CommonFunctions*::FRealmemcmp::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1894,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 3
    argNames:
    - CF
    - EE
    - M
    argTypes:
    - struct CommonFunctions*
    - ExecutionEngine*
    - Module*
    constantsTouched: []
    func_position:
      end: 1896
      start: 1819
    functionDepth: 4
    functionLinenumber: 1819
    functionLinenumberEnd: 1896
    functionName: addFunctionProtos
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - struct CommonFunctions*::FRealmemcpy::getName
    - struct CommonFunctions*::FBSwap64::setDoesNotThrow
    - struct CommonFunctions*::FHandler::setDoesNotThrow
    - ExecutionEngine*::InstallLazyFunctionCreator
    - File::Create
    - std::vector::push_back
    - Type::getInt32Ty
    - struct CommonFunctions*::FRealmemcmp::getName
    - addNoCapture
    - ExecutionEngine*::getDataLayout
    - Type::getInt64Ty
    - struct CommonFunctions*::FBSwap16::setDoesNotThrow
    - Type::getInt16Ty
    - struct CommonFunctions*::FHandler::setDoesNotReturn
    - Module*::getContext
    - ExecutionEngine*::getPointerToFunction
    - struct CommonFunctions*::FMemset::setDoesNotThrow
    - std::vector::clear
    - optget
    - Type::getVoidTy
    - PointerType::getUnqual
    - sys::DynamicLibrary::AddSymbol
    - Type::getInt1Ty
    - struct CommonFunctions*::FMemcpy::setDoesNotThrow
    - struct CommonFunctions*::FHandler::getName
    - struct CommonFunctions*::FRealmemset::getName
    - struct CommonFunctions*::FMemmove::setDoesNotThrow
    - Type::getInt8Ty
    - struct CommonFunctions*::FRealMemmove::getName
    - struct CommonFunctions*::FBSwap32::setDoesNotThrow
    - struct CommonFunctions*::FHandler::addFnAttr
    linkageType: ''
    returnType: void
    signature: void addFunctionProtos(struct CommonFunctions *CF, ExecutionEngine
      *EE, Module *M)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1928,1
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1930,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1933,1
    - Dst: pthread_cond_timedwait
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1938,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1943,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1944,1
    - Dst: pthread_cond_timedwait
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1954,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1958,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1959,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1964,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1969,1
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1976,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1977,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1979
      start: 1922
    functionDepth: 2
    functionLinenumber: 1922
    functionLinenumberEnd: 1979
    functionName: bytecode_watchdog
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - pthread_mutex_unlock
    - cli_strerror
    - cli_dbgmsg_no_inline
    - gettimeofday
    - pthread_cond_timedwait
    - pthread_cond_signal
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void *bytecode_watchdog(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:1986,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2000,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2001,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2003,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct watchdog_item*
    constantsTouched: []
    func_position:
      end: 2004
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 2004
    functionName: watchdog_disarm
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - pthread_cond_wait
    - pthread_cond_signal
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void watchdog_disarm(struct watchdog_item *item)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2016,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2021,1
    - Dst: pthread_attr_init
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2025,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2026,1
    - Dst: pthread_create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2028,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2030,1
    - Dst: cli_strerror
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2030,1
    - Dst: pthread_attr_destroy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2034,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2043,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2044,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - item
    - ms
    - timeout
    argTypes:
    - struct watchdog_item*
    - int
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 2046
      start: 2006
    functionDepth: 2
    functionLinenumber: 2006
    functionLinenumberEnd: 2046
    functionName: watchdog_arm
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - pthread_attr_setdetachstate
    - pthread_create
    - gettimeofday
    - pthread_mutex_unlock
    - pthread_attr_init
    - cli_strerror
    - pthread_mutex_lock
    - pthread_attr_destroy
    - pthread_cond_signal
    - cli_errmsg
    linkageType: ''
    returnType: int
    signature: int watchdog_arm(struct watchdog_item *item, int ms, volatile uint8_t
      *timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HANDLER_END
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2059,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - code
    - ctx
    argTypes:
    - intptr_t
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 2062
      start: 2048
    functionDepth: 2
    functionLinenumber: 2048
    functionLinenumberEnd: 2062
    functionName: bytecode_execute
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - HANDLER_END
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t bytecode_execute(intptr_t code, struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2074,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2076,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2081,1
    - Dst: watchdog_arm
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2086,1
    - Dst: bytecode_execute
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2089,1
    - Dst: watchdog_disarm
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2092,1
    - Dst: gettimeofday
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2097,1
    - Dst: cli_dbgmsg_no_inline
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - bcs
    - ctx
    - func
    argTypes:
    - struct cli_all_bc*
    - struct cli_bc_ctx*
    - struct cli_bc_func*
    constantsTouched: []
    func_position:
      end: 2104
      start: 2064
    functionDepth: 3
    functionLinenumber: 2064
    functionLinenumberEnd: 2104
    functionName: cli_vm_execute_jit
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - watchdog_arm
    - cli_warnmsg
    - bytecode_execute
    - watchdog_disarm
    - cli_dbgmsg_no_inline
    - gettimeofday
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t cli_vm_execute_jit(const struct cli_all_bc *bcs, struct
      cli_bc_ctx *ctx,\n                              const struct cli_bc_func *func)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2110,1
    - Dst: cli_rndnum
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2112,1
    - Dst: cl_hash_data
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - guardbuf
    argTypes:
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 2115
      start: 2107
    functionDepth: 2
    functionLinenumber: 2107
    functionLinenumberEnd: 2115
    functionName: setGuard
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - cl_hash_data
    - cli_rndnum
    linkageType: ''
    returnType: void
    signature: void setGuard(unsigned char *guardbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: legacy::FunctionPassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2122,1
    - Dst: createPromoteMemoryToRegisterPass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2122,1
    - Dst: legacy::FunctionPassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2123,1
    - Dst: BrSimplifier::BrSimplifier
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2123,1
    - Dst: legacy::FunctionPassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2124,1
    - Dst: createDeadCodeEliminationPass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - FPM
    - trusted
    - M
    argTypes:
    - legacy::FunctionPassManager
    - bool
    - Module*
    constantsTouched: []
    func_position:
      end: 2125
      start: 2116
    functionDepth: 0
    functionLinenumber: 2116
    functionLinenumberEnd: 2125
    functionName: addFPasses
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - createPromoteMemoryToRegisterPass
    - legacy::FunctionPassManager::add
    - createDeadCodeEliminationPass
    - BrSimplifier::BrSimplifier
    linkageType: ''
    returnType: void
    signature: void addFPasses(legacy::FunctionPassManager &FPM, bool trusted, Module
      *M)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMApiScopedLock::LLVMApiScopedLock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2132,1
    - Dst: Module::Module
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2138,1
    - Dst: EngineBuilder::setTargetOptions
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2145,1
    - Dst: EngineBuilder::setErrorStr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2147,1
    - Dst: EngineBuilder::setEngineKind
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2148,1
    - Dst: EngineBuilder::setOptLevel
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2149,1
    - Dst: EngineBuilder::create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2150,1
    - Dst: std::string::empty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2152,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2153,1
    - Dst: std::string::c_str
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2154,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2156,1
    - Dst: NotifyListener::NotifyListener
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2159,1
    - Dst: ExecutionEngine*::RegisterJITEventListener
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2160,1
    - Dst: ExecutionEngine*::DisableLazyCompilation
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2164,1
    - Dst: ExecutionEngine*::DisableSymbolSearching
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2166,1
    - Dst: addFunctionProtos
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2169,1
    - Dst: Module*::setDataLayout
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2172,1
    - Dst: ExecutionEngine*::getDataLayout
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2172,1
    - Dst: Module*::setTargetTriple
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2173,1
    - Dst: sys::getDefaultTargetTriple
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2173,1
    - Dst: addFPasses
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2174,1
    - Dst: addFPasses
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2175,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2179,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2179,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2179,1
    - Dst: Function::Function
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2182,1
    - Dst: cast<FunctionType>
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2185,1
    - Dst: LLVMTypeMapper::get
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2185,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2186,1
    - Dst: llvm_unreachable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2220,1
    - Dst: Twine
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2223,1
    - Dst: str
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2223,1
    - Dst: llvm_error_handler
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2224,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2227,1
    - Dst: Function*::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2227,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2228,1
    - Dst: optget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2233,1
    - Dst: Type::getVoidTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2233,1
    - Dst: Module*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2233,1
    - Dst: PointerType::getUnqual
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2234,1
    - Dst: Type::getInt8Ty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2234,1
    - Dst: Module*::getContext
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2234,1
    - Dst: GlobalVariable::GlobalVariable
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2234,1
    - Dst: cli_rndnum
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2237,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2240,1
    - Dst: GlobalVariable*::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2240,1
    - Dst: setGuard
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2241,1
    - Dst: File::Create
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2243,1
    - Dst: sys::DynamicLibrary::AddSymbol
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2244,1
    - Dst: Function*::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2244,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2245,1
    - Dst: Function::Function
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2247,1
    - Dst: LLVMCodegen::generate
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2256,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2258,1
    - Dst: legacy::PassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2279,1
    - Dst: createGVNPass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2279,1
    - Dst: legacy::PassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2280,1
    - Dst: createSCCPPass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2280,1
    - Dst: legacy::PassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2281,1
    - Dst: createCFGSimplificationPass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2281,1
    - Dst: legacy::PassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2282,1
    - Dst: createGlobalOptimizerPass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2282,1
    - Dst: legacy::PassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2283,1
    - Dst: createConstantMergePass
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2283,1
    - Dst: RuntimeLimits::RuntimeLimits
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2285,1
    - Dst: legacy::PassManager::add
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2286,1
    - Dst: TimerWrapper::startTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2288,1
    - Dst: legacy::PassManager::run
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2289,1
    - Dst: TimerWrapper::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2290,1
    - Dst: ExecutionEngine*::finalizeObject
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2292,1
    - Dst: TimerWrapper::startTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2295,1
    - Dst: Module*::begin
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2297,1
    - Dst: Module*::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2297,1
    - Dst: Function*::isDeclaration
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2299,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2300,1
    - Dst: TimerWrapper::stopTimer
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2303,1
    - Dst: ExecutionEngine*::getPointerToFunction
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2309,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2316,1
    - Dst: what
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2317,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2320,1
    - Dst: HANDLER_END
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2325,1
    - Dst: cli_errmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2326,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 128
    argCount: 1
    argNames:
    - bcs
    argTypes:
    - struct cli_all_bc*
    constantsTouched: []
    func_position:
      end: 2328
      start: 2127
    functionDepth: 6
    functionLinenumber: 2127
    functionLinenumberEnd: 2328
    functionName: cli_bytecode_prepare_jit
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 2
    functionsReached:
    - Function*::getName
    - createGVNPass
    - ExecutionEngine*::DisableSymbolSearching
    - File::Create
    - what
    - legacy::PassManager::add
    - ExecutionEngine*::finalizeObject
    - Module*::begin
    - llvm_error_handler
    - Function*::isDeclaration
    - ExecutionEngine*::getDataLayout
    - setGuard
    - Module*::end
    - ExecutionEngine*::DisableLazyCompilation
    - std::string::c_str
    - HANDLER_END
    - createCFGSimplificationPass
    - sys::getDefaultTargetTriple
    - Twine
    - ExecutionEngine*::getPointerToFunction
    - Module*::getContext
    - TimerWrapper::stopTimer
    - EngineBuilder::create
    - optget
    - ExecutionEngine*::RegisterJITEventListener
    - Module*::setDataLayout
    - legacy::PassManager::run
    - Type::getVoidTy
    - Module*::setTargetTriple
    - PointerType::getUnqual
    - llvm_unreachable
    - NotifyListener::NotifyListener
    - Function::Function
    - sys::DynamicLibrary::AddSymbol
    - addFPasses
    - GlobalVariable::GlobalVariable
    - EngineBuilder::setEngineKind
    - LLVMCodegen::generate
    - RuntimeLimits::RuntimeLimits
    - EngineBuilder::setErrorStr
    - LLVMApiScopedLock::LLVMApiScopedLock
    - cli_rndnum
    - EngineBuilder::setTargetOptions
    - LLVMTypeMapper::get
    - createConstantMergePass
    - createGlobalOptimizerPass
    - Type::getInt8Ty
    - GlobalVariable*::getName
    - createSCCPPass
    - Module::Module
    - EngineBuilder::setOptLevel
    - str
    - TimerWrapper::startTimer
    - addFunctionProtos
    - std::string::empty
    - cli_errmsg
    - cast<FunctionType>
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_prepare_jit(struct cli_all_bc *bcs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMIsMultithreaded
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2332,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2333,1
    - Dst: remove_fatal_error_handler
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2338,1
    - Dst: llvm_install_error_handler
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2339,1
    - Dst: sys::PrintStackTraceOnErrorSignal
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2341,1
    - Dst: llvm::EnablePrettyStackTrace
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2342,1
    - Dst: atexit
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2344,1
    - Dst: InitializeNativeTarget
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2349,1
    - Dst: InitializeNativeTargetAsmPrinter
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2350,1
    - Dst: InitializeNativeTargetAsmParser
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2351,1
    - Dst: InitializeAllTargets
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2353,1
    - Dst: LLVMIsMultithreaded
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2356,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2330
    functionDepth: 2
    functionLinenumber: 2330
    functionLinenumberEnd: 2363
    functionName: bytecode_init
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 3
    functionsReached:
    - llvm_install_error_handler
    - InitializeNativeTargetAsmParser
    - atexit
    - LLVMIsMultithreaded
    - InitializeNativeTargetAsmPrinter
    - cli_warnmsg
    - llvm::EnablePrettyStackTrace
    - InitializeAllTargets
    - sys::PrintStackTraceOnErrorSignal
    - remove_fatal_error_handler
    - InitializeNativeTarget
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t bytecode_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMApiScopedLock::LLVMApiScopedLock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2368,1
    - Dst: cli_bcengine::cli_bcengine
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bcs
    - dconfmask
    argTypes:
    - struct cli_all_bc*
    - unsigned
    constantsTouched: []
    func_position:
      end: 2375
      start: 2366
    functionDepth: 1
    functionLinenumber: 2366
    functionLinenumberEnd: 2375
    functionName: cli_bytecode_init_jit
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - LLVMApiScopedLock::LLVMApiScopedLock
    - cli_bcengine::cli_bcengine
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_init_jit(struct cli_all_bc *bcs, unsigned dconfmask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMApiScopedLock::LLVMApiScopedLock
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2379,1
    - Dst: struct cli_all_bc*::engine::EE::UnregisterJITEventListener
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - bcs
    - partial
    argTypes:
    - struct cli_all_bc*
    - int
    constantsTouched: []
    func_position:
      end: 2395
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2395
    functionName: cli_bytecode_done_jit
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 3
    functionsReached:
    - struct cli_all_bc*::engine::EE::UnregisterJITEventListener
    - LLVMApiScopedLock::LLVMApiScopedLock
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t cli_bytecode_done_jit(struct cli_all_bc *bcs, int partial)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl::ParseCommandLineOptions
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 2400
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2400
    functionName: cli_bytecode_debug
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - cl::ParseCommandLineOptions
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_debug(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: errs
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2414,1
    - Dst: std::string
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2425,1
    - Dst: std::string
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2425,1
    - Dst: files::find
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2426,1
    - Dst: files::end
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2428,1
    - Dst: linesTy::linesTy
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2429,1
    - Dst: MemoryBuffer::getFile
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2431,1
    - Dst: ErrorOr::get
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2435,1
    - Dst: errs
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2438,1
    - Dst: StringMap<linesTy *>::iterator::getValue
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2444,1
    - Dst: linesTy*::linev::size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2446,1
    - Dst: linesTy*::linev::empty
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2448,1
    - Dst: linesTy*::buffer::getBufferStart
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2449,1
    - Dst: linesTy*::linev::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2450,1
    - Dst: linesTy*::linev::back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2452,1
    - Dst: linesTy*::buffer::getBufferEnd
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2453,1
    - Dst: strchr
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2455,1
    - Dst: linesTy*::buffer::getBufferEnd
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2457,1
    - Dst: linesTy*::linev::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2458,1
    - Dst: linesTy*::linev::push_back
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2460,1
    - Dst: linesTy*::linev::size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2463,1
    - Dst: errs
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2464,1
    - Dst: assert
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2467,1
    - Dst: linesTy*::linev::size
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2467,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cli_bc_ctx*
    constantsTouched: []
    func_position:
      end: 2468
      start: 2411
    functionDepth: 1
    functionLinenumber: 2411
    functionLinenumberEnd: 2468
    functionName: cli_bytecode_debug_printsrc
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - files::end
    - ErrorOr::get
    - linesTy*::linev::back
    - linesTy*::linev::empty
    - linesTy::linesTy
    - strchr
    - linesTy*::buffer::getBufferEnd
    - linesTy*::buffer::getBufferStart
    - StringMap<linesTy *>::iterator::getValue
    - errs
    - std::string
    - linesTy*::linev::push_back
    - linesTy*::linev::size
    - MemoryBuffer::getFile
    - assert
    - files::find
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_debug_printsrc(const struct cli_bc_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2470
    functionDepth: 0
    functionLinenumber: 2470
    functionLinenumberEnd: 2473
    functionName: have_clamjit
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool have_clamjit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl::PrintVersionMessage
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2475
    functionDepth: 0
    functionLinenumber: 2475
    functionLinenumberEnd: 2478
    functionName: cli_bytecode_printversion
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - cl::PrintVersionMessage
    linkageType: ''
    returnType: void
    signature: void cli_bytecode_printversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2484,1
    - Dst: printf
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2488,1
    - Dst: printf
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2480
    functionDepth: 0
    functionLinenumber: 2480
    functionLinenumberEnd: 2493
    functionName: cli_printcxxver
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_printcxxver()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: llvm::Function*::hasName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2499,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2500,1
    - Dst: llvm::Function*::getName
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2500,1
    - Dst: cli_warnmsg
      Src: /src/clamav/libclamav/c++/bytecode2llvm.cpp:2502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - msg
    - F
    - I
    argTypes:
    - char*
    - llvm::Function*
    - llvm::Instruction*
    constantsTouched: []
    func_position:
      end: 2504
      start: 2497
    functionDepth: 2
    functionLinenumber: 2497
    functionLinenumberEnd: 2504
    functionName: ClamBCModule::stop
    functionSourceFile: /src/clamav/libclamav/c++/bytecode2llvm.cpp
    functionUses: 0
    functionsReached:
    - cli_warnmsg
    - llvm::Function*::hasName
    - llvm::Function*::getName
    linkageType: ''
    returnType: void
    signature: void stop(const char *msg, llvm::Function *F, llvm::Instruction *I)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:53,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:54,1
    - Dst: get_version
      Src: /src/clamav/clambc/bcrun.c:54,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:55,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:56,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:57,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:58,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:59,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:60,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:61,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:62,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:63,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:64,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:65,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:66,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:67,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:68,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:69,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:70,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:71,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:72,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:73,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:74,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: help
    functionSourceFile: /src/clamav/clambc/bcrun.c
    functionUses: 1
    functionsReached:
    - get_version
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:96,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:102,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:105,1
    - Dst: cli_bytecode_debug_printsrc
      Src: /src/clamav/clambc/bcrun.c:113,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - event
    argTypes:
    - struct cli_bc_ctx*
    - unsigned
    constantsTouched: []
    func_position:
      end: 124
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 124
    functionName: tracehook
    functionSourceFile: /src/clamav/clambc/bcrun.c
    functionUses: 0
    functionsReached:
    - fprintf
    - cli_bytecode_debug_printsrc
    linkageType: ''
    returnType: void
    signature: void tracehook(struct cli_bc_ctx *ctx, unsigned event)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clambc/bcrun.c:128,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - op
    argTypes:
    - struct cli_bc_ctx*
    - char*
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: tracehook_op
    functionSourceFile: /src/clamav/clambc/bcrun.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void tracehook_op(struct cli_bc_ctx *ctx, const char *op)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clambc/bcrun.c:134,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - name
    - value
    argTypes:
    - struct cli_bc_ctx*
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: tracehook_val
    functionSourceFile: /src/clamav/clambc/bcrun.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void tracehook_val(struct cli_bc_ctx *ctx, const char *name, uint32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clambc/bcrun.c:140,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - struct cli_bc_ctx*
    - void*
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: tracehook_ptr
    functionSourceFile: /src/clamav/clambc/bcrun.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void tracehook_ptr(struct cli_bc_ctx *ctx, const void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/clambc/bcrun.c:149,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:151,1
    - Dst: fread
      Src: /src/clamav/clambc/bcrun.c:155,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:169,1
    - Dst: putc
      Src: /src/clamav/clambc/bcrun.c:173,1
    - Dst: putc
      Src: /src/clamav/clambc/bcrun.c:176,1
    - Dst: fseek
      Src: /src/clamav/clambc/bcrun.c:180,1
    - Dst: fread
      Src: /src/clamav/clambc/bcrun.c:182,1
    - Dst: fclose
      Src: /src/clamav/clambc/bcrun.c:184,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 185
    functionName: print_src
    functionSourceFile: /src/clamav/clambc/bcrun.c
    functionUses: 0
    functionsReached:
    - fseek
    - fread
    - printf
    - fprintf
    - putc
    - fclose
    - fopen
    linkageType: ''
    returnType: void
    signature: void print_src(const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_flevel
      Src: /src/clamav/clambc/bcrun.c:265,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:266,1
    - Dst: optparse
      Src: /src/clamav/clambc/bcrun.c:268,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:270,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:271,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:273,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:274,1
    - Dst: get_version
      Src: /src/clamav/clambc/bcrun.c:274,1
    - Dst: cl_init
      Src: /src/clamav/clambc/bcrun.c:275,1
    - Dst: cli_bytecode_printversion
      Src: /src/clamav/clambc/bcrun.c:276,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:277,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:278,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:280,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:281,1
    - Dst: help
      Src: /src/clamav/clambc/bcrun.c:282,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:283,1
    - Dst: fopen
      Src: /src/clamav/clambc/bcrun.c:285,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:287,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:288,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:289,1
    - Dst: malloc
      Src: /src/clamav/clambc/bcrun.c:292,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:294,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:295,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:296,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:299,1
    - Dst: cl_debug
      Src: /src/clamav/clambc/bcrun.c:300,1
    - Dst: cl_init
      Src: /src/clamav/clambc/bcrun.c:303,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:305,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:305,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:306,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:307,1
    - Dst: cli_bytecode_debug
      Src: /src/clamav/clambc/bcrun.c:314,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:316,1
    - Dst: cli_bytecode_init
      Src: /src/clamav/clambc/bcrun.c:319,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:321,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:321,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:322,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:323,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:330,1
    - Dst: strcasecmp
      Src: /src/clamav/clambc/bcrun.c:332,1
    - Dst: cli_bytecode_load
      Src: /src/clamav/clambc/bcrun.c:338,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:338,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:340,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:340,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:341,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:342,1
    - Dst: fclose
      Src: /src/clamav/clambc/bcrun.c:344,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:346,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:347,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:350,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:351,1
    - Dst: cli_bytecode_describe
      Src: /src/clamav/clambc/bcrun.c:352,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:353,1
    - Dst: print_src
      Src: /src/clamav/clambc/bcrun.c:354,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:355,1
    - Dst: cli_bytetype_describe
      Src: /src/clamav/clambc/bcrun.c:357,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:359,1
    - Dst: cli_bytevalue_describe
      Src: /src/clamav/clambc/bcrun.c:363,1
    - Dst: cli_bytefunc_describe
      Src: /src/clamav/clambc/bcrun.c:364,1
    - Dst: cl_engine_new
      Src: /src/clamav/clambc/bcrun.c:368,1
    - Dst: memset
      Src: /src/clamav/clambc/bcrun.c:370,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:373,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:374,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:375,1
    - Dst: cl_engine_compile
      Src: /src/clamav/clambc/bcrun.c:377,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:379,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:379,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:380,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:381,1
    - Dst: cli_bytecode_prepare2
      Src: /src/clamav/clambc/bcrun.c:383,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:385,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:385,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:386,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:387,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:390,1
    - Dst: cli_bytecode_context_alloc
      Src: /src/clamav/clambc/bcrun.c:392,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:394,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:395,1
    - Dst: evidence_new
      Src: /src/clamav/clambc/bcrun.c:399,1
    - Dst: calloc
      Src: /src/clamav/clambc/bcrun.c:402,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:404,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:405,1
    - Dst: memset
      Src: /src/clamav/clambc/bcrun.c:415,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:419,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:420,1
    - Dst: cli_bytecode_context_set_trace
      Src: /src/clamav/clambc/bcrun.c:421,1
    - Dst: atoi
      Src: /src/clamav/clambc/bcrun.c:428,1
    - Dst: cli_bytecode_context_setfuncid
      Src: /src/clamav/clambc/bcrun.c:430,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:432,1
    - Dst: cli_bytecode_context_setparam_int
      Src: /src/clamav/clambc/bcrun.c:437,1
    - Dst: atoi
      Src: /src/clamav/clambc/bcrun.c:437,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:439,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:439,1
    - Dst: optget
      Src: /src/clamav/clambc/bcrun.c:445,1
    - Dst: open
      Src: /src/clamav/clambc/bcrun.c:446,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:448,1
    - Dst: strerror
      Src: /src/clamav/clambc/bcrun.c:448,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:449,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:450,1
    - Dst: fmap
      Src: /src/clamav/clambc/bcrun.c:452,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:454,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:455,1
    - Dst: cli_bytecode_context_setfile
      Src: /src/clamav/clambc/bcrun.c:457,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:459,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:459,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:460,1
    - Dst: exit
      Src: /src/clamav/clambc/bcrun.c:461,1
    - Dst: cli_bytecode_run
      Src: /src/clamav/clambc/bcrun.c:467,1
    - Dst: fprintf
      Src: /src/clamav/clambc/bcrun.c:469,1
    - Dst: cl_strerror
      Src: /src/clamav/clambc/bcrun.c:469,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:473,1
    - Dst: cli_bytecode_context_getresult_int
      Src: /src/clamav/clambc/bcrun.c:474,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:476,1
    - Dst: cli_bytecode_context_destroy
      Src: /src/clamav/clambc/bcrun.c:478,1
    - Dst: funmap
      Src: /src/clamav/clambc/bcrun.c:480,1
    - Dst: cl_engine_free
      Src: /src/clamav/clambc/bcrun.c:481,1
    - Dst: free
      Src: /src/clamav/clambc/bcrun.c:482,1
    - Dst: evidence_free
      Src: /src/clamav/clambc/bcrun.c:483,1
    - Dst: cli_bytecode_destroy
      Src: /src/clamav/clambc/bcrun.c:485,1
    - Dst: cli_bytecode_done
      Src: /src/clamav/clambc/bcrun.c:486,1
    - Dst: free
      Src: /src/clamav/clambc/bcrun.c:487,1
    - Dst: optfree
      Src: /src/clamav/clambc/bcrun.c:488,1
    - Dst: close
      Src: /src/clamav/clambc/bcrun.c:490,1
    - Dst: printf
      Src: /src/clamav/clambc/bcrun.c:492,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 201
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 495
      start: 252
    functionDepth: 10
    functionLinenumber: 252
    functionLinenumberEnd: 495
    functionName: main
    functionSourceFile: /src/clamav/clambc/bcrun.c
    functionUses: 3
    functionsReached:
    - fmap
    - help
    - cl_init
    - cli_bytecode_printversion
    - strcasecmp
    - cl_engine_free
    - printf
    - cli_bytevalue_describe
    - cl_engine_new
    - cli_bytecode_context_getresult_int
    - get_version
    - cli_bytecode_context_setfuncid
    - cli_bytecode_context_destroy
    - funmap
    - optfree
    - strerror
    - cl_engine_compile
    - cli_bytecode_load
    - evidence_new
    - optget
    - cli_bytecode_done
    - cli_bytetype_describe
    - cl_strerror
    - close
    - memset
    - calloc
    - cli_bytecode_init
    - open
    - check_flevel
    - cli_bytecode_context_set_trace
    - fprintf
    - cli_bytefunc_describe
    - cli_bytecode_destroy
    - cli_bytecode_context_alloc
    - malloc
    - fclose
    - optparse
    - cli_bytecode_prepare2
    - free
    - cli_bytecode_debug
    - cli_bytecode_run
    - evidence_free
    - print_src
    - exit
    - cli_bytecode_context_setparam_int
    - cli_bytecode_describe
    - cli_bytecode_context_setfile
    - cl_debug
    - atoi
    - fopen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regfree
      Src: /src/clamav/clamav-milter/allow_list.c:54,1
    - Dst: free
      Src: /src/clamav/clamav-milter/allow_list.c:55,1
    - Dst: cli_regfree
      Src: /src/clamav/clamav-milter/allow_list.c:60,1
    - Dst: free
      Src: /src/clamav/clamav-milter/allow_list.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 64
    functionName: allow_list_free
    functionSourceFile: /src/clamav/clamav-milter/allow_list.c
    functionUses: 0
    functionsReached:
    - free
    - cli_regfree
    linkageType: ''
    returnType: void
    signature: void allow_list_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/clamav-milter/allow_list.c:72,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/allow_list.c:73,1
    - Dst: fgets
      Src: /src/clamav/clamav-milter/allow_list.c:77,1
    - Dst: strncasecmp
      Src: /src/clamav/clamav-milter/allow_list.c:85,1
    - Dst: strncasecmp
      Src: /src/clamav/clamav-milter/allow_list.c:88,1
    - Dst: strlen
      Src: /src/clamav/clamav-milter/allow_list.c:91,1
    - Dst: malloc
      Src: /src/clamav/clamav-milter/allow_list.c:97,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/allow_list.c:98,1
    - Dst: allow_list_free
      Src: /src/clamav/clamav-milter/allow_list.c:99,1
    - Dst: fclose
      Src: /src/clamav/clamav-milter/allow_list.c:100,1
    - Dst: cli_regcomp
      Src: /src/clamav/clamav-milter/allow_list.c:105,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/allow_list.c:106,1
    - Dst: allow_list_free
      Src: /src/clamav/clamav-milter/allow_list.c:107,1
    - Dst: fclose
      Src: /src/clamav/clamav-milter/allow_list.c:108,1
    - Dst: fclose
      Src: /src/clamav/clamav-milter/allow_list.c:112,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 114
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 114
    functionName: allow_list_init
    functionSourceFile: /src/clamav/clamav-milter/allow_list.c
    functionUses: 0
    functionsReached:
    - cli_regcomp
    - strlen
    - logg
    - allow_list_free
    - strncasecmp
    - malloc
    - fclose
    - fgets
    - fopen
    linkageType: ''
    returnType: int
    signature: int allow_list_init(const char *fname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regexec
      Src: /src/clamav/clamav-milter/allow_list.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - addr
    - from
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: allowed
    functionSourceFile: /src/clamav/clamav-milter/allow_list.c
    functionUses: 0
    functionsReached:
    - cli_regexec
    linkageType: ''
    returnType: int
    signature: int allowed(const char *addr, int from)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/clamav-milter/allow_list.c:137,1
    - Dst: fopen
      Src: /src/clamav/clamav-milter/allow_list.c:139,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/allow_list.c:143,1
    - Dst: fgets
      Src: /src/clamav/clamav-milter/allow_list.c:146,1
    - Dst: strlen
      Src: /src/clamav/clamav-milter/allow_list.c:152,1
    - Dst: free
      Src: /src/clamav/clamav-milter/allow_list.c:162,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/allow_list.c:163,1
    - Dst: fclose
      Src: /src/clamav/clamav-milter/allow_list.c:164,1
    - Dst: realloc
      Src: /src/clamav/clamav-milter/allow_list.c:195,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/allow_list.c:196,1
    - Dst: fclose
      Src: /src/clamav/clamav-milter/allow_list.c:197,1
    - Dst: fclose
      Src: /src/clamav/clamav-milter/allow_list.c:204,1
    - Dst: cli_regcomp
      Src: /src/clamav/clamav-milter/allow_list.c:207,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/allow_list.c:208,1
    - Dst: free
      Src: /src/clamav/clamav-milter/allow_list.c:209,1
    - Dst: free
      Src: /src/clamav/clamav-milter/allow_list.c:212,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 1
    argNames:
    - r
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 215
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 215
    functionName: smtpauth_init
    functionSourceFile: /src/clamav/clamav-milter/allow_list.c
    functionUses: 0
    functionsReached:
    - cli_regcomp
    - strlen
    - realloc
    - strncmp
    - logg
    - fclose
    - free
    - fgets
    - fopen
    linkageType: ''
    returnType: int
    signature: int smtpauth_init(const char *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_regexec
      Src: /src/clamav/clamav-milter/allow_list.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - login
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: smtpauthed
    functionSourceFile: /src/clamav/clamav-milter/allow_list.c
    functionUses: 0
    functionsReached:
    - cli_regexec
    linkageType: ''
    returnType: int
    signature: int smtpauthed(const char *login)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strerror_print
      Src: /src/clamav/clamav-milter/netcode.c:88,1
    - Dst: fcntl
      Src: /src/clamav/clamav-milter/netcode.c:91,1
    - Dst: strerror_print
      Src: /src/clamav/clamav-milter/netcode.c:93,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:94,1
    - Dst: fcntl
      Src: /src/clamav/clamav-milter/netcode.c:98,1
    - Dst: strerror_print
      Src: /src/clamav/clamav-milter/netcode.c:99,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - cpe
    argTypes:
    - struct CP_ENTRY*
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: nc_socket
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - strerror_print
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int nc_socket(struct CP_ENTRY *cpe)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/clamav/clamav-milter/netcode.c:108,1
    - Dst: strerror_print
      Src: /src/clamav/clamav-milter/netcode.c:115,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:116,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamav-milter/netcode.c:127,1
    - Dst: FD_SET
      Src: /src/clamav/clamav-milter/netcode.c:128,1
    - Dst: select
      Src: /src/clamav/clamav-milter/netcode.c:129,1
    - Dst: time
      Src: /src/clamav/clamav-milter/netcode.c:133,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:138,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:139,1
    - Dst: getsockopt
      Src: /src/clamav/clamav-milter/netcode.c:142,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:143,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:144,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - s
    - cpe
    argTypes:
    - int
    - struct CP_ENTRY*
    constantsTouched: []
    func_position:
      end: 149
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 149
    functionName: nc_connect
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - strerror_print
    - close
    - getsockopt
    - FD_SET
    - FD_ZERO
    - time
    - select
    - logg
    linkageType: ''
    returnType: int
    signature: int nc_connect(int s, struct CP_ENTRY *cpe)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/clamav/clamav-milter/netcode.c:157,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:162,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:163,1
    - Dst: strerror_print
      Src: /src/clamav/clamav-milter/netcode.c:172,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:173,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamav-milter/netcode.c:182,1
    - Dst: FD_SET
      Src: /src/clamav/clamav-milter/netcode.c:183,1
    - Dst: select
      Src: /src/clamav/clamav-milter/netcode.c:184,1
    - Dst: time
      Src: /src/clamav/clamav-milter/netcode.c:188,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:193,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:194,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - s
    - buff
    - len
    argTypes:
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 201
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 201
    functionName: nc_send
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - strerror_print
    - close
    - FD_SET
    - FD_ZERO
    - time
    - logg
    - select
    linkageType: ''
    returnType: int
    signature: int nc_send(int s, const void *buff, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/clamav-milter/netcode.c:214,1
    - Dst: CMSG_LEN
      Src: /src/clamav/clamav-milter/netcode.c:218,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/clamav/clamav-milter/netcode.c:219,1
    - Dst: CMSG_LEN
      Src: /src/clamav/clamav-milter/netcode.c:220,1
    - Dst: CMSG_DATA
      Src: /src/clamav/clamav-milter/netcode.c:223,1
    - Dst: sendmsg
      Src: /src/clamav/clamav-milter/netcode.c:226,1
    - Dst: strerror_print
      Src: /src/clamav/clamav-milter/netcode.c:228,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - s
    - fd
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 232
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 232
    functionName: nc_sendmsg
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - strerror_print
    - close
    - memset
    - sendmsg
    - CMSG_DATA
    - CMSG_LEN
    - CMSG_FIRSTHDR
    linkageType: ''
    returnType: int
    signature: int nc_sendmsg(int s, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/clamav/clamav-milter/netcode.c:237,1
    - Dst: time
      Src: /src/clamav/clamav-milter/netcode.c:244,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:246,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:247,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamav-milter/netcode.c:253,1
    - Dst: FD_SET
      Src: /src/clamav/clamav-milter/netcode.c:254,1
    - Dst: select
      Src: /src/clamav/clamav-milter/netcode.c:256,1
    - Dst: recv
      Src: /src/clamav/clamav-milter/netcode.c:263,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:265,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:266,1
    - Dst: strerror_print
      Src: /src/clamav/clamav-milter/netcode.c:273,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:274,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:280,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:281,1
    - Dst: malloc
      Src: /src/clamav/clamav-milter/netcode.c:285,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:286,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:287,1
    - Dst: memcpy
      Src: /src/clamav/clamav-milter/netcode.c:290,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 293
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 293
    functionName: nc_recv
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - strerror_print
    - close
    - FD_SET
    - recv
    - FD_ZERO
    - time
    - logg
    - select
    - memcpy
    - malloc
    linkageType: ''
    returnType: char
    signature: char *nc_recv(int s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nc_connect
      Src: /src/clamav/clamav-milter/netcode.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cpe
    argTypes:
    - struct CP_ENTRY*
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: nc_connect_entry
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - nc_connect
    linkageType: ''
    returnType: int
    signature: int nc_connect_entry(struct CP_ENTRY *cpe)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/netcode.c:308,1
    - Dst: nc_recv
      Src: /src/clamav/clamav-milter/netcode.c:308,1
    - Dst: strcmp
      Src: /src/clamav/clamav-milter/netcode.c:309,1
    - Dst: free
      Src: /src/clamav/clamav-milter/netcode.c:310,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:311,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cpe
    argTypes:
    - struct CP_ENTRY*
    constantsTouched: []
    func_position:
      end: 317
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 317
    functionName: nc_ping_entry
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - close
    - strcmp
    - nc_recv
    - nc_send
    - free
    linkageType: ''
    returnType: void
    signature: void nc_ping_entry(struct CP_ENTRY *cpe)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpool_get_rand
      Src: /src/clamav/clamav-milter/netcode.c:321,1
    - Dst: cli_gentempfd
      Src: /src/clamav/clamav-milter/netcode.c:327,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:328,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:329,1
    - Dst: unlink
      Src: /src/clamav/clamav-milter/netcode.c:332,1
    - Dst: free
      Src: /src/clamav/clamav-milter/netcode.c:333,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/netcode.c:334,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:335,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:336,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:337,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/netcode.c:341,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:342,1
    - Dst: close
      Src: /src/clamav/clamav-milter/netcode.c:343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - main
    - alt
    - local
    argTypes:
    - int*
    - int*
    - int*
    constantsTouched: []
    func_position:
      end: 348
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 348
    functionName: nc_connect_rand
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - close
    - unlink
    - cli_gentempfd
    - logg
    - free
    - nc_send
    - cpool_get_rand
    linkageType: ''
    returnType: int
    signature: int nc_connect_rand(int *main, int *alt, int *local)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/clamav-milter/netcode.c:360,1
    - Dst: getaddrinfo
      Src: /src/clamav/clamav-milter/netcode.c:364,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:365,1
    - Dst: htonl
      Src: /src/clamav/clamav-milter/netcode.c:372,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:388,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamav-milter/netcode.c:389,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamav-milter/netcode.c:392,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - name
    - family
    - host
    argTypes:
    - char*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 394
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 394
    functionName: resolve
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - memset
    - htonl
    - getaddrinfo
    - logg
    - freeaddrinfo
    linkageType: ''
    returnType: int
    signature: int resolve(char *name, uint32_t *family, uint32_t *host)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamav-milter/netcode.c:398,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:403,1
    - Dst: resolve
      Src: /src/clamav/clamav-milter/netcode.c:407,1
    - Dst: free
      Src: /src/clamav/clamav-milter/netcode.c:408,1
    - Dst: atoi
      Src: /src/clamav/clamav-milter/netcode.c:420,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:423,1
    - Dst: free
      Src: /src/clamav/clamav-milter/netcode.c:424,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - name
    - mask
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 438
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 438
    functionName: localnet
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - resolve
    - logg
    - malloc
    - free
    - atoi
    linkageType: ''
    returnType: struct LOCALNET
    signature: struct LOCALNET *localnet(char *name, char *mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - family
    - host
    argTypes:
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 453
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 453
    functionName: islocalnet
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int islocalnet(uint32_t family, uint32_t *host)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resolve
      Src: /src/clamav/clamav-milter/netcode.c:460,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/netcode.c:461,1
    - Dst: islocalnet
      Src: /src/clamav/clamav-milter/netcode.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 465
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 465
    functionName: islocalnet_name
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - islocalnet
    - logg
    - resolve
    linkageType: ''
    returnType: int
    signature: int islocalnet_name(char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/clamav/clamav-milter/netcode.c:478,1
    - Dst: islocalnet
      Src: /src/clamav/clamav-milter/netcode.c:494,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    constantsTouched: []
    func_position:
      end: 495
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 495
    functionName: islocalnet_sock
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - islocalnet
    - htonl
    linkageType: ''
    returnType: int
    signature: int islocalnet_sock(struct sockaddr *sa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamav-milter/netcode.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: localnets_free
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void localnets_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamav-milter/netcode.c:511,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/netcode.c:521,1
    - Dst: localnet
      Src: /src/clamav/clamav-milter/netcode.c:522,1
    - Dst: localnets_free
      Src: /src/clamav/clamav-milter/netcode.c:523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 532
      start: 507
    functionDepth: 5
    functionLinenumber: 507
    functionLinenumberEnd: 532
    functionName: localnets_init
    functionSourceFile: /src/clamav/clamav-milter/netcode.c
    functionUses: 0
    functionsReached:
    - localnets_free
    - optget
    - strcasecmp
    - localnet
    linkageType: ''
    returnType: int
    signature: int localnets_init(struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_is_abspath
      Src: /src/clamav/clamav-milter/connpool.c:76,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:77,1
    - Dst: malloc
      Src: /src/clamav/clamav-milter/connpool.c:80,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:81,1
    - Dst: strncpy
      Src: /src/clamav/clamav-milter/connpool.c:86,1
    - Dst: SETGAI
      Src: /src/clamav/clamav-milter/connpool.c:94,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 98
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 98
    functionName: cpool_addunix
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 0
    functionsReached:
    - strncpy
    - logg
    - cli_is_abspath
    - malloc
    - SETGAI
    linkageType: ''
    returnType: int
    signature: int cpool_addunix(char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bind
      Src: /src/clamav/clamav-milter/connpool.c:105,1
    - Dst: close
      Src: /src/clamav/clamav-milter/connpool.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sa
    - addrlen
    argTypes:
    - struct sockaddr*
    - socklen_t
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: islocal
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 0
    functionsReached:
    - close
    - bind
    linkageType: ''
    returnType: int
    signature: int islocal(struct sockaddr *sa, socklen_t addrlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/clamav-milter/connpool.c:115,1
    - Dst: getaddrinfo
      Src: /src/clamav/clamav-milter/connpool.c:119,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:120,1
    - Dst: memset
      Src: /src/clamav/clamav-milter/connpool.c:126,1
    - Dst: getaddrinfo
      Src: /src/clamav/clamav-milter/connpool.c:130,1
    - Dst: islocal
      Src: /src/clamav/clamav-milter/connpool.c:131,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamav-milter/connpool.c:132,1
    - Dst: SETGAI
      Src: /src/clamav/clamav-milter/connpool.c:138,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - addr
    - port
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: cpool_addtcp
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 0
    functionsReached:
    - islocal
    - memset
    - getaddrinfo
    - logg
    - freeaddrinfo
    - SETGAI
    linkageType: ''
    returnType: int
    signature: int cpool_addtcp(char *addr, char *port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/clamav/clamav-milter/connpool.c:147,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:148,1
    - Dst: cpool_free
      Src: /src/clamav/clamav-milter/connpool.c:149,1
    - Dst: memset
      Src: /src/clamav/clamav-milter/connpool.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: addslot
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 0
    functionsReached:
    - realloc
    - memset
    - cpool_free
    - logg
    linkageType: ''
    returnType: int
    signature: int addslot(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/clamav/clamav-milter/connpool.c:170,1
    - Dst: time
      Src: /src/clamav/clamav-milter/connpool.c:174,1
    - Dst: nc_ping_entry
      Src: /src/clamav/clamav-milter/connpool.c:175,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:176,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 185
    functionName: cpool_probe
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 0
    functionsReached:
    - nc_ping_entry
    - time
    - logg
    linkageType: ''
    returnType: void
    signature: void cpool_probe(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/clamav/clamav-milter/connpool.c:191,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamav-milter/connpool.c:192,1
    - Dst: cpool_probe
      Src: /src/clamav/clamav-milter/connpool.c:197,1
    - Dst: time
      Src: /src/clamav/clamav-milter/connpool.c:198,1
    - Dst: pthread_cond_timedwait
      Src: /src/clamav/clamav-milter/connpool.c:200,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamav-milter/connpool.c:202,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamav-milter/connpool.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - _UNUSED_*
    constantsTouched: []
    func_position:
      end: 205
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 205
    functionName: cpool_mon
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 0
    functionsReached:
    - cpool_probe
    - pthread_mutex_destroy
    - pthread_mutex_unlock
    - pthread_mutex_init
    - time
    - pthread_mutex_lock
    - pthread_cond_timedwait
    linkageType: ''
    returnType: void
    signature: void *cpool_mon(_UNUSED_ void *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/clamav-milter/connpool.c:212,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:213,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/connpool.c:219,1
    - Dst: addslot
      Src: /src/clamav/clamav-milter/connpool.c:223,1
    - Dst: strncasecmp
      Src: /src/clamav/clamav-milter/connpool.c:224,1
    - Dst: cpool_addunix
      Src: /src/clamav/clamav-milter/connpool.c:225,1
    - Dst: strncasecmp
      Src: /src/clamav/clamav-milter/connpool.c:226,1
    - Dst: cpool_addtcp
      Src: /src/clamav/clamav-milter/connpool.c:232,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:234,1
    - Dst: cpool_free
      Src: /src/clamav/clamav-milter/connpool.c:241,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:247,1
    - Dst: cpool_free
      Src: /src/clamav/clamav-milter/connpool.c:248,1
    - Dst: pthread_create
      Src: /src/clamav/clamav-milter/connpool.c:252,1
    - Dst: srand
      Src: /src/clamav/clamav-milter/connpool.c:253,1
    - Dst: time
      Src: /src/clamav/clamav-milter/connpool.c:253,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 254
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 254
    functionName: cpool_init
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 0
    functionsReached:
    - cpool_addtcp
    - pthread_create
    - calloc
    - optget
    - cpool_addunix
    - cpool_free
    - logg
    - time
    - strncasecmp
    - addslot
    - srand
    linkageType: ''
    returnType: void
    signature: void cpool_init(struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamav-milter/connpool.c:261,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamav-milter/connpool.c:263,1
    - Dst: pthread_join
      Src: /src/clamav/clamav-milter/connpool.c:264,1
    - Dst: FREESRV
      Src: /src/clamav/clamav-milter/connpool.c:270,1
    - Dst: free
      Src: /src/clamav/clamav-milter/connpool.c:271,1
    - Dst: free
      Src: /src/clamav/clamav-milter/connpool.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 276
    functionName: cpool_free
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 2
    functionsReached:
    - logg
    - pthread_join
    - pthread_cond_signal
    - FREESRV
    - free
    linkageType: ''
    returnType: void
    signature: void cpool_free(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/clamav/clamav-milter/connpool.c:284,1
    - Dst: nc_connect_entry
      Src: /src/clamav/clamav-milter/connpool.c:290,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamav-milter/connpool.c:297,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - int*
    constantsTouched: []
    func_position:
      end: 299
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 299
    functionName: cpool_get_rand
    functionSourceFile: /src/clamav/clamav-milter/connpool.c
    functionUses: 1
    functionsReached:
    - nc_connect_entry
    - pthread_cond_signal
    - rand
    linkageType: ''
    returnType: struct CP_ENTRY
    signature: struct CP_ENTRY *cpool_get_rand(int *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_chgheader
      Src: /src/clamav/clamav-milter/clamfi.c:103,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:104,1
    - Dst: smfi_chgheader
      Src: /src/clamav/clamav-milter/clamfi.c:106,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:107,1
    - Dst: smfi_addheader
      Src: /src/clamav/clamav-milter/clamfi.c:108,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:109,1
    - Dst: smfi_addheader
      Src: /src/clamav/clamav-milter/clamfi.c:110,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:111,1
    - Dst: smfi_insheader
      Src: /src/clamav/clamav-milter/clamfi.c:113,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:114,1
    - Dst: smfi_insheader
      Src: /src/clamav/clamav-milter/clamfi.c:115,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - ctx
    - st
    - scanned
    - status
    argTypes:
    - SMFICTX*
    - char*
    - unsigned int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: add_x_header
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - smfi_chgheader
    - smfi_insheader
    - smfi_addheader
    - logg
    linkageType: ''
    returnType: void
    signature: void add_x_header(SMFICTX *ctx, char *st, unsigned int scanned, unsigned
      int status)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/clamav/clamav-milter/clamfi.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: makesanehdr
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - isprint
    linkageType: ''
    returnType: char
    signature: char *makesanehdr(char *hdr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/clamav/clamav-milter/clamfi.c:143,1
    - Dst: close
      Src: /src/clamav/clamav-milter/clamfi.c:145,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:146,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:147,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:148,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:152,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:154,1
    - Dst: smfi_setpriv
      Src: /src/clamav/clamav-milter/clamfi.c:156,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - cf
    - closewhat
    argTypes:
    - SMFICTX*
    - struct CLAMFI*
    - enum CFWHAT
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: nullify
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - close
    - smfi_setpriv
    - free
    linkageType: ''
    returnType: void
    signature: void nullify(SMFICTX *ctx, struct CLAMFI *cf, enum CFWHAT closewhat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nc_connect_rand
      Src: /src/clamav/clamav-milter/clamfi.c:166,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:167,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:168,1
    - Dst: sendchunk
      Src: /src/clamav/clamav-milter/clamfi.c:172,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:186,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:187,1
    - Dst: memcpy
      Src: /src/clamav/clamav-milter/clamfi.c:197,1
    - Dst: memcpy
      Src: /src/clamav/clamav-milter/clamfi.c:200,1
    - Dst: htonl
      Src: /src/clamav/clamav-milter/clamfi.c:201,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/clamfi.c:202,1
    - Dst: memcpy
      Src: /src/clamav/clamav-milter/clamfi.c:204,1
    - Dst: htonl
      Src: /src/clamav/clamav-milter/clamfi.c:208,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/clamfi.c:209,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/clamfi.c:209,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/clamfi.c:209,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:214,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:215,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 4
    argNames:
    - cf
    - bodyp
    - len
    - ctx
    argTypes:
    - struct CLAMFI*
    - unsigned char*
    - size_t
    - SMFICTX*
    constantsTouched: []
    func_position:
      end: 220
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 220
    functionName: sendchunk
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 1
    functionsReached:
    - nullify
    - sendchunk
    - htonl
    - nc_send
    - logg
    - memcpy
    - nc_connect_rand
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat sendchunk(struct CLAMFI *cf, unsigned char *bodyp, size_t
      len, SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_getpriv
      Src: /src/clamav/clamav-milter/clamfi.c:227,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:231,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:232,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:233,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:240,1
    - Dst: strdup
      Src: /src/clamav/clamav-milter/clamfi.c:241,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:242,1
    - Dst: strdup
      Src: /src/clamav/clamav-milter/clamfi.c:243,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:244,1
    - Dst: strdup
      Src: /src/clamav/clamav-milter/clamfi.c:245,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:249,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:250,1
    - Dst: sendchunk
      Src: /src/clamav/clamav-milter/clamfi.c:253,1
    - Dst: strlen
      Src: /src/clamav/clamav-milter/clamfi.c:253,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:254,1
    - Dst: sendchunk
      Src: /src/clamav/clamav-milter/clamfi.c:257,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:258,1
    - Dst: sendchunk
      Src: /src/clamav/clamav-milter/clamfi.c:261,1
    - Dst: strlen
      Src: /src/clamav/clamav-milter/clamfi.c:261,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:262,1
    - Dst: sendchunk
      Src: /src/clamav/clamav-milter/clamfi.c:265,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:267,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - headerf
    - headerv
    argTypes:
    - SMFICTX*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 269
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 269
    functionName: clamfi_header
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - nullify
    - sendchunk
    - strlen
    - strcasecmp
    - strdup
    - logg
    - smfi_getpriv
    - free
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat clamfi_header(SMFICTX *ctx, char *headerf, char *headerv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_getpriv
      Src: /src/clamav/clamav-milter/clamfi.c:276,1
    - Dst: sendchunk
      Src: /src/clamav/clamav-milter/clamfi.c:280,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:282,1
    - Dst: sendchunk
      Src: /src/clamav/clamav-milter/clamfi.c:288,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - bodyp
    - len
    argTypes:
    - SMFICTX*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 292
      start: 271
    functionDepth: 6
    functionLinenumber: 271
    functionLinenumberEnd: 292
    functionName: clamfi_body
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - free
    - sendchunk
    - smfi_getpriv
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat clamfi_body(SMFICTX *ctx, unsigned char *bodyp, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_getpriv
      Src: /src/clamav/clamav-milter/clamfi.c:298,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:299,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SMFICTX*
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: clamfi_abort
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - free
    - nullify
    - smfi_getpriv
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat clamfi_abort(SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_getpriv
      Src: /src/clamav/clamav-milter/clamfi.c:312,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:317,1
    - Dst: CleanAction
      Src: /src/clamav/clamav-milter/clamfi.c:318,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:319,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:320,1
    - Dst: lseek
      Src: /src/clamav/clamav-milter/clamfi.c:325,1
    - Dst: nc_sendmsg
      Src: /src/clamav/clamav-milter/clamfi.c:327,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:328,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:329,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:330,1
    - Dst: htonl
      Src: /src/clamav/clamav-milter/clamfi.c:335,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/clamfi.c:336,1
    - Dst: nc_send
      Src: /src/clamav/clamav-milter/clamfi.c:336,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:337,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:338,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:339,1
    - Dst: nc_recv
      Src: /src/clamav/clamav-milter/clamfi.c:344,1
    - Dst: close
      Src: /src/clamav/clamav-milter/clamfi.c:347,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:352,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:353,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:354,1
    - Dst: strlen
      Src: /src/clamav/clamav-milter/clamfi.c:358,1
    - Dst: strcmp
      Src: /src/clamav/clamav-milter/clamfi.c:359,1
    - Dst: add_x_header
      Src: /src/clamav/clamav-milter/clamfi.c:360,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:369,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:372,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:378,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:381,1
    - Dst: CleanAction
      Src: /src/clamav/clamav-milter/clamfi.c:384,1
    - Dst: strcmp
      Src: /src/clamav/clamav-milter/clamfi.c:385,1
    - Dst: strrchr
      Src: /src/clamav/clamav-milter/clamfi.c:391,1
    - Dst: snprintf
      Src: /src/clamav/clamav-milter/clamfi.c:402,1
    - Dst: add_x_header
      Src: /src/clamav/clamav-milter/clamfi.c:404,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:423,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:435,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamav-milter/clamfi.c:437,1
    - Dst: fork
      Src: /src/clamav/clamav-milter/clamfi.c:438,1
    - Dst: exit
      Src: /src/clamav/clamav-milter/clamfi.c:450,1
    - Dst: execvp
      Src: /src/clamav/clamav-milter/clamfi.c:450,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamav-milter/clamfi.c:453,1
    - Dst: waitpid
      Src: /src/clamav/clamav-milter/clamfi.c:454,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:456,1
    - Dst: cli_strerror
      Src: /src/clamav/clamav-milter/clamfi.c:456,1
    - Dst: WIFEXITED
      Src: /src/clamav/clamav-milter/clamfi.c:458,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:459,1
    - Dst: WEXITSTATUS
      Src: /src/clamav/clamav-milter/clamfi.c:459,1
    - Dst: WIFSIGNALED
      Src: /src/clamav/clamav-milter/clamfi.c:460,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:461,1
    - Dst: WTERMSIG
      Src: /src/clamav/clamav-milter/clamfi.c:461,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:463,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:466,1
    - Dst: cli_strerror
      Src: /src/clamav/clamav-milter/clamfi.c:466,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:468,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:469,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:470,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:471,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:472,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:473,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:477,1
    - Dst: InfectedAction
      Src: /src/clamav/clamav-milter/clamfi.c:482,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:484,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:488,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:489,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:490,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 138
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SMFICTX*
    constantsTouched: []
    func_position:
      end: 492
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 492
    functionName: clamfi_eom
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - snprintf
    - WIFSIGNALED
    - fork
    - WIFEXITED
    - add_x_header
    - nc_send
    - lseek
    - strcmp
    - strrchr
    - nullify
    - close
    - waitpid
    - InfectedAction
    - smfi_getpriv
    - CleanAction
    - pthread_mutex_lock
    - free
    - nc_sendmsg
    - htonl
    - execvp
    - strlen
    - exit
    - pthread_mutex_unlock
    - WTERMSIG
    - cli_strerror
    - WEXITSTATUS
    - logg
    - nc_recv
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat clamfi_eom(SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: islocalnet_sock
      Src: /src/clamav/clamav-milter/clamfi.c:501,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:502,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:507,1
    - Dst: islocalnet_name
      Src: /src/clamav/clamav-milter/clamfi.c:509,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - hostname
    - hostaddr
    argTypes:
    - _UNUSED_*
    - char*
    - _SOCK_ADDR*
    constantsTouched: []
    func_position:
      end: 516
      start: 494
    functionDepth: 5
    functionLinenumber: 494
    functionLinenumberEnd: 516
    functionName: clamfi_connect
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - islocalnet_name
    - logg
    - islocalnet_sock
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat clamfi_connect(_UNUSED_ SMFICTX *ctx, char *hostname, _SOCK_ADDR
      *hostaddr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:520,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:522,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:524,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:526,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:528,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 532
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 532
    functionName: parse_action
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - logg
    linkageType: ''
    returnType: int
    signature: int parse_action(char *action)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - _UNUSED_*
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: action_accept
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat action_accept(_UNUSED_ SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - _UNUSED_*
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: action_defer
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat action_defer(_UNUSED_ SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - _UNUSED_*
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: action_reject
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat action_reject(_UNUSED_ SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - _UNUSED_*
    constantsTouched: []
    func_position:
      end: 549
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 549
    functionName: action_blackhole
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat action_blackhole(_UNUSED_ SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_quarantine
      Src: /src/clamav/clamav-milter/clamfi.c:552,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SMFICTX*
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: action_quarantine
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - smfi_quarantine
    - logg
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat action_quarantine(SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_getpriv
      Src: /src/clamav/clamav-milter/clamfi.c:564,1
    - Dst: snprintf
      Src: /src/clamav/clamav-milter/clamfi.c:567,1
    - Dst: smfi_setreply
      Src: /src/clamav/clamav-milter/clamfi.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SMFICTX*
    constantsTouched: []
    func_position:
      end: 571
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 571
    functionName: action_reject_msg
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - snprintf
    - smfi_getpriv
    - smfi_setreply
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat action_reject_msg(SMFICTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamfi.c:577,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:577,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:579,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:581,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:584,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamfi.c:588,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:589,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:591,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamfi.c:593,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:594,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamfi.c:599,1
    - Dst: strdup
      Src: /src/clamav/clamav-milter/clamfi.c:600,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamfi.c:602,1
    - Dst: parse_action
      Src: /src/clamav/clamav-milter/clamfi.c:603,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:614,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamfi.c:620,1
    - Dst: parse_action
      Src: /src/clamav/clamav-milter/clamfi.c:621,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:638,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamfi.c:644,1
    - Dst: parse_action
      Src: /src/clamav/clamav-milter/clamfi.c:645,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamfi.c:660,1
    - Dst: malloc
      Src: /src/clamav/clamav-milter/clamfi.c:665,1
    - Dst: strlen
      Src: /src/clamav/clamav-milter/clamfi.c:665,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:667,1
    - Dst: isprint
      Src: /src/clamav/clamav-milter/clamfi.c:671,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:672,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:673,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:680,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:681,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:697,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 117
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 703
      start: 573
    functionDepth: 4
    functionLinenumber: 573
    functionLinenumberEnd: 703
    functionName: init_actions
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - strlen
    - strcasecmp
    - strdup
    - optget
    - parse_action
    - logg
    - isprint
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int init_actions(struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smtpauthed
      Src: /src/clamav/clamav-milter/clamfi.c:710,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:711,1
    - Dst: allowed
      Src: /src/clamav/clamav-milter/clamfi.c:715,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:716,1
    - Dst: malloc
      Src: /src/clamav/clamav-milter/clamfi.c:720,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:721,1
    - Dst: smfi_setpriv
      Src: /src/clamav/clamav-milter/clamfi.c:738,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - argv
    argTypes:
    - SMFICTX*
    - char**
    constantsTouched: []
    func_position:
      end: 741
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 741
    functionName: clamfi_envfrom
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - smtpauthed
    - smfi_setpriv
    - allowed
    - logg
    - malloc
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat clamfi_envfrom(SMFICTX *ctx, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smfi_getpriv
      Src: /src/clamav/clamav-milter/clamfi.c:747,1
    - Dst: allowed
      Src: /src/clamav/clamav-milter/clamfi.c:751,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:757,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:758,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:759,1
    - Dst: strdup
      Src: /src/clamav/clamav-milter/clamfi.c:764,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamfi.c:765,1
    - Dst: nullify
      Src: /src/clamav/clamav-milter/clamfi.c:766,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamfi.c:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - argv
    argTypes:
    - SMFICTX*
    - char**
    constantsTouched: []
    func_position:
      end: 773
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 773
    functionName: clamfi_envrcpt
    functionSourceFile: /src/clamav/clamav-milter/clamfi.c
    functionUses: 0
    functionsReached:
    - nullify
    - strdup
    - allowed
    - logg
    - smfi_getpriv
    - free
    linkageType: ''
    returnType: sfsistat
    signature: sfsistat clamfi_envrcpt(SMFICTX *ctx, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:65,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:68,1
    - Dst: unlink
      Src: /src/clamav/clamav-milter/clamav-milter.c:69,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:70,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:72,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:76,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:78,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:80,1
    - Dst: cpool_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:81,1
    - Dst: localnets_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:82,1
    - Dst: allow_list_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: milter_exit
    functionSourceFile: /src/clamav/clamav-milter/clamav-milter.c
    functionUses: 0
    functionsReached:
    - localnets_free
    - optfree
    - unlink
    - optget
    - cpool_free
    - logg
    - logg_close
    - allow_list_free
    linkageType: ''
    returnType: void
    signature: void milter_exit(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/clamav/clamav-milter/clamav-milter.c:92,1
    - Dst: cl_initialize_crypto
      Src: /src/clamav/clamav-milter/clamav-milter.c:101,1
    - Dst: memset
      Src: /src/clamav/clamav-milter/clamav-milter.c:103,1
    - Dst: optparse
      Src: /src/clamav/clamav-milter/clamav-milter.c:115,1
    - Dst: mprintf
      Src: /src/clamav/clamav-milter/clamav-milter.c:117,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:121,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:122,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:123,1
    - Dst: get_version
      Src: /src/clamav/clamav-milter/clamav-milter.c:123,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:124,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:125,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:126,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:127,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:128,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:129,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:130,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:131,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:132,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:133,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:134,1
    - Dst: mprintf
      Src: /src/clamav/clamav-milter/clamav-milter.c:141,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:144,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:145,1
    - Dst: get_version
      Src: /src/clamav/clamav-milter/clamav-milter.c:145,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:146,1
    - Dst: strdup
      Src: /src/clamav/clamav-milter/clamav-milter.c:150,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:150,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:152,1
    - Dst: optparse
      Src: /src/clamav/clamav-milter/clamav-milter.c:155,1
    - Dst: printf
      Src: /src/clamav/clamav-milter/clamav-milter.c:156,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamav-milter.c:157,1
    - Dst: free
      Src: /src/clamav/clamav-milter/clamav-milter.c:160,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:162,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:166,1
    - Dst: chdir
      Src: /src/clamav/clamav-milter/clamav-milter.c:167,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:168,1
    - Dst: chroot
      Src: /src/clamav/clamav-milter/clamav-milter.c:171,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:172,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:177,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamav-milter.c:178,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:181,1
    - Dst: strncpy
      Src: /src/clamav/clamav-milter/clamav-milter.c:182,1
    - Dst: gethostname
      Src: /src/clamav/clamav-milter/clamav-milter.c:183,1
    - Dst: snprintf
      Src: /src/clamav/clamav-milter/clamav-milter.c:186,1
    - Dst: get_version
      Src: /src/clamav/clamav-milter/clamav-milter.c:187,1
    - Dst: snprintf
      Src: /src/clamav/clamav-milter/clamav-milter.c:189,1
    - Dst: get_version
      Src: /src/clamav/clamav-milter/clamav-milter.c:190,1
    - Dst: strcasecmp
      Src: /src/clamav/clamav-milter/clamav-milter.c:196,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:204,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:205,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:206,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:207,1
    - Dst: smfi_setconn
      Src: /src/clamav/clamav-milter/clamav-milter.c:211,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:212,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:213,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:214,1
    - Dst: smfi_register
      Src: /src/clamav/clamav-milter/clamav-milter.c:217,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:218,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:219,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:220,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:223,1
    - Dst: umask
      Src: /src/clamav/clamav-milter/clamav-milter.c:224,1
    - Dst: smfi_opensocket
      Src: /src/clamav/clamav-milter/clamav-milter.c:225,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:226,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:227,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:228,1
    - Dst: umask
      Src: /src/clamav/clamav-milter/clamav-milter.c:231,1
    - Dst: strncmp
      Src: /src/clamav/clamav-milter/clamav-milter.c:232,1
    - Dst: strncmp
      Src: /src/clamav/clamav-milter/clamav-milter.c:232,1
    - Dst: strncmp
      Src: /src/clamav/clamav-milter/clamav-milter.c:236,1
    - Dst: strncmp
      Src: /src/clamav/clamav-milter/clamav-milter.c:238,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:243,1
    - Dst: strtol
      Src: /src/clamav/clamav-milter/clamav-milter.c:245,1
    - Dst: getgrnam
      Src: /src/clamav/clamav-milter/clamav-milter.c:247,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:249,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:250,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:251,1
    - Dst: chown
      Src: /src/clamav/clamav-milter/clamav-milter.c:256,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:257,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:258,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:259,1
    - Dst: getpwnam
      Src: /src/clamav/clamav-milter/clamav-milter.c:266,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:267,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:269,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:270,1
    - Dst: chown
      Src: /src/clamav/clamav-milter/clamav-milter.c:274,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:275,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:276,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:277,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:282,1
    - Dst: strtol
      Src: /src/clamav/clamav-milter/clamav-milter.c:284,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:284,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:286,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:286,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:287,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:288,1
    - Dst: chmod
      Src: /src/clamav/clamav-milter/clamav-milter.c:294,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:295,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:295,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:296,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:297,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:302,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:303,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:304,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:305,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:307,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:309,1
    - Dst: cli_is_abspath
      Src: /src/clamav/clamav-milter/clamav-milter.c:311,1
    - Dst: fprintf
      Src: /src/clamav/clamav-milter/clamav-milter.c:312,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:313,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:314,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:321,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:324,1
    - Dst: logg_facility
      Src: /src/clamav/clamav-milter/clamav-milter.c:325,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:326,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:327,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:328,1
    - Dst: openlog
      Src: /src/clamav/clamav-milter/clamav-milter.c:332,1
    - Dst: time
      Src: /src/clamav/clamav-milter/clamav-milter.c:337,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:338,1
    - Dst: ctime
      Src: /src/clamav/clamav-milter/clamav-milter.c:338,1
    - Dst: fprintf
      Src: /src/clamav/clamav-milter/clamav-milter.c:339,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:340,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:341,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:344,1
    - Dst: localnets_init
      Src: /src/clamav/clamav-milter/clamav-milter.c:347,1
    - Dst: init_actions
      Src: /src/clamav/clamav-milter/clamav-milter.c:347,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:348,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:349,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:353,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:353,1
    - Dst: allow_list_init
      Src: /src/clamav/clamav-milter/clamav-milter.c:353,1
    - Dst: localnets_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:354,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:355,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:356,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:360,1
    - Dst: smtpauth_init
      Src: /src/clamav/clamav-milter/clamav-milter.c:360,1
    - Dst: localnets_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:361,1
    - Dst: allow_list_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:362,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:363,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:364,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:368,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:371,1
    - Dst: daemonize_parent_wait
      Src: /src/clamav/clamav-milter/clamav-milter.c:372,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:373,1
    - Dst: localnets_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:374,1
    - Dst: allow_list_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:375,1
    - Dst: cpool_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:376,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:377,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:378,1
    - Dst: chdir
      Src: /src/clamav/clamav-milter/clamav-milter.c:381,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:382,1
    - Dst: sigfillset
      Src: /src/clamav/clamav-milter/clamav-milter.c:386,1
    - Dst: sigdelset
      Src: /src/clamav/clamav-milter/clamav-milter.c:387,1
    - Dst: sigdelset
      Src: /src/clamav/clamav-milter/clamav-milter.c:388,1
    - Dst: sigdelset
      Src: /src/clamav/clamav-milter/clamav-milter.c:389,1
    - Dst: sigdelset
      Src: /src/clamav/clamav-milter/clamav-milter.c:390,1
    - Dst: sigdelset
      Src: /src/clamav/clamav-milter/clamav-milter.c:392,1
    - Dst: pthread_sigmask
      Src: /src/clamav/clamav-milter/clamav-milter.c:394,1
    - Dst: memset
      Src: /src/clamav/clamav-milter/clamav-milter.c:395,1
    - Dst: sigfillset
      Src: /src/clamav/clamav-milter/clamav-milter.c:397,1
    - Dst: sigaction
      Src: /src/clamav/clamav-milter/clamav-milter.c:398,1
    - Dst: sigaction
      Src: /src/clamav/clamav-milter/clamav-milter.c:399,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:403,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:405,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:408,1
    - Dst: cpool_init
      Src: /src/clamav/clamav-milter/clamav-milter.c:410,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:412,1
    - Dst: localnets_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:413,1
    - Dst: allow_list_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:414,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:415,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:416,1
    - Dst: optget
      Src: /src/clamav/clamav-milter/clamav-milter.c:420,1
    - Dst: umask
      Src: /src/clamav/clamav-milter/clamav-milter.c:422,1
    - Dst: fopen
      Src: /src/clamav/clamav-milter/clamav-milter.c:425,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:426,1
    - Dst: fprintf
      Src: /src/clamav/clamav-milter/clamav-milter.c:429,1
    - Dst: getpid
      Src: /src/clamav/clamav-milter/clamav-milter.c:429,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:430,1
    - Dst: fclose
      Src: /src/clamav/clamav-milter/clamav-milter.c:433,1
    - Dst: umask
      Src: /src/clamav/clamav-milter/clamav-milter.c:435,1
    - Dst: geteuid
      Src: /src/clamav/clamav-milter/clamav-milter.c:442,1
    - Dst: getpwuid
      Src: /src/clamav/clamav-milter/clamav-milter.c:443,1
    - Dst: logg
      Src: /src/clamav/clamav-milter/clamav-milter.c:446,1
    - Dst: strerror
      Src: /src/clamav/clamav-milter/clamav-milter.c:446,1
    - Dst: localnets_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:454,1
    - Dst: allow_list_free
      Src: /src/clamav/clamav-milter/clamav-milter.c:455,1
    - Dst: logg_close
      Src: /src/clamav/clamav-milter/clamav-milter.c:456,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:457,1
    - Dst: drop_privileges
      Src: /src/clamav/clamav-milter/clamav-milter.c:463,1
    - Dst: optfree
      Src: /src/clamav/clamav-milter/clamav-milter.c:465,1
    - Dst: getpid
      Src: /src/clamav/clamav-milter/clamav-milter.c:472,1
    - Dst: daemonize_signal_parent
      Src: /src/clamav/clamav-milter/clamav-milter.c:473,1
    - Dst: smfi_main
      Src: /src/clamav/clamav-milter/clamav-milter.c:477,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 299
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 478
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 478
    functionName: main
    functionSourceFile: /src/clamav/clamav-milter/clamav-milter.c
    functionUses: 4
    functionsReached:
    - geteuid
    - getpwuid
    - snprintf
    - sigaction
    - strcasecmp
    - smfi_register
    - smfi_main
    - printf
    - sigfillset
    - cpool_free
    - cli_is_abspath
    - get_version
    - gethostname
    - chdir
    - optfree
    - strerror
    - smfi_setconn
    - strncpy
    - cpool_init
    - optget
    - time
    - allow_list_init
    - getpwnam
    - chmod
    - mprintf
    - init_actions
    - openlog
    - memset
    - localnets_init
    - chown
    - getgrnam
    - fprintf
    - logg_close
    - logg_facility
    - sigdelset
    - drop_privileges
    - fclose
    - optparse
    - strtol
    - free
    - smtpauth_init
    - localnets_free
    - getpid
    - smfi_opensocket
    - pthread_sigmask
    - daemonize_parent_wait
    - strdup
    - ctime
    - logg
    - allow_list_free
    - chroot
    - umask
    - cl_initialize_crypto
    - daemonize_signal_parent
    - strncmp
    - fopen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sd_listen_fds
      Src: /src/clamav/clamd/tcpserver.c:68,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:70,1
    - Dst: sd_is_socket
      Src: /src/clamav/clamd/tcpserver.c:77,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:79,1
    - Dst: sd_is_socket
      Src: /src/clamav/clamd/tcpserver.c:81,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:83,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:91,1
    - Dst: realloc
      Src: /src/clamav/clamd/tcpserver.c:95,1
    - Dst: snprintf
      Src: /src/clamav/clamd/tcpserver.c:108,1
    - Dst: optget
      Src: /src/clamav/clamd/tcpserver.c:108,1
    - Dst: memset
      Src: /src/clamav/clamd/tcpserver.c:110,1
    - Dst: getaddrinfo
      Src: /src/clamav/clamd/tcpserver.c:119,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:120,1
    - Dst: gai_strerror
      Src: /src/clamav/clamd/tcpserver.c:120,1
    - Dst: realloc
      Src: /src/clamav/clamd/tcpserver.c:125,1
    - Dst: close
      Src: /src/clamav/clamd/tcpserver.c:128,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamd/tcpserver.c:130,1
    - Dst: socket
      Src: /src/clamav/clamd/tcpserver.c:135,1
    - Dst: strerror
      Src: /src/clamav/clamd/tcpserver.c:136,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:137,1
    - Dst: setsockopt
      Src: /src/clamav/clamd/tcpserver.c:141,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:142,1
    - Dst: strerror
      Src: /src/clamav/clamd/tcpserver.c:142,1
    - Dst: setsockopt
      Src: /src/clamav/clamd/tcpserver.c:147,1
    - Dst: strerror
      Src: /src/clamav/clamd/tcpserver.c:148,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:149,1
    - Dst: getnameinfo
      Src: /src/clamav/clamd/tcpserver.c:154,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:156,1
    - Dst: gai_strerror
      Src: /src/clamav/clamd/tcpserver.c:156,1
    - Dst: strncpy
      Src: /src/clamav/clamd/tcpserver.c:162,1
    - Dst: snprintf
      Src: /src/clamav/clamd/tcpserver.c:166,1
    - Dst: optget
      Src: /src/clamav/clamd/tcpserver.c:166,1
    - Dst: bind
      Src: /src/clamav/clamd/tcpserver.c:168,1
    - Dst: strerror
      Src: /src/clamav/clamd/tcpserver.c:169,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:170,1
    - Dst: closesocket
      Src: /src/clamav/clamd/tcpserver.c:171,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:175,1
    - Dst: optget
      Src: /src/clamav/clamd/tcpserver.c:177,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:178,1
    - Dst: listen
      Src: /src/clamav/clamd/tcpserver.c:180,1
    - Dst: strerror
      Src: /src/clamav/clamd/tcpserver.c:181,1
    - Dst: logg
      Src: /src/clamav/clamd/tcpserver.c:182,1
    - Dst: closesocket
      Src: /src/clamav/clamd/tcpserver.c:183,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamd/tcpserver.c:192,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 98
    argCount: 4
    argNames:
    - lsockets
    - nlsockets
    - ipaddr
    - opts
    argTypes:
    - int**
    - unsigned int*
    - char*
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 196
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 196
    functionName: tcpserver
    functionSourceFile: /src/clamav/clamd/tcpserver.c
    functionUses: 0
    functionsReached:
    - bind
    - snprintf
    - getaddrinfo
    - socket
    - gai_strerror
    - getnameinfo
    - strerror
    - strncpy
    - listen
    - optget
    - closesocket
    - close
    - memset
    - realloc
    - sd_listen_fds
    - sd_is_socket
    - freeaddrinfo
    - logg
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int tcpserver(int **lsockets, unsigned int *nlsockets, char *ipaddr,
      const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: localserver
    functionSourceFile: /src/clamav/clamd/localserver.c
    functionUses: 0
    functionsReached:
    - logg
    linkageType: ''
    returnType: int
    signature: int localserver(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:74,1
    - Dst: sd_is_socket
      Src: /src/clamav/clamd/localserver.c:81,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:90,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:93,1
    - Dst: memset
      Src: /src/clamav/clamd/localserver.c:97,1
    - Dst: strncpy
      Src: /src/clamav/clamd/localserver.c:99,1
    - Dst: optget
      Src: /src/clamav/clamd/localserver.c:99,1
    - Dst: strstr
      Src: /src/clamav/clamd/localserver.c:103,1
    - Dst: strstr
      Src: /src/clamav/clamd/localserver.c:103,1
    - Dst: strlen
      Src: /src/clamav/clamd/localserver.c:106,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/clamd/localserver.c:109,1
    - Dst: strlen
      Src: /src/clamav/clamd/localserver.c:109,1
    - Dst: stat
      Src: /src/clamav/clamd/localserver.c:117,1
    - Dst: optget
      Src: /src/clamav/clamd/localserver.c:121,1
    - Dst: strtol
      Src: /src/clamav/clamd/localserver.c:123,1
    - Dst: optget
      Src: /src/clamav/clamd/localserver.c:123,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:126,1
    - Dst: optget
      Src: /src/clamav/clamd/localserver.c:126,1
    - Dst: free
      Src: /src/clamav/clamd/localserver.c:127,1
    - Dst: umask
      Src: /src/clamav/clamd/localserver.c:134,1
    - Dst: mkdir
      Src: /src/clamav/clamd/localserver.c:135,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:136,1
    - Dst: strerror
      Src: /src/clamav/clamd/localserver.c:136,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:138,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:141,1
    - Dst: umask
      Src: /src/clamav/clamd/localserver.c:143,1
    - Dst: free
      Src: /src/clamav/clamd/localserver.c:146,1
    - Dst: socket
      Src: /src/clamav/clamd/localserver.c:149,1
    - Dst: strerror
      Src: /src/clamav/clamd/localserver.c:150,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:151,1
    - Dst: bind
      Src: /src/clamav/clamd/localserver.c:155,1
    - Dst: connect
      Src: /src/clamav/clamd/localserver.c:157,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:158,1
    - Dst: close
      Src: /src/clamav/clamd/localserver.c:159,1
    - Dst: optget
      Src: /src/clamav/clamd/localserver.c:162,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:163,1
    - Dst: unlink
      Src: /src/clamav/clamd/localserver.c:164,1
    - Dst: strerror
      Src: /src/clamav/clamd/localserver.c:165,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:166,1
    - Dst: close
      Src: /src/clamav/clamd/localserver.c:167,1
    - Dst: bind
      Src: /src/clamav/clamd/localserver.c:170,1
    - Dst: strerror
      Src: /src/clamav/clamd/localserver.c:171,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:172,1
    - Dst: close
      Src: /src/clamav/clamd/localserver.c:173,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamd/localserver.c:176,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:177,1
    - Dst: close
      Src: /src/clamav/clamd/localserver.c:178,1
    - Dst: strerror
      Src: /src/clamav/clamd/localserver.c:182,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:183,1
    - Dst: close
      Src: /src/clamav/clamd/localserver.c:184,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:189,1
    - Dst: optget
      Src: /src/clamav/clamd/localserver.c:191,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:192,1
    - Dst: listen
      Src: /src/clamav/clamd/localserver.c:194,1
    - Dst: strerror
      Src: /src/clamav/clamd/localserver.c:195,1
    - Dst: logg
      Src: /src/clamav/clamd/localserver.c:196,1
    - Dst: close
      Src: /src/clamav/clamd/localserver.c:197,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 114
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 202
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 202
    functionName: localserver
    functionSourceFile: /src/clamav/clamd/localserver.c
    functionUses: 0
    functionsReached:
    - bind
    - stat
    - socket
    - strstr
    - strerror
    - unlink
    - CLI_STRNDUP
    - strncpy
    - listen
    - optget
    - close
    - memset
    - sd_is_socket
    - strtol
    - free
    - connect
    - mkdir
    - strlen
    - CLAMSTAT
    - logg
    - umask
    linkageType: ''
    returnType: int
    signature: int localserver(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/clamav/clamd/session.c:108,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:112,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:118,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - cmd
    - argument
    - oldstyle
    argTypes:
    - char*
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 131
    functionName: parse_command
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - logg
    - strncmp
    linkageType: ''
    returnType: enum commands
    signature: enum commands parse_command(const char *cmd, const char **argument,
      int oldstyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:137,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:138,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:141,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - conn
    - path
    - status
    argTypes:
    - client_conn_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: conn_reply_single
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - mdprintf
    linkageType: ''
    returnType: int
    signature: int conn_reply_single(const client_conn_t *conn, const char *path,
      const char *status)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:150,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:152,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:156,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - conn
    - path
    - msg
    - status
    argTypes:
    - client_conn_t*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: conn_reply
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - mdprintf
    linkageType: ''
    returnType: int
    signature: "int conn_reply(const client_conn_t *conn, const char *path,\n               const
      char *msg, const char *status)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:164,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - conn
    - file
    - virname
    argTypes:
    - client_conn_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: conn_reply_virus
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - mdprintf
    linkageType: ''
    returnType: int
    signature: "int conn_reply_virus(const client_conn_t *conn, const char *file,\n
      \                    const char *virname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_reply
      Src: /src/clamav/clamd/session.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - msg
    argTypes:
    - client_conn_t*
    - char*
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: conn_reply_error
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - conn_reply
    linkageType: ''
    returnType: int
    signature: int conn_reply_error(const client_conn_t *conn, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strerror
      Src: /src/clamav/clamd/session.c:180,1
    - Dst: strcat
      Src: /src/clamav/clamd/session.c:181,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/session.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - path
    - msg
    argTypes:
    - client_conn_t*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: conn_reply_errno
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - cli_strerror
    - strcat
    - conn_reply
    linkageType: ''
    returnType: int
    signature: "int conn_reply_errno(const client_conn_t *conn, const char *path,\n
      \                    const char *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/clamav/clamd/session.c:201,1
    - Dst: thrmgr_group_need_terminate
      Src: /src/clamav/clamd/session.c:209,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:210,1
    - Dst: close
      Src: /src/clamav/clamd/session.c:212,1
    - Dst: thrmgr_setactiveengine
      Src: /src/clamav/clamd/session.c:215,1
    - Dst: memset
      Src: /src/clamav/clamd/session.c:218,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:231,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:235,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamd/session.c:242,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamd/session.c:243,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:244,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/session.c:249,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/session.c:258,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:263,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/session.c:265,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:269,1
    - Dst: thrmgr_group_new
      Src: /src/clamav/clamd/session.c:271,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:273,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:281,1
    - Dst: scan_callback
      Src: /src/clamav/clamd/session.c:286,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/session.c:290,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:295,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/session.c:298,1
    - Dst: scanfd
      Src: /src/clamav/clamd/session.c:301,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:306,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/session.c:311,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:315,1
    - Dst: close
      Src: /src/clamav/clamd/session.c:316,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/session.c:320,1
    - Dst: close
      Src: /src/clamav/clamd/session.c:321,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:325,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:327,1
    - Dst: thrmgr_printstats
      Src: /src/clamav/clamd/session.c:328,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:331,1
    - Dst: scanfd
      Src: /src/clamav/clamd/session.c:332,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:337,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/session.c:342,1
    - Dst: ftruncate
      Src: /src/clamav/clamd/session.c:346,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:348,1
    - Dst: close
      Src: /src/clamav/clamd/session.c:350,1
    - Dst: cli_unlink
      Src: /src/clamav/clamd/session.c:352,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:355,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:356,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/session.c:357,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/session.c:360,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:365,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:370,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:371,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:373,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:376,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamd/session.c:377,1
    - Dst: cli_ftw
      Src: /src/clamav/clamd/session.c:380,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:382,1
    - Dst: thrmgr_group_waitforall
      Src: /src/clamav/clamd/session.c:388,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/session.c:389,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/session.c:391,1
    - Dst: conn_reply_single
      Src: /src/clamav/clamd/session.c:399,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/session.c:405,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 178
    argCount: 2
    argNames:
    - conn
    - virus
    argTypes:
    - client_conn_t*
    - int*
    constantsTouched: []
    func_position:
      end: 407
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 407
    functionName: command
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 4
    functionsReached:
    - thrmgr_group_need_terminate
    - conn_reply
    - scanfd
    - S_ISDIR
    - thrmgr_group_new
    - scan_callback
    - ftruncate
    - thrmgr_group_waitforall
    - mdprintf
    - conn_reply_single
    - optget
    - cli_ftw
    - close
    - memset
    - cli_unlink
    - thrmgr_printstats
    - pthread_mutex_lock
    - conn_reply_error
    - thrmgr_group_terminate
    - pthread_mutex_unlock
    - thrmgr_setactivetask
    - CLAMSTAT
    - logg
    - thrmgr_setactiveengine
    - memcpy
    linkageType: ''
    returnType: int
    signature: int command(client_conn_t *conn, int *virus)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamd/session.c:413,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:416,1
    - Dst: memcpy
      Src: /src/clamav/clamd/session.c:419,1
    - Dst: cl_engine_addref
      Src: /src/clamav/clamd/session.c:421,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:422,1
    - Dst: free
      Src: /src/clamav/clamd/session.c:423,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/session.c:431,1
    - Dst: cli_strdup_to_utf8
      Src: /src/clamav/clamd/session.c:442,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:444,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:458,1
    - Dst: thrmgr_group_dispatch
      Src: /src/clamav/clamd/session.c:464,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:465,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/session.c:469,1
    - Dst: free
      Src: /src/clamav/clamd/session.c:470,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 3
    argNames:
    - conn
    - cmd
    - argument
    argTypes:
    - client_conn_t*
    - enum commands
    - char*
    constantsTouched: []
    func_position:
      end: 473
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 473
    functionName: dispatch_command
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - cl_engine_addref
    - thrmgr_group_dispatch
    - conn_reply_error
    - cl_engine_free
    - logg
    - memcpy
    - malloc
    - cli_strdup_to_utf8
    - free
    linkageType: ''
    returnType: int
    signature: int dispatch_command(client_conn_t *conn, enum commands cmd, const
      char *argument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/session.c:479,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/session.c:484,1
    - Dst: cli_ctime
      Src: /src/clamav/clamd/session.c:485,1
    - Dst: strlen
      Src: /src/clamav/clamd/session.c:487,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:488,1
    - Dst: get_version
      Src: /src/clamav/clamd/session.c:488,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:490,1
    - Dst: get_version
      Src: /src/clamav/clamd/session.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - desc
    - term
    - engine
    argTypes:
    - int
    - char
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 491
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 491
    functionName: print_ver
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - cli_ctime
    - cl_engine_get_num
    - strlen
    - mdprintf
    - get_version
    linkageType: ''
    returnType: int
    signature: int print_ver(int desc, char term, const struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/clamd/session.c:498,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:499,1
    - Dst: print_ver
      Src: /src/clamav/clamd/session.c:503,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:504,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:507,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - desc
    - term
    - engine
    argTypes:
    - int
    - char
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 510
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 510
    functionName: print_commands
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - print_ver
    - mdprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void print_commands(int desc, char term, const struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/session.c:545,1
    - Dst: logg
      Src: /src/clamav/clamd/session.c:546,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/session.c:554,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/session.c:556,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/session.c:559,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/session.c:561,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:562,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:568,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:570,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:574,1
    - Dst: print_ver
      Src: /src/clamav/clamd/session.c:575,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/session.c:580,1
    - Dst: print_commands
      Src: /src/clamav/clamd/session.c:581,1
    - Dst: optget
      Src: /src/clamav/clamd/session.c:597,1
    - Dst: dispatch_command
      Src: /src/clamav/clamd/session.c:608,1
    - Dst: thrmgr_group_new
      Src: /src/clamav/clamd/session.c:610,1
    - Dst: conn_reply_single
      Src: /src/clamav/clamd/session.c:617,1
    - Dst: conn_reply_single
      Src: /src/clamav/clamd/session.c:624,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 86
    argCount: 3
    argNames:
    - conn
    - cmd
    - argument
    argTypes:
    - client_conn_t*
    - enum commands
    - char*
    constantsTouched: []
    func_position:
      end: 627
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 627
    functionName: execute_or_dispatch_command
    functionSourceFile: /src/clamav/clamd/session.c
    functionUses: 0
    functionsReached:
    - print_ver
    - dispatch_command
    - print_commands
    - pthread_mutex_unlock
    - mdprintf
    - conn_reply_single
    - optget
    - logg
    - pthread_mutex_lock
    - thrmgr_group_new
    - conn_reply_error
    linkageType: ''
    returnType: int
    signature: int execute_or_dispatch_command(client_conn_t *conn, enum commands
      cmd, const char *argument)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamd/scanner.c:79,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:83,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:86,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:89,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - severity
    - fullmsg
    - msg
    - ctx
    argTypes:
    - enum cl_msg
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 95
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 95
    functionName: msg_callback
    functionSourceFile: /src/clamav/clamd/scanner.c
    functionUses: 4
    functionsReached:
    - UNUSEDPARAM
    - logg
    linkageType: ''
    returnType: void
    signature: void msg_callback(enum cl_msg severity, const char *fullmsg, const
      char *msg, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamd/scanner.c:100,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamd/scanner.c:101,1
    - Dst: strncpy
      Src: /src/clamav/clamd/scanner.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - fd
    - size
    - md5
    - virname
    - ctx
    argTypes:
    - int
    - unsigned long long
    - unsigned char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: hash_callback
    functionSourceFile: /src/clamav/clamd/scanner.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - strncpy
    linkageType: ''
    returnType: void
    signature: void hash_callback(int fd, unsigned long long size, const unsigned
      char *md5, const char *virname, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamd/scanner.c:116,1
    - Dst: conn_reply_virus
      Src: /src/clamav/clamd/scanner.c:129,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:130,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:131,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - virname
    - ctx
    argTypes:
    - int
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 136
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 136
    functionName: clamd_virus_found_cb
    functionSourceFile: /src/clamav/clamd/scanner.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - logg
    - optget
    - conn_reply_virus
    linkageType: ''
    returnType: void
    signature: void clamd_virus_found_cb(int fd, const char *virname, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_realpath
      Src: /src/clamav/clamd/scanner.c:149,1
    - Dst: conn_reply_errno
      Src: /src/clamav/clamd/scanner.c:150,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:151,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:152,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:154,1
    - Dst: send
      Src: /src/clamav/clamd/scanner.c:161,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:162,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/scanner.c:163,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:165,1
    - Dst: thrmgr_group_need_terminate
      Src: /src/clamav/clamd/scanner.c:169,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:170,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:172,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:179,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:182,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:184,1
    - Dst: conn_reply_errno
      Src: /src/clamav/clamd/scanner.c:187,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:188,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:190,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:193,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:194,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:197,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:198,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/scanner.c:202,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:203,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:204,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:207,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:216,1
    - Dst: conn_reply_single
      Src: /src/clamav/clamd/scanner.c:223,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:224,1
    - Dst: calloc
      Src: /src/clamav/clamd/scanner.c:229,1
    - Dst: cl_engine_addref
      Src: /src/clamav/clamd/scanner.c:239,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:240,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:241,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:242,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/scanner.c:246,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/scanner.c:248,1
    - Dst: thrmgr_group_dispatch
      Src: /src/clamav/clamd/scanner.c:249,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:250,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/scanner.c:251,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:252,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:253,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:258,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:260,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/scanner.c:266,1
    - Dst: cl_scanfile_callback
      Src: /src/clamav/clamd/scanner.c:270,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/scanner.c:271,1
    - Dst: thrmgr_group_need_terminate
      Src: /src/clamav/clamd/scanner.c:273,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:274,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:275,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:280,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/scanner.c:285,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:286,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:289,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:291,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:298,1
    - Dst: prelude_logging
      Src: /src/clamav/clamd/scanner.c:299,1
    - Dst: virusaction
      Src: /src/clamav/clamd/scanner.c:301,1
    - Dst: virusaction
      Src: /src/clamav/clamd/scanner.c:304,1
    - Dst: conn_reply_virus
      Src: /src/clamav/clamd/scanner.c:305,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:306,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:309,1
    - Dst: prelude_logging
      Src: /src/clamav/clamd/scanner.c:310,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:313,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:314,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:316,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/scanner.c:320,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/scanner.c:320,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:321,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:324,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/scanner.c:324,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:326,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:329,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 169
    argCount: 5
    argNames:
    - sb
    - filename
    - msg
    - reason
    - data
    argTypes:
    - STATBUF*
    - char*
    - char*
    - enum cli_ftw_reason
    - struct cli_ftw_cbdata*
    constantsTouched: []
    func_position:
      end: 341
      start: 139
    functionDepth: 7
    functionLinenumber: 139
    functionLinenumberEnd: 341
    functionName: scan_callback
    functionSourceFile: /src/clamav/clamd/scanner.c
    functionUses: 2
    functionsReached:
    - thrmgr_group_need_terminate
    - conn_reply
    - send
    - thrmgr_group_dispatch
    - cl_engine_free
    - conn_reply_virus
    - conn_reply_errno
    - virusaction
    - cl_engine_addref
    - conn_reply_single
    - optget
    - prelude_logging
    - cl_strerror
    - calloc
    - cli_realpath
    - pthread_mutex_lock
    - free
    - thrmgr_group_terminate
    - pthread_mutex_unlock
    - thrmgr_setactivetask
    - cl_scanfile_callback
    - logg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scan_callback(STATBUF *sb, char *filename, const char *msg,
      enum cli_ftw_reason reason, struct cli_ftw_cbdata *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:349,1
    - Dst: match_regex
      Src: /src/clamav/clamd/scanner.c:351,1
    - Dst: conn_reply_single
      Src: /src/clamav/clamd/scanner.c:353,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:360,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamd/scanner.c:361,1
    - Dst: conn_reply_single
      Src: /src/clamav/clamd/scanner.c:364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - path
    - data
    argTypes:
    - char*
    - struct cli_ftw_cbdata*
    constantsTouched: []
    func_position:
      end: 371
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 371
    functionName: scan_pathchk
    functionSourceFile: /src/clamav/clamd/scanner.c
    functionUses: 0
    functionsReached:
    - conn_reply_single
    - CLAMSTAT
    - optget
    - match_regex
    linkageType: ''
    returnType: int
    signature: int scan_pathchk(const char *path, struct cli_ftw_cbdata *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamd/scanner.c:393,1
    - Dst: getpeername
      Src: /src/clamav/clamd/scanner.c:398,1
    - Dst: strncpy
      Src: /src/clamav/clamd/scanner.c:399,1
    - Dst: snprintf
      Src: /src/clamav/clamd/scanner.c:401,1
    - Dst: inet_ntoa
      Src: /src/clamav/clamd/scanner.c:401,1
    - Dst: ntohs
      Src: /src/clamav/clamd/scanner.c:401,1
    - Dst: snprintf
      Src: /src/clamav/clamd/scanner.c:404,1
    - Dst: FSTAT
      Src: /src/clamav/clamd/scanner.c:407,1
    - Dst: S_ISREG
      Src: /src/clamav/clamd/scanner.c:407,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:408,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/scanner.c:409,1
    - Dst: cli_get_filepath_from_filedesc
      Src: /src/clamav/clamd/scanner.c:419,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:420,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/scanner.c:426,1
    - Dst: cl_scandesc_callback
      Src: /src/clamav/clamd/scanner.c:430,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/scanner.c:431,1
    - Dst: thrmgr_group_need_terminate
      Src: /src/clamav/clamd/scanner.c:433,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:434,1
    - Dst: virusaction
      Src: /src/clamav/clamd/scanner.c:440,1
    - Dst: conn_reply_virus
      Src: /src/clamav/clamd/scanner.c:441,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:443,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:444,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:446,1
    - Dst: conn_reply
      Src: /src/clamav/clamd/scanner.c:448,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/scanner.c:448,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:450,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/scanner.c:450,1
    - Dst: conn_reply_single
      Src: /src/clamav/clamd/scanner.c:452,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:455,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:460,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 7
    argNames:
    - conn
    - scanned
    - engine
    - options
    - opts
    - odesc
    - stream
    argTypes:
    - client_conn_t*
    - unsigned long int*
    - struct cl_engine*
    - struct cl_scan_options*
    - struct optstruct*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 464
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 464
    functionName: scanfd
    functionSourceFile: /src/clamav/clamd/scanner.c
    functionUses: 1
    functionsReached:
    - thrmgr_group_need_terminate
    - snprintf
    - conn_reply
    - conn_reply_virus
    - virusaction
    - strncpy
    - cli_get_filepath_from_filedesc
    - conn_reply_single
    - optget
    - inet_ntoa
    - cl_strerror
    - ntohs
    - FSTAT
    - cl_scandesc_callback
    - free
    - S_ISREG
    - UNUSEDPARAM
    - thrmgr_setactivetask
    - getpeername
    - logg
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t scanfd(\n    const client_conn_t *conn,\n    unsigned long
      int *scanned,\n    const struct cl_engine *engine,\n    struct cl_scan_options
      *options,\n    const struct optstruct *opts,\n    int odesc,\n    int stream)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:488,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:489,1
    - Dst: cli_rndnum
      Src: /src/clamav/clamd/scanner.c:492,1
    - Dst: memset
      Src: /src/clamav/clamd/scanner.c:497,1
    - Dst: htons
      Src: /src/clamav/clamd/scanner.c:499,1
    - Dst: htonl
      Src: /src/clamav/clamd/scanner.c:500,1
    - Dst: socket
      Src: /src/clamav/clamd/scanner.c:502,1
    - Dst: bind
      Src: /src/clamav/clamd/scanner.c:505,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:506,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:514,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:515,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:518,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:519,1
    - Dst: listen
      Src: /src/clamav/clamd/scanner.c:522,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:523,1
    - Dst: strerror
      Src: /src/clamav/clamd/scanner.c:523,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:524,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:527,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:528,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:529,1
    - Dst: poll_fd
      Src: /src/clamav/clamd/scanner.c:534,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:537,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:538,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:539,1
    - Dst: accept
      Src: /src/clamav/clamd/scanner.c:544,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:545,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:546,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:547,1
    - Dst: inet_ntop
      Src: /src/clamav/clamd/scanner.c:552,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:553,1
    - Dst: cli_gentempfd
      Src: /src/clamav/clamd/scanner.c:555,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:555,1
    - Dst: shutdown
      Src: /src/clamav/clamd/scanner.c:556,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:557,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:558,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:559,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:560,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:564,1
    - Dst: poll_fd
      Src: /src/clamav/clamd/scanner.c:566,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:570,1
    - Dst: recv
      Src: /src/clamav/clamd/scanner.c:573,1
    - Dst: writen
      Src: /src/clamav/clamd/scanner.c:579,1
    - Dst: shutdown
      Src: /src/clamav/clamd/scanner.c:580,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:581,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:582,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:583,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:584,1
    - Dst: close
      Src: /src/clamav/clamd/scanner.c:585,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:586,1
    - Dst: unlink
      Src: /src/clamav/clamd/scanner.c:587,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:588,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:595,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:596,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:599,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:600,1
    - Dst: lseek
      Src: /src/clamav/clamd/scanner.c:605,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/scanner.c:606,1
    - Dst: cl_scandesc_callback
      Src: /src/clamav/clamd/scanner.c:610,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/scanner.c:611,1
    - Dst: close
      Src: /src/clamav/clamd/scanner.c:615,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:616,1
    - Dst: unlink
      Src: /src/clamav/clamd/scanner.c:617,1
    - Dst: free
      Src: /src/clamav/clamd/scanner.c:618,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:620,1
    - Dst: closesocket
      Src: /src/clamav/clamd/scanner.c:621,1
    - Dst: optget
      Src: /src/clamav/clamd/scanner.c:624,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:625,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:626,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:628,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:629,1
    - Dst: virusaction
      Src: /src/clamav/clamd/scanner.c:631,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:634,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/scanner.c:634,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:635,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/scanner.c:635,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/scanner.c:638,1
    - Dst: logg
      Src: /src/clamav/clamd/scanner.c:640,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 135
    argCount: 6
    argNames:
    - odesc
    - scanned
    - engine
    - options
    - opts
    - term
    argTypes:
    - int
    - unsigned long int*
    - struct cl_engine*
    - struct cl_scan_options*
    - struct optstruct*
    - char
    constantsTouched: []
    func_position:
      end: 644
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 644
    functionName: scanstream
    functionSourceFile: /src/clamav/clamd/scanner.c
    functionUses: 0
    functionsReached:
    - bind
    - recv
    - socket
    - virusaction
    - lseek
    - strerror
    - unlink
    - listen
    - mdprintf
    - shutdown
    - optget
    - closesocket
    - cl_strerror
    - close
    - memset
    - htons
    - inet_ntop
    - poll_fd
    - cli_gentempfd
    - accept
    - cl_scandesc_callback
    - cli_rndnum
    - free
    - htonl
    - thrmgr_setactivetask
    - logg
    - writen
    linkageType: ''
    returnType: int
    signature: "int scanstream(\n    int odesc,\n    unsigned long int *scanned,\n
      \   const struct cl_engine *engine,\n    struct cl_scan_options *options,\n
      \   const struct optstruct *opts,\n    char term)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/clamav/clamd/server-th.c:113,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:116,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:117,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:118,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:120,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:122,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:123,1
    - Dst: pthread_sigmask
      Src: /src/clamav/clamd/server-th.c:124,1
    - Dst: command
      Src: /src/clamav/clamd/server-th.c:127,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:129,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:131,1
    - Dst: thrmgr_setactiveengine
      Src: /src/clamav/clamd/server-th.c:136,1
    - Dst: free
      Src: /src/clamav/clamd/server-th.c:139,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:140,1
    - Dst: thrmgr_group_finished
      Src: /src/clamav/clamd/server-th.c:149,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:150,1
    - Dst: shutdown
      Src: /src/clamav/clamd/server-th.c:152,1
    - Dst: closesocket
      Src: /src/clamav/clamd/server-th.c:153,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:155,1
    - Dst: free
      Src: /src/clamav/clamd/server-th.c:156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 158
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 158
    functionName: scanner_thread
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - pthread_sigmask
    - command
    - thrmgr_group_finished
    - pthread_mutex_unlock
    - cl_engine_free
    - thrmgr_setactiveengine
    - sigfillset
    - shutdown
    - logg
    - pthread_mutex_lock
    - sigdelset
    - closesocket
    - free
    linkageType: ''
    returnType: void
    signature: void scanner_thread(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/clamav/clamd/server-th.c:191,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: sighandler_th
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - write
    - logg
    linkageType: ''
    returnType: void
    signature: void sighandler_th(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:198,1
    - Dst: cl_statchkdir
      Src: /src/clamav/clamd/server-th.c:201,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:202,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 11
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: need_db_reload
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - cl_statchkdir
    - logg
    linkageType: ''
    returnType: int
    signature: int need_db_reload(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:227,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:232,1
    - Dst: cl_engine_new
      Src: /src/clamav/clamd/server-th.c:234,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:235,1
    - Dst: cl_engine_settings_apply
      Src: /src/clamav/clamd/server-th.c:239,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:241,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:241,1
    - Dst: cl_load
      Src: /src/clamav/clamd/server-th.c:246,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:248,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:248,1
    - Dst: cl_engine_compile
      Src: /src/clamav/clamd/server-th.c:252,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:254,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:254,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:258,1
    - Dst: cl_engine_settings_free
      Src: /src/clamav/clamd/server-th.c:265,1
    - Dst: free
      Src: /src/clamav/clamd/server-th.c:268,1
    - Dst: free
      Src: /src/clamav/clamd/server-th.c:270,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:275,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:280,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:283,1
    - Dst: SetEvent
      Src: /src/clamav/clamd/server-th.c:286,1
    - Dst: write
      Src: /src/clamav/clamd/server-th.c:289,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:290,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 294
      start: 217
    functionDepth: 12
    functionLinenumber: 217
    functionLinenumberEnd: 294
    functionName: reload_th
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - cl_engine_settings_apply
    - cl_engine_compile
    - cl_load
    - cl_engine_settings_free
    - cl_engine_free
    - pthread_mutex_unlock
    - write
    - cl_engine_new
    - logg
    - SetEvent
    - pthread_mutex_lock
    - free
    linkageType: ''
    returnType: void
    signature: void *reload_th(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:313,1
    - Dst: malloc
      Src: /src/clamav/clamd/server-th.c:318,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:320,1
    - Dst: memset
      Src: /src/clamav/clamd/server-th.c:324,1
    - Dst: cl_engine_settings_copy
      Src: /src/clamav/clamd/server-th.c:330,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:332,1
    - Dst: strdup
      Src: /src/clamav/clamd/server-th.c:337,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:337,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:339,1
    - Dst: cl_statfree
      Src: /src/clamav/clamd/server-th.c:344,1
    - Dst: memset
      Src: /src/clamav/clamd/server-th.c:346,1
    - Dst: cl_statinidir
      Src: /src/clamav/clamd/server-th.c:348,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:350,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:350,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:355,1
    - Dst: thrmgr_setactiveengine
      Src: /src/clamav/clamd/server-th.c:360,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:361,1
    - Dst: thrmgr_wait_for_threads
      Src: /src/clamav/clamd/server-th.c:365,1
    - Dst: pthread_attr_init
      Src: /src/clamav/clamd/server-th.c:369,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:370,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:374,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/clamav/clamd/server-th.c:376,1
    - Dst: pthread_create
      Src: /src/clamav/clamd/server-th.c:379,1
    - Dst: pthread_attr_destroy
      Src: /src/clamav/clamd/server-th.c:380,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:381,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:383,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:387,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:392,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:396,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:400,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:404,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:408,1
    - Dst: cl_engine_settings_free
      Src: /src/clamav/clamd/server-th.c:424,1
    - Dst: free
      Src: /src/clamav/clamd/server-th.c:427,1
    - Dst: free
      Src: /src/clamav/clamd/server-th.c:429,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 4
    argNames:
    - engine
    - dboptions
    - opts
    - thr_pool
    argTypes:
    - struct cl_engine**
    - unsigned int
    - struct optstruct*
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 434
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 434
    functionName: reload_db
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - pthread_attr_setdetachstate
    - cl_strerror
    - memset
    - pthread_create
    - cl_engine_settings_copy
    - cl_statinidir
    - cl_engine_settings_free
    - pthread_attr_init
    - strdup
    - cl_engine_free
    - cl_statfree
    - optget
    - logg
    - thrmgr_setactiveengine
    - malloc
    - pthread_attr_destroy
    - free
    - thrmgr_wait_for_threads
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t reload_db(struct cl_engine **engine, unsigned int dboptions,
      const struct optstruct *opts, threadpool_t *thr_pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/clamav/clamd/server-th.c:457,1
    - Dst: cli_chomp
      Src: /src/clamav/clamd/server-th.c:465,1
    - Dst: memchr
      Src: /src/clamav/clamd/server-th.c:475,1
    - Dst: cli_chomp
      Src: /src/clamav/clamd/server-th.c:483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - buf
    - 'off'
    - len
    - term
    - oldstyle
    argTypes:
    - struct fd_buf*
    - size_t
    - size_t*
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 487
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 487
    functionName: get_cmd
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - memchr
    linkageType: ''
    returnType: char
    signature: char *get_cmd(struct fd_buf *buf, size_t off, size_t *len, char *term,
      int *oldstyle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/clamd/server-th.c:492,1
    - Dst: cl_statinidir
      Src: /src/clamav/clamd/server-th.c:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: statinidir
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 2
    functionsReached:
    - memset
    - cl_statinidir
    linkageType: ''
    returnType: int
    signature: int statinidir(const char *dirname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:526,1
    - Dst: ResetEvent
      Src: /src/clamav/clamd/server-th.c:531,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:536,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:541,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:542,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:544,1
    - Dst: read
      Src: /src/clamav/clamd/server-th.c:556,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:557,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:563,1
    - Dst: shutdown
      Src: /src/clamav/clamd/server-th.c:564,1
    - Dst: closesocket
      Src: /src/clamav/clamd/server-th.c:565,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:572,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:574,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:576,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:579,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/clamd/server-th.c:580,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:582,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:584,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:586,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:589,1
    - Dst: accept
      Src: /src/clamav/clamd/server-th.c:592,1
    - Dst: fcntl
      Src: /src/clamav/clamd/server-th.c:597,1
    - Dst: fcntl
      Src: /src/clamav/clamd/server-th.c:599,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:600,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:604,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:607,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:609,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:610,1
    - Dst: fds_add
      Src: /src/clamav/clamd/server-th.c:611,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:612,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:615,1
    - Dst: closesocket
      Src: /src/clamav/clamd/server-th.c:616,1
    - Dst: SetEvent
      Src: /src/clamav/clamd/server-th.c:622,1
    - Dst: write
      Src: /src/clamav/clamd/server-th.c:624,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:625,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:631,1
    - Dst: cli_strerror
      Src: /src/clamav/clamd/server-th.c:631,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:638,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:640,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:643,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:645,1
    - Dst: sd_listen_fds
      Src: /src/clamav/clamd/server-th.c:647,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:652,1
    - Dst: shutdown
      Src: /src/clamav/clamd/server-th.c:653,1
    - Dst: closesocket
      Src: /src/clamav/clamd/server-th.c:654,1
    - Dst: fds_free
      Src: /src/clamav/clamd/server-th.c:658,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/server-th.c:659,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:660,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:662,1
    - Dst: SetEvent
      Src: /src/clamav/clamd/server-th.c:664,1
    - Dst: write
      Src: /src/clamav/clamd/server-th.c:666,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:667,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 106
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 671
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 671
    functionName: acceptloop_th
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - pthread_cond_wait
    - fcntl
    - fds_free
    - pthread_mutex_destroy
    - pthread_mutex_unlock
    - sd_listen_fds
    - write
    - cli_strerror
    - ResetEvent
    - shutdown
    - read
    - logg
    - accept
    - pthread_mutex_lock
    - fds_add
    - closesocket
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void *acceptloop_th(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_cmd
      Src: /src/clamav/clamd/server-th.c:683,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:687,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/server-th.c:688,1
    - Dst: parse_command
      Src: /src/clamav/clamd/server-th.c:692,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:693,1
    - Dst: strlen
      Src: /src/clamav/clamd/server-th.c:696,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:703,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:708,1
    - Dst: execute_or_dispatch_command
      Src: /src/clamav/clamd/server-th.c:713,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:714,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:715,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:716,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:718,1
    - Dst: thrmgr_group_need_terminate
      Src: /src/clamav/clamd/server-th.c:722,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:723,1
    - Dst: thrmgr_group_finished
      Src: /src/clamav/clamd/server-th.c:728,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:729,1
    - Dst: shutdown
      Src: /src/clamav/clamd/server-th.c:731,1
    - Dst: closesocket
      Src: /src/clamav/clamd/server-th.c:732,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:736,1
    - Dst: time
      Src: /src/clamav/clamd/server-th.c:767,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:774,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:777,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:788,1
    - Dst: close
      Src: /src/clamav/clamd/server-th.c:789,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/server-th.c:791,1
    - Dst: memmove
      Src: /src/clamav/clamd/server-th.c:798,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:803,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:805,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 91
    argCount: 6
    argNames:
    - conn
    - buf
    - ppos
    - error
    - opts
    - readtimeout
    argTypes:
    - client_conn_t*
    - struct fd_buf*
    - size_t*
    - int*
    - struct optstruct*
    - int
    constantsTouched: []
    func_position:
      end: 811
      start: 673
    functionDepth: 6
    functionLinenumber: 673
    functionLinenumberEnd: 811
    functionName: parse_dispatch_cmd
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - thrmgr_group_need_terminate
    - close
    - strlen
    - thrmgr_group_finished
    - parse_command
    - pthread_mutex_unlock
    - get_cmd
    - shutdown
    - optget
    - time
    - logg
    - pthread_mutex_lock
    - closesocket
    - memmove
    - execute_or_dispatch_command
    - conn_reply_error
    linkageType: ''
    returnType: char
    signature: char *parse_dispatch_cmd(client_conn_t *conn, struct fd_buf *buf, size_t
      *ppos, int *error, const struct optstruct *opts, int readtimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:820,1
    - Dst: time
      Src: /src/clamav/clamd/server-th.c:822,1
    - Dst: memmove
      Src: /src/clamav/clamd/server-th.c:829,1
    - Dst: ntohl
      Src: /src/clamav/clamd/server-th.c:831,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:832,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:841,1
    - Dst: execute_or_dispatch_command
      Src: /src/clamav/clamd/server-th.c:843,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:844,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:845,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:846,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:848,1
    - Dst: memmove
      Src: /src/clamav/clamd/server-th.c:852,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:860,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/server-th.c:862,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:869,1
    - Dst: memmove
      Src: /src/clamav/clamd/server-th.c:872,1
    - Dst: cli_writen
      Src: /src/clamav/clamd/server-th.c:883,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/server-th.c:884,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:885,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:888,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 73
    argCount: 6
    argNames:
    - conn
    - buf
    - opts
    - error
    - ppos
    - readtimeout
    argTypes:
    - client_conn_t*
    - struct fd_buf*
    - struct optstruct*
    - int*
    - size_t*
    - int
    constantsTouched: []
    func_position:
      end: 900
      start: 814
    functionDepth: 6
    functionLinenumber: 814
    functionLinenumberEnd: 900
    functionName: handle_stream
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - ntohl
    - time
    - optget
    - logg
    - pthread_mutex_lock
    - cli_writen
    - memmove
    - execute_or_dispatch_command
    - conn_reply_error
    linkageType: ''
    returnType: int
    signature: int handle_stream(client_conn_t *conn, struct fd_buf *buf, const struct
      optstruct *opts, int *error, size_t *ppos, int readtimeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ACCEPTDATA_INIT
      Src: /src/clamav/clamd/server-th.c:920,1
    - Dst: memset
      Src: /src/clamav/clamd/server-th.c:927,1
    - Dst: memset
      Src: /src/clamav/clamd/server-th.c:931,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:934,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:935,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:936,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:936,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:937,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:941,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:943,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:945,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:947,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:948,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:949,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:949,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:950,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:954,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:956,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:958,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:960,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:961,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:962,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:962,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:963,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:967,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:969,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:971,1
    - Dst: getrlimit
      Src: /src/clamav/clamd/server-th.c:974,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:975,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:976,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:977,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:978,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:980,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:984,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:986,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:988,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:991,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:992,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:992,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:993,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:997,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:999,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1001,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1003,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1004,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1005,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1005,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1006,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1010,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1012,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1014,1
    - Dst: getrlimit
      Src: /src/clamav/clamd/server-th.c:1017,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1018,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1024,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1025,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1026,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1026,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1027,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1031,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1032,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1034,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1035,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1036,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1036,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1037,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1041,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1042,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1044,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1045,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1046,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1046,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1047,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1051,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1052,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1054,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1055,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1056,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1056,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1057,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1061,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1062,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1064,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1065,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1066,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1066,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1067,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1071,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1072,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1074,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1075,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1076,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1076,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1077,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1081,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1082,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1084,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1085,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1086,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1086,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1087,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1091,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1092,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1094,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1095,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1096,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1096,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1097,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1101,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1102,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1105,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1106,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1108,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1109,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1111,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1112,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1113,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1113,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1114,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1118,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1119,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1121,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1122,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1125,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1128,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1129,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1132,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1135,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1136,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1139,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1143,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1145,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1154,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1164,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1166,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1170,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1175,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1177,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1180,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1185,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1186,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1191,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1192,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1196,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1197,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1200,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1204,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1205,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1208,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1209,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1211,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1215,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1216,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1219,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1222,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1223,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1226,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1230,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1230,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1231,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1232,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1233,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1238,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1240,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1243,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1244,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1247,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1248,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1253,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1256,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1257,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1261,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1262,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1263,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1267,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1270,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1271,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1274,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1277,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1278,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1281,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1284,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1285,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1288,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1292,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1293,1
    - Dst: prelude_initialize_client
      Src: /src/clamav/clamd/server-th.c:1294,1
    - Dst: prelude_initialize_client
      Src: /src/clamav/clamd/server-th.c:1296,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1301,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1302,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1305,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1308,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1309,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1312,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1315,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1316,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1319,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1322,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1324,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1325,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1327,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1330,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1331,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1333,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1338,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1339,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1341,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1344,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1346,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1349,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1352,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1353,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1354,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1354,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1355,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1359,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1360,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1362,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1365,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/server-th.c:1366,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1367,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/server-th.c:1367,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1368,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/clamd/server-th.c:1372,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1373,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1375,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1378,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1383,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1388,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1391,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1393,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1395,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1398,1
    - Dst: getpid
      Src: /src/clamav/clamd/server-th.c:1398,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1399,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1400,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1401,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1402,1
    - Dst: getrlimit
      Src: /src/clamav/clamd/server-th.c:1405,1
    - Dst: enable_extended_FILE_stdio
      Src: /src/clamav/clamd/server-th.c:1430,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1431,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1440,1
    - Dst: setrlimit
      Src: /src/clamav/clamd/server-th.c:1454,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1455,1
    - Dst: strerror
      Src: /src/clamav/clamd/server-th.c:1456,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1462,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1468,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1471,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1478,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1484,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1488,1
    - Dst: sigfillset
      Src: /src/clamav/clamd/server-th.c:1493,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1494,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1495,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1496,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1497,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1498,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1499,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1502,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1503,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1504,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1506,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1508,1
    - Dst: sigdelset
      Src: /src/clamav/clamd/server-th.c:1509,1
    - Dst: sigprocmask
      Src: /src/clamav/clamd/server-th.c:1510,1
    - Dst: sigemptyset
      Src: /src/clamav/clamd/server-th.c:1514,1
    - Dst: sigaddset
      Src: /src/clamav/clamd/server-th.c:1515,1
    - Dst: sigaddset
      Src: /src/clamav/clamd/server-th.c:1516,1
    - Dst: sigaddset
      Src: /src/clamav/clamd/server-th.c:1517,1
    - Dst: sigaddset
      Src: /src/clamav/clamd/server-th.c:1518,1
    - Dst: sigaddset
      Src: /src/clamav/clamd/server-th.c:1519,1
    - Dst: sigaction
      Src: /src/clamav/clamd/server-th.c:1520,1
    - Dst: sigaction
      Src: /src/clamav/clamd/server-th.c:1521,1
    - Dst: sigaction
      Src: /src/clamav/clamd/server-th.c:1522,1
    - Dst: sigaction
      Src: /src/clamav/clamd/server-th.c:1523,1
    - Dst: sigaction
      Src: /src/clamav/clamd/server-th.c:1524,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1527,1
    - Dst: fds_add
      Src: /src/clamav/clamd/server-th.c:1530,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1531,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1532,1
    - Dst: CreateEvent
      Src: /src/clamav/clamd/server-th.c:1536,1
    - Dst: CreateEvent
      Src: /src/clamav/clamd/server-th.c:1537,1
    - Dst: pipe
      Src: /src/clamav/clamd/server-th.c:1539,1
    - Dst: pipe
      Src: /src/clamav/clamd/server-th.c:1540,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1542,1
    - Dst: exit
      Src: /src/clamav/clamd/server-th.c:1543,1
    - Dst: fds_add
      Src: /src/clamav/clamd/server-th.c:1547,1
    - Dst: fds_add
      Src: /src/clamav/clamd/server-th.c:1548,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1549,1
    - Dst: exit
      Src: /src/clamav/clamd/server-th.c:1550,1
    - Dst: thrmgr_new
      Src: /src/clamav/clamd/server-th.c:1554,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1555,1
    - Dst: exit
      Src: /src/clamav/clamd/server-th.c:1556,1
    - Dst: pthread_create
      Src: /src/clamav/clamd/server-th.c:1559,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1560,1
    - Dst: exit
      Src: /src/clamav/clamd/server-th.c:1561,1
    - Dst: time
      Src: /src/clamav/clamd/server-th.c:1564,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1569,1
    - Dst: fds_cleanup
      Src: /src/clamav/clamd/server-th.c:1570,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamd/server-th.c:1573,1
    - Dst: fds_poll_recv
      Src: /src/clamav/clamd/server-th.c:1574,1
    - Dst: ResetEvent
      Src: /src/clamav/clamd/server-th.c:1576,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1580,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1581,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1583,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1584,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1589,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1590,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1592,1
    - Dst: read
      Src: /src/clamav/clamd/server-th.c:1606,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1607,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1614,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/server-th.c:1616,1
    - Dst: thrmgr_group_finished
      Src: /src/clamav/clamd/server-th.c:1617,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1620,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1626,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/server-th.c:1627,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1634,1
    - Dst: memset
      Src: /src/clamav/clamd/server-th.c:1643,1
    - Dst: parse_dispatch_cmd
      Src: /src/clamav/clamd/server-th.c:1659,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1666,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1668,1
    - Dst: handle_stream
      Src: /src/clamav/clamd/server-th.c:1671,1
    - Dst: conn_reply_error
      Src: /src/clamav/clamd/server-th.c:1679,1
    - Dst: close
      Src: /src/clamav/clamd/server-th.c:1684,1
    - Dst: cli_unlink
      Src: /src/clamav/clamd/server-th.c:1686,1
    - Dst: free
      Src: /src/clamav/clamd/server-th.c:1687,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/server-th.c:1691,1
    - Dst: thrmgr_group_finished
      Src: /src/clamav/clamd/server-th.c:1692,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1694,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1696,1
    - Dst: shutdown
      Src: /src/clamav/clamd/server-th.c:1697,1
    - Dst: closesocket
      Src: /src/clamav/clamd/server-th.c:1698,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1701,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1705,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1708,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1710,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1711,1
    - Dst: sd_listen_fds
      Src: /src/clamav/clamd/server-th.c:1712,1
    - Dst: thrmgr_group_terminate
      Src: /src/clamav/clamd/server-th.c:1717,1
    - Dst: thrmgr_group_finished
      Src: /src/clamav/clamd/server-th.c:1718,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1719,1
    - Dst: shutdown
      Src: /src/clamav/clamd/server-th.c:1720,1
    - Dst: closesocket
      Src: /src/clamav/clamd/server-th.c:1721,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1726,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1729,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1733,1
    - Dst: logg_close
      Src: /src/clamav/clamd/server-th.c:1734,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1736,1
    - Dst: time
      Src: /src/clamav/clamd/server-th.c:1742,1
    - Dst: need_db_reload
      Src: /src/clamav/clamd/server-th.c:1744,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1745,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1747,1
    - Dst: time
      Src: /src/clamav/clamd/server-th.c:1749,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1754,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1756,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1758,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1762,1
    - Dst: reload_db
      Src: /src/clamav/clamd/server-th.c:1763,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1764,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1765,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1767,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1768,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1770,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1772,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1778,1
    - Dst: thrmgr_setactiveengine
      Src: /src/clamav/clamd/server-th.c:1779,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1780,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1782,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1787,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1790,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1791,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1793,1
    - Dst: time
      Src: /src/clamav/clamd/server-th.c:1794,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1796,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1799,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/server-th.c:1803,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/server-th.c:1805,1
    - Dst: SetEvent
      Src: /src/clamav/clamd/server-th.c:1807,1
    - Dst: write
      Src: /src/clamav/clamd/server-th.c:1809,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1810,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1816,1
    - Dst: thrmgr_destroy
      Src: /src/clamav/clamd/server-th.c:1817,1
    - Dst: thrmgr_setactiveengine
      Src: /src/clamav/clamd/server-th.c:1819,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/server-th.c:1820,1
    - Dst: pthread_join
      Src: /src/clamav/clamd/server-th.c:1823,1
    - Dst: fds_free
      Src: /src/clamav/clamd/server-th.c:1824,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/server-th.c:1825,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/server-th.c:1826,1
    - Dst: CloseHandle
      Src: /src/clamav/clamd/server-th.c:1828,1
    - Dst: CloseHandle
      Src: /src/clamav/clamd/server-th.c:1829,1
    - Dst: close
      Src: /src/clamav/clamd/server-th.c:1831,1
    - Dst: close
      Src: /src/clamav/clamd/server-th.c:1832,1
    - Dst: cl_statfree
      Src: /src/clamav/clamd/server-th.c:1835,1
    - Dst: sd_listen_fds
      Src: /src/clamav/clamd/server-th.c:1836,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1838,1
    - Dst: shutdown
      Src: /src/clamav/clamd/server-th.c:1840,1
    - Dst: optget
      Src: /src/clamav/clamd/server-th.c:1843,1
    - Dst: unlink
      Src: /src/clamav/clamd/server-th.c:1844,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1845,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1847,1
    - Dst: time
      Src: /src/clamav/clamd/server-th.c:1850,1
    - Dst: logg
      Src: /src/clamav/clamd/server-th.c:1851,1
    - Dst: cli_ctime
      Src: /src/clamav/clamd/server-th.c:1851,1
    CyclomaticComplexity: 183
    EdgeCount: 183
    ICount: 703
    argCount: 5
    argNames:
    - socketds
    - nsockets
    - engine
    - dboptions
    - opts
    argTypes:
    - int*
    - unsigned
    - struct cl_engine*
    - unsigned int
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1854
      start: 902
    functionDepth: 12
    functionLinenumber: 902
    functionLinenumberEnd: 1854
    functionName: recvloop
    functionSourceFile: /src/clamav/clamd/server-th.c
    functionUses: 0
    functionsReached:
    - handle_stream
    - fds_free
    - sigaction
    - thrmgr_group_finished
    - pthread_cond_destroy
    - cl_engine_free
    - write
    - sigfillset
    - read
    - sigaddset
    - setrlimit
    - cl_engine_get_num
    - strerror
    - unlink
    - CreateEvent
    - cl_engine_set_num
    - mdprintf
    - ResetEvent
    - shutdown
    - optget
    - time
    - reload_db
    - prelude_initialize_client
    - pthread_join
    - CloseHandle
    - thrmgr_destroy
    - closesocket
    - need_db_reload
    - fds_poll_recv
    - cl_strerror
    - sigemptyset
    - memset
    - pthread_create
    - close
    - cli_ctime
    - pipe
    - cli_unlink
    - ACCEPTDATA_INIT
    - sd_listen_fds
    - enable_extended_FILE_stdio
    - pthread_mutex_destroy
    - parse_dispatch_cmd
    - logg_close
    - pthread_mutex_lock
    - sigdelset
    - fds_add
    - pthread_cond_signal
    - conn_reply_error
    - free
    - SetEvent
    - thrmgr_new
    - getpid
    - thrmgr_group_terminate
    - exit
    - pthread_mutex_unlock
    - fds_cleanup
    - cl_statfree
    - getrlimit
    - logg
    - thrmgr_setactiveengine
    - sigprocmask
    linkageType: ''
    returnType: int
    signature: int recvloop(int *socketds, unsigned nsockets, struct cl_engine *engine,
      unsigned int dboptions, const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:92,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:93,1
    - Dst: get_version
      Src: /src/clamav/clamd/clamd.c:93,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:94,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:95,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:96,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:97,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:98,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:99,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:100,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:102,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:103,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:105,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:106,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:107,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:108,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:109,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:110,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:111,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:112,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:113,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:114,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:115,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:116,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:117,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:118,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:119,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:120,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:121,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:122,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:123,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:124,1
    - Dst: printf
      Src: /src/clamav/clamd/clamd.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: help
    functionSourceFile: /src/clamav/clamd/clamd.c
    functionUses: 2
    functionsReached:
    - get_version
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/clamd.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: free_engine
    functionSourceFile: /src/clamav/clamd/clamd.c
    functionUses: 0
    functionsReached:
    - cl_engine_free
    linkageType: ''
    returnType: void
    signature: void free_engine(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/clamav/clamd/clamd.c:167,1
    - Dst: check_flevel
      Src: /src/clamav/clamd/clamd.c:177,1
    - Dst: exit
      Src: /src/clamav/clamd/clamd.c:178,1
    - Dst: memset
      Src: /src/clamav/clamd/clamd.c:181,1
    - Dst: sigaction
      Src: /src/clamav/clamd/clamd.c:183,1
    - Dst: sigaction
      Src: /src/clamav/clamd/clamd.c:184,1
    - Dst: setlocale
      Src: /src/clamav/clamd/clamd.c:185,1
    - Dst: mprintf
      Src: /src/clamav/clamd/clamd.c:186,1
    - Dst: optparse
      Src: /src/clamav/clamd/clamd.c:190,1
    - Dst: mprintf
      Src: /src/clamav/clamd/clamd.c:191,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:195,1
    - Dst: help
      Src: /src/clamav/clamd/clamd.c:196,1
    - Dst: optfree
      Src: /src/clamav/clamd/clamd.c:197,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:201,1
    - Dst: setrlimit
      Src: /src/clamav/clamd/clamd.c:205,1
    - Dst: perror
      Src: /src/clamav/clamd/clamd.c:206,1
    - Dst: memcmp
      Src: /src/clamav/clamd/clamd.c:213,1
    - Dst: memcmp
      Src: /src/clamav/clamd/clamd.c:213,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:220,1
    - Dst: sd_listen_fds
      Src: /src/clamav/clamd/clamd.c:227,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:230,1
    - Dst: strdup
      Src: /src/clamav/clamd/clamd.c:231,1
    - Dst: fprintf
      Src: /src/clamav/clamd/clamd.c:233,1
    - Dst: optparse
      Src: /src/clamav/clamd/clamd.c:236,1
    - Dst: fprintf
      Src: /src/clamav/clamd/clamd.c:237,1
    - Dst: free
      Src: /src/clamav/clamd/clamd.c:238,1
    - Dst: free
      Src: /src/clamav/clamd/clamd.c:241,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:243,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:247,1
    - Dst: print_version
      Src: /src/clamav/clamd/clamd.c:248,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:248,1
    - Dst: optfree
      Src: /src/clamav/clamd/clamd.c:249,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:254,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:255,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:256,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:257,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:258,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:260,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:261,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:263,1
    - Dst: cli_is_abspath
      Src: /src/clamav/clamd/clamd.c:266,1
    - Dst: fprintf
      Src: /src/clamav/clamd/clamd.c:267,1
    - Dst: time
      Src: /src/clamav/clamd/clamd.c:271,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:272,1
    - Dst: cli_ctime
      Src: /src/clamav/clamd/clamd.c:272,1
    - Dst: fprintf
      Src: /src/clamav/clamd/clamd.c:273,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:284,1
    - Dst: fcntl
      Src: /src/clamav/clamd/clamd.c:295,1
    - Dst: fcntl
      Src: /src/clamav/clamd/clamd.c:295,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:296,1
    - Dst: close
      Src: /src/clamav/clamd/clamd.c:297,1
    - Dst: atexit
      Src: /src/clamav/clamd/clamd.c:304,1
    - Dst: daemonize_parent_wait
      Src: /src/clamav/clamd/clamd.c:305,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:307,1
    - Dst: strerror
      Src: /src/clamav/clamd/clamd.c:307,1
    - Dst: fcntl
      Src: /src/clamav/clamd/clamd.c:313,1
    - Dst: fcntl
      Src: /src/clamav/clamd/clamd.c:313,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:314,1
    - Dst: close
      Src: /src/clamav/clamd/clamd.c:315,1
    - Dst: getpid
      Src: /src/clamav/clamd/clamd.c:326,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:327,1
    - Dst: umask
      Src: /src/clamav/clamd/clamd.c:329,1
    - Dst: fopen
      Src: /src/clamav/clamd/clamd.c:330,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:332,1
    - Dst: strerror
      Src: /src/clamav/clamd/clamd.c:332,1
    - Dst: exit
      Src: /src/clamav/clamd/clamd.c:333,1
    - Dst: fprintf
      Src: /src/clamav/clamd/clamd.c:335,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:336,1
    - Dst: strerror
      Src: /src/clamav/clamd/clamd.c:336,1
    - Dst: fclose
      Src: /src/clamav/clamd/clamd.c:338,1
    - Dst: exit
      Src: /src/clamav/clamd/clamd.c:339,1
    - Dst: fclose
      Src: /src/clamav/clamd/clamd.c:341,1
    - Dst: umask
      Src: /src/clamav/clamd/clamd.c:343,1
    - Dst: geteuid
      Src: /src/clamav/clamd/clamd.c:349,1
    - Dst: getpwuid
      Src: /src/clamav/clamd/clamd.c:350,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:353,1
    - Dst: strerror
      Src: /src/clamav/clamd/clamd.c:353,1
    - Dst: exit
      Src: /src/clamav/clamd/clamd.c:354,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:362,1
    - Dst: svc_install
      Src: /src/clamav/clamd/clamd.c:363,1
    - Dst: optfree
      Src: /src/clamav/clamd/clamd.c:365,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:369,1
    - Dst: svc_uninstall
      Src: /src/clamav/clamd/clamd.c:370,1
    - Dst: optfree
      Src: /src/clamav/clamd/clamd.c:371,1
    - Dst: drop_privileges
      Src: /src/clamav/clamd/clamd.c:378,1
    - Dst: optfree
      Src: /src/clamav/clamd/clamd.c:380,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:387,1
    - Dst: cl_set_clcb_msg
      Src: /src/clamav/clamd/clamd.c:388,1
    - Dst: cl_init
      Src: /src/clamav/clamd/clamd.c:390,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:391,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:391,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:396,1
    - Dst: cl_debug
      Src: /src/clamav/clamd/clamd.c:398,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:403,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:406,1
    - Dst: logg_facility
      Src: /src/clamav/clamd/clamd.c:407,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:408,1
    - Dst: openlog
      Src: /src/clamav/clamd/clamd.c:413,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamd/clamd.c:420,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:426,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:429,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:432,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:435,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:440,1
    - Dst: get_version
      Src: /src/clamav/clamd/clamd.c:440,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:444,1
    - Dst: getrlimit
      Src: /src/clamav/clamd/clamd.c:448,1
    - Dst: setrlimit
      Src: /src/clamav/clamd/clamd.c:457,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:458,1
    - Dst: strerror
      Src: /src/clamav/clamd/clamd.c:458,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:460,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:466,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:468,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:470,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:471,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:473,1
    - Dst: cl_engine_new
      Src: /src/clamav/clamd/clamd.c:478,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:479,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:484,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:485,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:486,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:487,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:490,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:491,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:493,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:496,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:499,1
    - Dst: realloc
      Src: /src/clamav/clamd/clamd.c:502,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd.c:502,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:503,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/clamd.c:504,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:509,1
    - Dst: sprintf
      Src: /src/clamav/clamd/clamd.c:511,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd.c:512,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:520,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:525,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:527,1
    - Dst: free
      Src: /src/clamav/clamd/clamd.c:528,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:535,1
    - Dst: realloc
      Src: /src/clamav/clamd/clamd.c:537,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd.c:537,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:538,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:543,1
    - Dst: sprintf
      Src: /src/clamav/clamd/clamd.c:545,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd.c:546,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:554,1
    - Dst: cl_engine_set_str
      Src: /src/clamav/clamd/clamd.c:560,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:561,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:561,1
    - Dst: free
      Src: /src/clamav/clamd/clamd.c:562,1
    - Dst: free
      Src: /src/clamav/clamd/clamd.c:566,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:569,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:572,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:574,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:578,1
    - Dst: cl_engine_set_str
      Src: /src/clamav/clamd/clamd.c:579,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:580,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:580,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamd/clamd.c:586,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamd/clamd.c:586,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:587,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:593,1
    - Dst: LSTAT
      Src: /src/clamav/clamd/clamd.c:597,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:598,1
    - Dst: cl_engine_set_str
      Src: /src/clamav/clamd/clamd.c:606,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:607,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:607,1
    - Dst: cl_engine_set_clcb_hash
      Src: /src/clamav/clamd/clamd.c:613,1
    - Dst: cl_engine_set_clcb_virus_found
      Src: /src/clamav/clamd/clamd.c:615,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:617,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:618,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:620,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:621,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:623,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:626,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:628,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:630,1
    - Dst: strcmp
      Src: /src/clamav/clamd/clamd.c:633,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:635,1
    - Dst: strcmp
      Src: /src/clamav/clamd/clamd.c:636,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:638,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:640,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:646,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:647,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:647,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:652,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:654,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:657,1
    - Dst: strcmp
      Src: /src/clamav/clamd/clamd.c:660,1
    - Dst: strcmp
      Src: /src/clamav/clamd/clamd.c:662,1
    - Dst: strcmp
      Src: /src/clamav/clamd/clamd.c:664,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:668,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:671,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:672,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:675,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:678,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:681,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:683,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:684,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:685,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:688,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:689,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:690,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:694,1
    - Dst: cl_engine_set_clcb_sigload
      Src: /src/clamav/clamd/clamd.c:695,1
    - Dst: svc_register
      Src: /src/clamav/clamd/clamd.c:696,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:699,1
    - Dst: check_if_cvd_outdated
      Src: /src/clamav/clamd/clamd.c:700,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:700,1
    - Dst: cl_load
      Src: /src/clamav/clamd/clamd.c:706,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:707,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:707,1
    - Dst: statinidir
      Src: /src/clamav/clamd/clamd.c:712,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:713,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:713,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:718,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:719,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:721,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:724,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:725,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:726,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:726,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/clamd.c:727,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:732,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/clamd/clamd.c:733,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:734,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:734,1
    - Dst: cl_engine_free
      Src: /src/clamav/clamd/clamd.c:735,1
    - Dst: cl_engine_compile
      Src: /src/clamav/clamd/clamd.c:740,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:741,1
    - Dst: cl_strerror
      Src: /src/clamav/clamd/clamd.c:741,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:747,1
    - Dst: tcpserver
      Src: /src/clamav/clamd/clamd.c:754,1
    - Dst: tcpserver
      Src: /src/clamav/clamd/clamd.c:766,1
    - Dst: umask
      Src: /src/clamav/clamd/clamd.c:775,1
    - Dst: realloc
      Src: /src/clamav/clamd/clamd.c:777,1
    - Dst: localserver
      Src: /src/clamav/clamd/clamd.c:784,1
    - Dst: umask
      Src: /src/clamav/clamd/clamd.c:786,1
    - Dst: umask
      Src: /src/clamav/clamd/clamd.c:789,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:791,1
    - Dst: strtol
      Src: /src/clamav/clamd/clamd.c:793,1
    - Dst: getgrnam
      Src: /src/clamav/clamd/clamd.c:796,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:799,1
    - Dst: chown
      Src: /src/clamav/clamd/clamd.c:806,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:806,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:807,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:812,1
    - Dst: strtol
      Src: /src/clamav/clamd/clamd.c:815,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:815,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:818,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:818,1
    - Dst: chmod
      Src: /src/clamav/clamd/clamd.c:826,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:826,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:827,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:827,1
    - Dst: realloc
      Src: /src/clamav/clamd/clamd.c:838,1
    - Dst: localserver
      Src: /src/clamav/clamd/clamd.c:845,1
    - Dst: chdir
      Src: /src/clamav/clamd/clamd.c:856,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:857,1
    - Dst: getpid
      Src: /src/clamav/clamd/clamd.c:868,1
    - Dst: daemonize_signal_parent
      Src: /src/clamav/clamd/clamd.c:869,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:875,1
    - Dst: cl_engine_set_clcb_sigload
      Src: /src/clamav/clamd/clamd.c:876,1
    - Dst: svc_ready
      Src: /src/clamav/clamd/clamd.c:877,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:882,1
    - Dst: recvloop
      Src: /src/clamav/clamd/clamd.c:887,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:892,1
    - Dst: closesocket
      Src: /src/clamav/clamd/clamd.c:895,1
    - Dst: optget
      Src: /src/clamav/clamd/clamd.c:899,1
    - Dst: unlink
      Src: /src/clamav/clamd/clamd.c:901,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:902,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd.c:904,1
    - Dst: free
      Src: /src/clamav/clamd/clamd.c:909,1
    - Dst: logg_close
      Src: /src/clamav/clamd/clamd.c:911,1
    - Dst: optfree
      Src: /src/clamav/clamd/clamd.c:912,1
    CyclomaticComplexity: 182
    EdgeCount: 182
    ICount: 534
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 915
      start: 144
    functionDepth: 13
    functionLinenumber: 144
    functionLinenumberEnd: 915
    functionName: main
    functionSourceFile: /src/clamav/clamd/clamd.c
    functionUses: 4
    functionsReached:
    - geteuid
    - help
    - getpwuid
    - atexit
    - cl_init
    - cl_engine_set_clcb_sigload
    - sigaction
    - cl_engine_set_clcb_hash
    - cl_engine_free
    - S_ISDIR
    - statinidir
    - print_version
    - cl_engine_new
    - cli_is_abspath
    - memcmp
    - get_version
    - sprintf
    - recvloop
    - setrlimit
    - chdir
    - cl_engine_set_clcb_virus_found
    - optfree
    - strerror
    - strcmp
    - cl_engine_compile
    - daemonize_signal_parent
    - unlink
    - cl_engine_set_num
    - setlocale
    - localserver
    - optget
    - time
    - svc_register
    - closesocket
    - chmod
    - svc_install
    - mprintf
    - perror
    - cli_ctime
    - memset
    - close
    - cl_strerror
    - cl_set_clcb_msg
    - openlog
    - cl_engine_set_str
    - sd_listen_fds
    - realloc
    - check_flevel
    - chown
    - getgrnam
    - fprintf
    - svc_uninstall
    - drop_privileges
    - logg_facility
    - logg_close
    - fclose
    - optparse
    - strtol
    - free
    - tcpserver
    - svc_ready
    - fcntl
    - getpid
    - strlen
    - exit
    - cl_load
    - daemonize_parent_wait
    - strdup
    - CLAMSTAT
    - LSTAT
    - getrlimit
    - logg
    - check_if_cvd_outdated
    - umask
    - cl_debug
    - fopen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamd/thrmgr.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: work_queue_new
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: work_queue_t
    signature: work_queue_t *work_queue_new(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamd/thrmgr.c:76,1
    - Dst: gettimeofday
      Src: /src/clamav/clamd/thrmgr.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - work_q
    - data
    argTypes:
    - work_queue_t*
    - void*
    constantsTouched: []
    func_position:
      end: 94
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 94
    functionName: work_queue_add
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - malloc
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: int work_queue_add(work_queue_t *work_q, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - work_q
    argTypes:
    - work_queue_t*
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: work_queue_pop
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void *work_queue_pop(work_queue_t *work_q)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamd/thrmgr.c:123,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:125,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:129,1
    - Dst: pthread_mutex_unlock::pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - t
    argTypes:
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: add_topools
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock::pthread_mutex_unlock
    - malloc
    - logg
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void add_topools(threadpool_t *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:139,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:147,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:154,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:159,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - t
    argTypes:
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 163
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 163
    functionName: remove_frompools
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - free
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void remove_frompools(threadpool_t *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:188,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:191,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - f
    - queue
    - tv_now
    argTypes:
    - int
    - work_queue_t*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 195
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 195
    functionName: print_queue
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - mdprintf
    linkageType: ''
    returnType: void
    signature: void print_queue(int f, work_queue_t *queue, struct timeval *tv_now)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:206,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:208,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:217,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:237,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:238,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:241,1
    - Dst: gettimeofday
      Src: /src/clamav/clamd/thrmgr.c:242,1
    - Dst: print_queue
      Src: /src/clamav/clamd/thrmgr.c:243,1
    - Dst: print_queue
      Src: /src/clamav/clamd/thrmgr.c:244,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:245,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:252,1
    - Dst: realloc
      Src: /src/clamav/clamd/thrmgr.c:270,1
    - Dst: MPOOL_GETSTATS
      Src: /src/clamav/clamd/thrmgr.c:278,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:286,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:288,1
    - Dst: mallinfo
      Src: /src/clamav/clamd/thrmgr.c:291,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:301,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:304,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:308,1
    - Dst: mdprintf
      Src: /src/clamav/clamd/thrmgr.c:311,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:312,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 2
    argNames:
    - f
    - term
    argTypes:
    - int
    - char
    constantsTouched: []
    func_position:
      end: 314
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 314
    functionName: thrmgr_printstats
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 1
    functionsReached:
    - print_queue
    - mallinfo
    - realloc
    - pthread_mutex_unlock
    - mdprintf
    - MPOOL_GETSTATS
    - gettimeofday
    - free
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int thrmgr_printstats(int f, char term)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:321,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:322,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:323,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:326,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:327,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:328,1
    - Dst: pthread_cond_broadcast
      Src: /src/clamav/clamd/thrmgr.c:336,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:337,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/clamd/thrmgr.c:342,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:343,1
    - Dst: remove_frompools
      Src: /src/clamav/clamd/thrmgr.c:347,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:348,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:349,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:350,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:353,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:354,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:355,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:356,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:357,1
    - Dst: pthread_attr_destroy
      Src: /src/clamav/clamd/thrmgr.c:358,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:359,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:360,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:361,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - threadpool
    argTypes:
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 363
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 363
    functionName: thrmgr_destroy
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 1
    functionsReached:
    - remove_frompools
    - pthread_attr_destroy
    - pthread_mutex_destroy
    - exit
    - pthread_mutex_unlock
    - pthread_cond_destroy
    - pthread_cond_broadcast
    - logg
    - pthread_mutex_lock
    - pthread_cond_wait
    - free
    linkageType: ''
    returnType: void
    signature: void thrmgr_destroy(threadpool_t *threadpool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:370,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:371,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:372,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:375,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:376,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:377,1
    - Dst: pthread_cond_broadcast
      Src: /src/clamav/clamd/thrmgr.c:384,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:385,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/clamd/thrmgr.c:390,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:391,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:397,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:398,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - threadpool
    argTypes:
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 402
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 402
    functionName: thrmgr_wait_for_threads
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 1
    functionsReached:
    - exit
    - pthread_mutex_unlock
    - pthread_cond_broadcast
    - logg
    - pthread_mutex_lock
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void thrmgr_wait_for_threads(threadpool_t *threadpool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamd/thrmgr.c:415,1
    - Dst: work_queue_new
      Src: /src/clamav/clamd/thrmgr.c:420,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:422,1
    - Dst: work_queue_new
      Src: /src/clamav/clamd/thrmgr.c:425,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:427,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:428,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/clamd/thrmgr.c:442,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:443,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:444,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:445,1
    - Dst: pthread_cond_init
      Src: /src/clamav/clamd/thrmgr.c:449,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:450,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:451,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:452,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:453,1
    - Dst: pthread_cond_init
      Src: /src/clamav/clamd/thrmgr.c:457,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:458,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:459,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:460,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:461,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:462,1
    - Dst: pthread_cond_init
      Src: /src/clamav/clamd/thrmgr.c:466,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:467,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:468,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:469,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:470,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:471,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:472,1
    - Dst: pthread_cond_init
      Src: /src/clamav/clamd/thrmgr.c:476,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:477,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:478,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:479,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:480,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:481,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:482,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:483,1
    - Dst: pthread_attr_init
      Src: /src/clamav/clamd/thrmgr.c:487,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:488,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:489,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:490,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:491,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:492,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:493,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:494,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:495,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/clamav/clamd/thrmgr.c:499,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:500,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:501,1
    - Dst: pthread_attr_destroy
      Src: /src/clamav/clamd/thrmgr.c:502,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:503,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:504,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:505,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:506,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:507,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:508,1
    - Dst: pthread_attr_getstacksize
      Src: /src/clamav/clamd/thrmgr.c:513,1
    - Dst: cli_getpagesize
      Src: /src/clamav/clamd/thrmgr.c:519,1
    - Dst: cli_getpagesize
      Src: /src/clamav/clamd/thrmgr.c:520,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:524,1
    - Dst: pthread_attr_setstacksize
      Src: /src/clamav/clamd/thrmgr.c:525,1
    - Dst: add_topools
      Src: /src/clamav/clamd/thrmgr.c:529,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 102
    argCount: 3
    argNames:
    - max_threads
    - idle_timeout
    - max_queue
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 531
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 531
    functionName: thrmgr_new
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 1
    functionsReached:
    - pthread_attr_setdetachstate
    - work_queue_new
    - pthread_mutex_destroy
    - pthread_cond_destroy
    - pthread_attr_init
    - pthread_mutex_init
    - add_topools
    - pthread_attr_setstacksize
    - logg
    - pthread_attr_getstacksize
    - cli_getpagesize
    - malloc
    - pthread_attr_destroy
    - pthread_cond_init
    - free
    linkageType: ''
    returnType: threadpool_t
    signature: threadpool_t *thrmgr_new(int max_threads, int idle_timeout, int max_queue,
      void (*handler)(void *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/clamav/clamd/thrmgr.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 539
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 539
    functionName: stats_tls_key_alloc
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: void
    signature: void stats_tls_key_alloc(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/clamav/clamd/thrmgr.c:547,1
    - Dst: pthread_getspecific
      Src: /src/clamav/clamd/thrmgr.c:548,1
    - Dst: gettimeofday
      Src: /src/clamav/clamd/thrmgr.c:556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - filename
    - cmd
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 558
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 558
    functionName: thrmgr_setactivetask
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 4
    functionsReached:
    - pthread_getspecific
    - pthread_once
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void thrmgr_setactivetask(const char *filename, const char *cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/clamav/clamd/thrmgr.c:563,1
    - Dst: pthread_getspecific
      Src: /src/clamav/clamd/thrmgr.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - engine
    argTypes:
    - struct cl_engine*
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: thrmgr_setactiveengine
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 4
    functionsReached:
    - pthread_getspecific
    - pthread_once
    linkageType: ''
    returnType: void
    signature: void thrmgr_setactiveengine(const struct cl_engine *engine)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/clamd/thrmgr.c:573,1
    - Dst: pthread_once
      Src: /src/clamav/clamd/thrmgr.c:576,1
    - Dst: pthread_setspecific
      Src: /src/clamav/clamd/thrmgr.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pool
    argTypes:
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 585
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 585
    functionName: stats_init
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - calloc
    - pthread_once
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void stats_init(threadpool_t *pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/clamav/clamd/thrmgr.c:590,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:593,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:600,1
    - Dst: pthread_setspecific
      Src: /src/clamav/clamd/thrmgr.c:601,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pool
    argTypes:
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 603
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 603
    functionName: stats_destroy
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_setspecific
    - pthread_mutex_lock
    - pthread_getspecific
    - free
    linkageType: ''
    returnType: void
    signature: void stats_destroy(threadpool_t *pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - bulk
    argTypes:
    - threadpool_t*
    - int
    constantsTouched: []
    func_position:
      end: 612
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 612
    functionName: thrmgr_contended
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int thrmgr_contended(threadpool_t *pool, int bulk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: work_queue_pop
      Src: /src/clamav/clamd/thrmgr.c:636,1
    - Dst: work_queue_pop
      Src: /src/clamav/clamd/thrmgr.c:641,1
    - Dst: thrmgr_contended
      Src: /src/clamav/clamd/thrmgr.c:648,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:649,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamd/thrmgr.c:650,1
    - Dst: thrmgr_contended
      Src: /src/clamav/clamd/thrmgr.c:653,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:654,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamd/thrmgr.c:655,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - pool
    argTypes:
    - threadpool_t*
    constantsTouched: []
    func_position:
      end: 659
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 659
    functionName: thrmgr_pop
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - thrmgr_contended
    - pthread_cond_signal
    - work_queue_pop
    - logg
    linkageType: ''
    returnType: void
    signature: void *thrmgr_pop(threadpool_t *pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:670,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:671,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:672,1
    - Dst: stats_init
      Src: /src/clamav/clamd/thrmgr.c:675,1
    - Dst: thrmgr_setactiveengine
      Src: /src/clamav/clamd/thrmgr.c:678,1
    - Dst: thrmgr_setactivetask
      Src: /src/clamav/clamd/thrmgr.c:679,1
    - Dst: time
      Src: /src/clamav/clamd/thrmgr.c:680,1
    - Dst: thrmgr_pop
      Src: /src/clamav/clamd/thrmgr.c:683,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamd/thrmgr.c:685,1
    - Dst: pthread_cond_timedwait
      Src: /src/clamav/clamd/thrmgr.c:686,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:698,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:699,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:700,1
    - Dst: threadpool_t*::handler
      Src: /src/clamav/clamd/thrmgr.c:703,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:708,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:710,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:711,1
    - Dst: pthread_cond_broadcast
      Src: /src/clamav/clamd/thrmgr.c:716,1
    - Dst: stats_destroy
      Src: /src/clamav/clamd/thrmgr.c:718,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:719,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:721,1
    - Dst: exit
      Src: /src/clamav/clamd/thrmgr.c:722,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 725
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 725
    functionName: thrmgr_worker
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - stats_destroy
    - threadpool_t*::handler
    - exit
    - pthread_mutex_unlock
    - thrmgr_setactivetask
    - stats_init
    - pthread_cond_broadcast
    - time
    - logg
    - thrmgr_setactiveengine
    - pthread_cond_timedwait
    - pthread_cond_signal
    - thrmgr_pop
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void *thrmgr_worker(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:737,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:738,1
    - Dst: thrmgr_contended
      Src: /src/clamav/clamd/thrmgr.c:760,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:761,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/clamd/thrmgr.c:762,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:763,1
    - Dst: work_queue_add
      Src: /src/clamav/clamd/thrmgr.c:766,1
    - Dst: pthread_create
      Src: /src/clamav/clamd/thrmgr.c:775,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:777,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamd/thrmgr.c:782,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:786,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:787,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - threadpool
    - user_data
    - bulk
    argTypes:
    - threadpool_t*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 791
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 791
    functionName: thrmgr_dispatch_internal
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - thrmgr_contended
    - pthread_create
    - work_queue_add
    - pthread_mutex_unlock
    - logg
    - pthread_mutex_lock
    - pthread_cond_wait
    - pthread_cond_signal
    linkageType: ''
    returnType: int
    signature: int thrmgr_dispatch_internal(threadpool_t *threadpool, void *user_data,
      int bulk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: thrmgr_dispatch_internal
      Src: /src/clamav/clamd/thrmgr.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - threadpool
    - user_data
    argTypes:
    - threadpool_t*
    - void*
    constantsTouched: []
    func_position:
      end: 796
      start: 793
    functionDepth: 4
    functionLinenumber: 793
    functionLinenumberEnd: 796
    functionName: thrmgr_dispatch
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 0
    functionsReached:
    - thrmgr_dispatch_internal
    linkageType: ''
    returnType: int
    signature: int thrmgr_dispatch(threadpool_t *threadpool, void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:802,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:804,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:805,1
    - Dst: thrmgr_dispatch_internal
      Src: /src/clamav/clamd/thrmgr.c:807,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:808,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:810,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - threadpool
    - group
    - user_data
    - bulk
    argTypes:
    - threadpool_t*
    - jobgroup_t*
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 814
      start: 798
    functionDepth: 4
    functionLinenumber: 798
    functionLinenumberEnd: 814
    functionName: thrmgr_group_dispatch
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - thrmgr_dispatch_internal
    - logg
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int thrmgr_group_dispatch(threadpool_t *threadpool, jobgroup_t *group,
      void *user_data, int bulk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:827,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:828,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:844,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamd/thrmgr.c:846,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:848,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:850,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:851,1
    - Dst: pthread_cond_destroy
      Src: /src/clamav/clamd/thrmgr.c:852,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:853,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - group
    - exitc
    argTypes:
    - jobgroup_t*
    - enum thrmgr_exit
    constantsTouched: []
    func_position:
      end: 856
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 856
    functionName: thrmgr_group_finished
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_destroy
    - pthread_mutex_unlock
    - pthread_cond_destroy
    - logg
    - pthread_mutex_lock
    - pthread_cond_signal
    - free
    linkageType: ''
    returnType: int
    signature: int thrmgr_group_finished(jobgroup_t *group, enum thrmgr_exit exitc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:862,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:864,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:866,1
    - Dst: time
      Src: /src/clamav/clamd/thrmgr.c:870,1
    - Dst: pthread_cond_timedwait
      Src: /src/clamav/clamd/thrmgr.c:872,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:880,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:881,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:883,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:884,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - group
    - ok
    - error
    - total
    argTypes:
    - jobgroup_t*
    - unsigned*
    - unsigned*
    - unsigned*
    constantsTouched: []
    func_position:
      end: 886
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 886
    functionName: thrmgr_group_waitforall
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - time
    - logg
    - pthread_mutex_lock
    - pthread_cond_timedwait
    - free
    linkageType: ''
    returnType: void
    signature: void thrmgr_group_waitforall(jobgroup_t *group, unsigned *ok, unsigned
      *error, unsigned *total)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamd/thrmgr.c:892,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/clamd/thrmgr.c:897,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:898,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:899,1
    - Dst: pthread_cond_init
      Src: /src/clamav/clamd/thrmgr.c:902,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:903,1
    - Dst: pthread_mutex_destroy
      Src: /src/clamav/clamd/thrmgr.c:904,1
    - Dst: free
      Src: /src/clamav/clamd/thrmgr.c:905,1
    - Dst: logg
      Src: /src/clamav/clamd/thrmgr.c:908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 910
      start: 888
    functionDepth: 3
    functionLinenumber: 888
    functionLinenumberEnd: 910
    functionName: thrmgr_group_new
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_destroy
    - pthread_mutex_init
    - logg
    - malloc
    - pthread_cond_init
    - free
    linkageType: ''
    returnType: jobgroup_t
    signature: jobgroup_t *thrmgr_group_new(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:916,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:918,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:921,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - group
    argTypes:
    - jobgroup_t*
    constantsTouched: []
    func_position:
      end: 925
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 925
    functionName: thrmgr_group_need_terminate
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 4
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int thrmgr_group_need_terminate(jobgroup_t *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/thrmgr.c:932,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/thrmgr.c:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - group
    argTypes:
    - jobgroup_t*
    constantsTouched: []
    func_position:
      end: 936
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 936
    functionName: thrmgr_group_terminate
    functionSourceFile: /src/clamav/clamd/thrmgr.c
    functionUses: 3
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void thrmgr_group_terminate(jobgroup_t *group)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamd/clamd_others.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: xfree
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xfree(void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamd/clamd_others.c:95,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - filename
    - virname
    - opts
    argTypes:
    - char*
    - char*
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: virusaction
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 3
    functionsReached:
    - optget
    - logg
    linkageType: ''
    returnType: void
    signature: "void virusaction(const char *filename, const char *virname,\n                 const
      struct optstruct *opts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamd/clamd_others.c:116,1
    - Dst: getenv
      Src: /src/clamav/clamd/clamd_others.c:119,1
    - Dst: strdup
      Src: /src/clamav/clamd/clamd_others.c:120,1
    - Dst: malloc
      Src: /src/clamav/clamd/clamd_others.c:124,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:124,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:124,1
    - Dst: sprintf
      Src: /src/clamav/clamd/clamd_others.c:126,1
    - Dst: malloc
      Src: /src/clamav/clamd/clamd_others.c:131,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:131,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:131,1
    - Dst: sprintf
      Src: /src/clamav/clamd/clamd_others.c:133,1
    - Dst: strstr
      Src: /src/clamav/clamd/clamd_others.c:139,1
    - Dst: strstr
      Src: /src/clamav/clamd/clamd_others.c:144,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:148,1
    - Dst: calloc
      Src: /src/clamav/clamd/clamd_others.c:150,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:150,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:150,1
    - Dst: xfree
      Src: /src/clamav/clamd/clamd_others.c:153,1
    - Dst: xfree
      Src: /src/clamav/clamd/clamd_others.c:155,1
    - Dst: xfree
      Src: /src/clamav/clamd/clamd_others.c:156,1
    - Dst: strcat
      Src: /src/clamav/clamd/clamd_others.c:161,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:162,1
    - Dst: strcat
      Src: /src/clamav/clamd/clamd_others.c:165,1
    - Dst: strlen
      Src: /src/clamav/clamd/clamd_others.c:166,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/clamd_others.c:173,1
    - Dst: vfork
      Src: /src/clamav/clamd/clamd_others.c:175,1
    - Dst: _exit
      Src: /src/clamav/clamd/clamd_others.c:177,1
    - Dst: execle
      Src: /src/clamav/clamd/clamd_others.c:177,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/clamd_others.c:179,1
    - Dst: waitpid
      Src: /src/clamav/clamd/clamd_others.c:180,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/clamd_others.c:182,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:183,1
    - Dst: xfree
      Src: /src/clamav/clamd/clamd_others.c:186,1
    - Dst: xfree
      Src: /src/clamav/clamd/clamd_others.c:188,1
    - Dst: xfree
      Src: /src/clamav/clamd/clamd_others.c:189,1
    - Dst: xfree
      Src: /src/clamav/clamd/clamd_others.c:190,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 3
    argNames:
    - filename
    - virname
    - opts
    argTypes:
    - char*
    - char*
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 191
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 191
    functionName: virusaction
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 3
    functionsReached:
    - getenv
    - calloc
    - xfree
    - strstr
    - strlen
    - strcat
    - _exit
    - execle
    - strdup
    - pthread_mutex_unlock
    - waitpid
    - optget
    - vfork
    - logg
    - pthread_mutex_lock
    - malloc
    - sprintf
    linkageType: ''
    returnType: void
    signature: "void virusaction(const char *filename, const char *virname,\n                 const
      struct optstruct *opts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/clamav/clamd/clamd_others.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - buff
    - count
    argTypes:
    - int
    - void*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 219
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 219
    functionName: writen
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 69
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int writen(int fd, void *buff, unsigned int count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamd/clamd_others.c:228,1
    - Dst: malloc
      Src: /src/clamav/clamd/clamd_others.c:229,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct fd_data*
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: realloc_polldata
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 0
    functionsReached:
    - malloc
    - logg
    - free
    linkageType: ''
    returnType: int
    signature: int realloc_polldata(struct fd_data *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FDS_INIT
      Src: /src/clamav/clamd/clamd_others.c:242,1
    - Dst: fds_add
      Src: /src/clamav/clamd/clamd_others.c:244,1
    - Dst: fds_poll_recv
      Src: /src/clamav/clamd/clamd_others.c:247,1
    - Dst: fds_free
      Src: /src/clamav/clamd/clamd_others.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - timeout_sec
    - check_signals
    argTypes:
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: poll_fd
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 1
    functionsReached:
    - fds_add
    - fds_free
    - FDS_INIT
    - fds_poll_recv
    linkageType: ''
    returnType: int
    signature: int poll_fd(int fd, int timeout_sec, int check_signals)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamd/clamd_others.c:261,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:273,1
    - Dst: realloc
      Src: /src/clamav/clamd/clamd_others.c:276,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct fd_data*
    constantsTouched: []
    func_position:
      end: 281
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 281
    functionName: fds_cleanup
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 1
    functionsReached:
    - logg
    - realloc
    - free
    linkageType: ''
    returnType: void
    signature: void fds_cleanup(struct fd_data *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/clamav/clamd/clamd_others.c:304,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:310,1
    - Dst: close
      Src: /src/clamav/clamd/clamd_others.c:311,1
    - Dst: memset
      Src: /src/clamav/clamd/clamd_others.c:314,1
    - Dst: recvmsg
      Src: /src/clamav/clamd/clamd_others.c:322,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:326,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:331,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:333,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/clamav/clamd/clamd_others.c:342,1
    - Dst: CMSG_NXTHDR
      Src: /src/clamav/clamd/clamd_others.c:343,1
    - Dst: CMSG_LEN
      Src: /src/clamav/clamd/clamd_others.c:344,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:348,1
    - Dst: close
      Src: /src/clamav/clamd/clamd_others.c:349,1
    - Dst: CMSG_DATA
      Src: /src/clamav/clamd/clamd_others.c:351,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:352,1
    - Dst: recv
      Src: /src/clamav/clamd/clamd_others.c:358,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct fd_buf*
    constantsTouched: []
    func_position:
      end: 364
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 364
    functionName: read_fd_data
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 0
    functionsReached:
    - close
    - memset
    - CMSG_DATA
    - recvmsg
    - CMSG_LEN
    - recv
    - logg
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - CMSG_SPACE
    linkageType: ''
    returnType: int
    signature: int read_fd_data(struct fd_buf *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamd/clamd_others.c:385,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:386,1
    - Dst: free
      Src: /src/clamav/clamd/clamd_others.c:392,1
    - Dst: time
      Src: /src/clamav/clamd/clamd_others.c:397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - buf
    - listen_only
    - timeout
    argTypes:
    - struct fd_buf*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 403
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 403
    functionName: buf_init
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - time
    - logg
    linkageType: ''
    returnType: int
    signature: int buf_init(struct fd_buf *buf, int listen_only, int timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:410,1
    - Dst: buf_init
      Src: /src/clamav/clamd/clamd_others.c:418,1
    - Dst: realloc
      Src: /src/clamav/clamd/clamd_others.c:424,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:426,1
    - Dst: buf_init
      Src: /src/clamav/clamd/clamd_others.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - data
    - fd
    - listen_only
    - timeout
    argTypes:
    - struct fd_data*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 436
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 436
    functionName: fds_add
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 3
    functionsReached:
    - buf_init
    - realloc
    - logg
    linkageType: ''
    returnType: int
    signature: int fds_add(struct fd_data *data, int fd, int listen_only, int timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamd/clamd_others.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct fd_data*
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: fds_lock
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void fds_lock(struct fd_data *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamd/clamd_others.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct fd_data*
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: fds_unlock
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void fds_unlock(struct fd_data *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fds_lock
      Src: /src/clamav/clamd/clamd_others.c:455,1
    - Dst: fds_unlock
      Src: /src/clamav/clamd/clamd_others.c:464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - fd
    argTypes:
    - struct fd_data*
    - int
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: fds_remove
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 0
    functionsReached:
    - fds_lock
    - fds_unlock
    linkageType: ''
    returnType: void
    signature: void fds_remove(struct fd_data *data, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamd/clamd_others.c:485,1
    - Dst: fds_cleanup
      Src: /src/clamav/clamd/clamd_others.c:488,1
    - Dst: time
      Src: /src/clamav/clamd/clamd_others.c:497,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:521,1
    - Dst: realloc_polldata
      Src: /src/clamav/clamd/clamd_others.c:531,1
    - Dst: fds_unlock
      Src: /src/clamav/clamd/clamd_others.c:545,1
    - Dst: poll_with_event
      Src: /src/clamav/clamd/clamd_others.c:547,1
    - Dst: poll
      Src: /src/clamav/clamd/clamd_others.c:549,1
    - Dst: fds_lock
      Src: /src/clamav/clamd/clamd_others.c:551,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:563,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:568,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:591,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:595,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:614,1
    - Dst: MAX
      Src: /src/clamav/clamd/clamd_others.c:618,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamd/clamd_others.c:622,1
    - Dst: FD_SET
      Src: /src/clamav/clamd/clamd_others.c:626,1
    - Dst: fds_unlock
      Src: /src/clamav/clamd/clamd_others.c:631,1
    - Dst: select
      Src: /src/clamav/clamd/clamd_others.c:633,1
    - Dst: fds_lock
      Src: /src/clamav/clamd/clamd_others.c:635,1
    - Dst: FD_ISSET
      Src: /src/clamav/clamd/clamd_others.c:643,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:647,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:654,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamd/clamd_others.c:667,1
    - Dst: FD_SET
      Src: /src/clamav/clamd/clamd_others.c:671,1
    - Dst: select
      Src: /src/clamav/clamd/clamd_others.c:674,1
    - Dst: FD_CLR
      Src: /src/clamav/clamd/clamd_others.c:680,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:694,1
    - Dst: cli_strerror
      Src: /src/clamav/clamd/clamd_others.c:695,1
    - Dst: logg
      Src: /src/clamav/clamd/clamd_others.c:697,1
    - Dst: cli_strerror
      Src: /src/clamav/clamd/clamd_others.c:698,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 145
    argCount: 4
    argNames:
    - data
    - timeout
    - check_signals
    - event
    argTypes:
    - struct fd_data*
    - int
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 703
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 703
    functionName: fds_poll_recv
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 2
    functionsReached:
    - poll
    - poll_with_event
    - MAX
    - UNUSEDPARAM
    - fds_lock
    - FD_SET
    - cli_strerror
    - fds_unlock
    - fds_cleanup
    - FD_ZERO
    - time
    - logg
    - select
    - FD_CLR
    - FD_ISSET
    - realloc_polldata
    linkageType: ''
    returnType: int
    signature: "int fds_poll_recv(struct fd_data *data, int timeout, int check_signals,\n
      \                 void *event)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fds_lock
      Src: /src/clamav/clamd/clamd_others.c:708,1
    - Dst: free
      Src: /src/clamav/clamd/clamd_others.c:711,1
    - Dst: free
      Src: /src/clamav/clamd/clamd_others.c:715,1
    - Dst: free
      Src: /src/clamav/clamd/clamd_others.c:718,1
    - Dst: fds_unlock
      Src: /src/clamav/clamd/clamd_others.c:722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct fd_data*
    constantsTouched: []
    func_position:
      end: 723
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 723
    functionName: fds_free
    functionSourceFile: /src/clamav/clamd/clamd_others.c
    functionUses: 3
    functionsReached:
    - fds_lock
    - free
    - fds_unlock
    linkageType: ''
    returnType: void
    signature: void fds_free(struct fd_data *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::seekg
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:23,1
    - Dst: std::ifstream::seekg
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:25,1
    - Dst: std::ifstream::read
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:29,1
    - Dst: std::vector::data
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:29,1
    - Dst: std::vector::size
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:29,1
    - Dst: assert
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:30,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:31,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:31,1
    - Dst: std::vector::data
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:31,1
    - Dst: std::vector::size
      Src: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp
    functionUses: 4
    functionsReached:
    - std::ifstream::seekg
    - std::vector::data
    - std::ifstream::read
    - reinterpret_cast<const uint8_t *>
    - std::vector::size
    - LLVMFuzzerTestOneInput
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - severity
    - fullmsg
    - msg
    - context
    argTypes:
    - enum cl_msg
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: clamav_message_callback
    functionSourceFile: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void clamav_message_callback(enum cl_msg severity, const char *fullmsg,\n
      \                            const char *msg, void *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_set_clcb_msg
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:51,1
    - Dst: cl_init
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:53,1
    - Dst: cl_engine_new
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:54,1
    - Dst: cl_engine_compile
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:55,1
    - Dst: memset
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 87
    functionName: ClamAVState::ClamAVState
    functionSourceFile: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp
    functionUses: 0
    functionsReached:
    - memset
    - cl_init
    - cl_set_clcb_msg
    - cl_engine_compile
    - cl_engine_new
    linkageType: ''
    returnType: void
    signature: void ClamAVState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_free
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: ~ClamAVState()
    functionSourceFile: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp
    functionUses: 0
    functionsReached:
    - cl_engine_free
    linkageType: ''
    returnType: void
    signature: void ~ClamAVState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:105,1
    - Dst: cl_scanmap_callback
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:110,1
    - Dst: cl_fmap_close
      Src: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 122
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 122
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp
    functionUses: 1
    functionsReached:
    - cl_fmap_open_memory
    - cl_scanmap_callback
    - cl_fmap_close
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - severity
    - fullmsg
    - msg
    - context
    argTypes:
    - enum cl_msg
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: clamav_message_callback
    functionSourceFile: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void clamav_message_callback(enum cl_msg severity, const char* fullmsg,\n
      \                            const char* msg, void* context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_set_clcb_msg
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:56,1
    - Dst: cl_init
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: ClamAVState::ClamAVState
    functionSourceFile: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp
    functionUses: 0
    functionsReached:
    - cl_init
    - cl_set_clcb_msg
    linkageType: ''
    returnType: void
    signature: void ClamAVState()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ~ClamAVState()
    functionSourceFile: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ClamAVState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:79,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:86,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:88,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:90,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:92,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:94,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:96,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:98,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:100,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:102,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:104,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:106,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:108,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:110,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:112,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:114,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:116,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:118,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:120,1
    - Dst: fopen
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:123,1
    - Dst: fwrite
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:124,1
    - Dst: fclose
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:125,1
    - Dst: cl_engine_new
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:128,1
    - Dst: cl_load
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:131,1
    - Dst: printf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:135,1
    - Dst: cl_strerror
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:135,1
    - Dst: cl_engine_compile
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:140,1
    - Dst: printf
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:141,1
    - Dst: cl_strerror
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:141,1
    - Dst: cl_engine_free
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:149,1
    - Dst: unlink
      Src: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 155
      start: 70
    functionDepth: 12
    functionLinenumber: 70
    functionLinenumberEnd: 155
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp
    functionUses: 1
    functionsReached:
    - getpid
    - cl_strerror
    - snprintf
    - fwrite
    - cl_engine_compile
    - cl_load
    - unlink
    - cl_engine_free
    - printf
    - cl_engine_new
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - severity
    - fullmsg
    - msg
    - context
    argTypes:
    - enum cl_msg
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: clamav_message_callback
    functionSourceFile: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void clamav_message_callback(enum cl_msg severity, const char* fullmsg,\n
      \                            const char* msg, void* context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_set_clcb_msg
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:57,1
    - Dst: cl_init
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:59,1
    - Dst: cl_engine_new
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:60,1
    - Dst: cl_engine_compile
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:61,1
    - Dst: memset
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 92
    functionName: ClamAVState::ClamAVState
    functionSourceFile: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp
    functionUses: 0
    functionsReached:
    - memset
    - cl_init
    - cl_set_clcb_msg
    - cl_engine_compile
    - cl_engine_new
    linkageType: ''
    returnType: void
    signature: void ClamAVState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_free
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: ~ClamAVState()
    functionSourceFile: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp
    functionUses: 0
    functionsReached:
    - cl_engine_free
    linkageType: ''
    returnType: void
    signature: void ~ClamAVState()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:112,1
    - Dst: snprintf
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:114,1
    - Dst: fopen
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:116,1
    - Dst: fwrite
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:117,1
    - Dst: fclose
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:118,1
    - Dst: cl_scanfile
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:123,1
    - Dst: unlink
      Src: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp
    functionUses: 1
    functionsReached:
    - getpid
    - snprintf
    - fwrite
    - unlink
    - fclose
    - cl_scanfile
    - fopen
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:47,1
    - Dst: read
      Src: /src/clamav/examples/ex_prescan_callback.c:48,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:52,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - type
    - context
    argTypes:
    - int
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: scan_callback
    functionSourceFile: /src/clamav/examples/ex_prescan_callback.c
    functionUses: 2
    functionsReached:
    - read
    - printf
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t scan_callback(int fd, const char *type, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:83,1
    - Dst: open
      Src: /src/clamav/examples/ex_prescan_callback.c:89,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:90,1
    - Dst: cl_init
      Src: /src/clamav/examples/ex_prescan_callback.c:94,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:95,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_prescan_callback.c:95,1
    - Dst: cl_engine_new
      Src: /src/clamav/examples/ex_prescan_callback.c:99,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:100,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/examples/ex_prescan_callback.c:107,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/examples/ex_prescan_callback.c:109,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/examples/ex_prescan_callback.c:110,1
    - Dst: cl_engine_compile
      Src: /src/clamav/examples/ex_prescan_callback.c:113,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:114,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_prescan_callback.c:114,1
    - Dst: memset
      Src: /src/clamav/examples/ex_prescan_callback.c:119,1
    - Dst: cl_engine_set_clcb_pre_scan
      Src: /src/clamav/examples/ex_prescan_callback.c:128,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:130,1
    - Dst: cl_scandesc
      Src: /src/clamav/examples/ex_prescan_callback.c:132,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:133,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:136,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_prescan_callback.c:136,1
    - Dst: printf
      Src: /src/clamav/examples/ex_prescan_callback.c:142,1
    - Dst: close
      Src: /src/clamav/examples/ex_prescan_callback.c:149,1
    - Dst: close
      Src: /src/clamav/examples/ex_prescan_callback.c:152,1
    - Dst: cl_engine_free
      Src: /src/clamav/examples/ex_prescan_callback.c:155,1
    - Dst: free
      Src: /src/clamav/examples/ex_prescan_callback.c:158,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 162
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/clamav/examples/ex_prescan_callback.c
    functionUses: 4
    functionsReached:
    - cl_strerror
    - close
    - memset
    - cl_init
    - cl_engine_compile
    - open
    - cl_scandesc
    - cl_engine_free
    - cl_engine_set_num
    - printf
    - cl_engine_new
    - cl_engine_set_clcb_pre_scan
    - free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:59,1
    - Dst: open
      Src: /src/clamav/examples/ex_basic_scandesc.c:66,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:67,1
    - Dst: cl_init
      Src: /src/clamav/examples/ex_basic_scandesc.c:71,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:72,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_basic_scandesc.c:72,1
    - Dst: cl_engine_new
      Src: /src/clamav/examples/ex_basic_scandesc.c:76,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:77,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/examples/ex_basic_scandesc.c:84,1
    - Dst: cl_load
      Src: /src/clamav/examples/ex_basic_scandesc.c:88,1
    - Dst: cl_retdbdir
      Src: /src/clamav/examples/ex_basic_scandesc.c:88,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:89,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_basic_scandesc.c:89,1
    - Dst: close
      Src: /src/clamav/examples/ex_basic_scandesc.c:90,1
    - Dst: cl_engine_free
      Src: /src/clamav/examples/ex_basic_scandesc.c:91,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:95,1
    - Dst: cl_engine_compile
      Src: /src/clamav/examples/ex_basic_scandesc.c:98,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:99,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_basic_scandesc.c:99,1
    - Dst: cl_engine_free
      Src: /src/clamav/examples/ex_basic_scandesc.c:100,1
    - Dst: close
      Src: /src/clamav/examples/ex_basic_scandesc.c:101,1
    - Dst: memset
      Src: /src/clamav/examples/ex_basic_scandesc.c:106,1
    - Dst: cl_scandesc
      Src: /src/clamav/examples/ex_basic_scandesc.c:110,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:111,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:114,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:116,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_basic_scandesc.c:116,1
    - Dst: cl_engine_free
      Src: /src/clamav/examples/ex_basic_scandesc.c:117,1
    - Dst: close
      Src: /src/clamav/examples/ex_basic_scandesc.c:118,1
    - Dst: close
      Src: /src/clamav/examples/ex_basic_scandesc.c:122,1
    - Dst: cl_engine_free
      Src: /src/clamav/examples/ex_basic_scandesc.c:125,1
    - Dst: printf
      Src: /src/clamav/examples/ex_basic_scandesc.c:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 132
      start: 47
    functionDepth: 12
    functionLinenumber: 47
    functionLinenumberEnd: 132
    functionName: main
    functionSourceFile: /src/clamav/examples/ex_basic_scandesc.c
    functionUses: 4
    functionsReached:
    - cl_strerror
    - close
    - memset
    - cl_init
    - cl_engine_compile
    - open
    - cl_load
    - cl_engine_free
    - cl_engine_set_num
    - printf
    - cl_scandesc
    - cl_engine_new
    - cl_retdbdir
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/examples/ex_file_inspection_callback.c:63,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:65,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:67,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:69,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:72,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:73,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:74,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:75,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:76,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:77,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:78,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:79,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:80,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:81,1
    - Dst: MIN
      Src: /src/clamav/examples/ex_file_inspection_callback.c:82,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:84,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 10
    argNames:
    - fd
    - type
    - ancestors
    - parent_file_size
    - file_name
    - file_size
    - file_buffer
    - recursion_level
    - attributes
    - context
    argTypes:
    - int
    - char*
    - char**
    - size_t
    - char*
    - size_t
    - char*
    - uint32_t
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 89
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 89
    functionName: inspection_callback
    functionSourceFile: /src/clamav/examples/ex_file_inspection_callback.c
    functionUses: 1
    functionsReached:
    - UNUSEDPARAM
    - MIN
    - printf
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t inspection_callback(\n    int fd,\n    const char *type,\n
      \   const char **ancestors, // array of null-terminated strings, array size
      == recursion_level\n    size_t parent_file_size,\n    const char *file_name,\n
      \   size_t file_size,\n    const char *file_buffer,\n    uint32_t recursion_level,\n
      \   uint32_t attributes, // E.g.: was normalized, decrypted, etc. See LAYER_ATTRIBUTES_*
      flags in clamav.h\n    void *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:100,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:101,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - fd
    - result
    - virname
    - context
    argTypes:
    - int
    - int
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: post_callback
    functionSourceFile: /src/clamav/examples/ex_file_inspection_callback.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: cl_error_t
    signature: "cl_error_t post_callback(\n    int fd,\n    int result,\n    const
      char *virname,\n    void *context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:137,1
    - Dst: open
      Src: /src/clamav/examples/ex_file_inspection_callback.c:143,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:144,1
    - Dst: FSTAT
      Src: /src/clamav/examples/ex_file_inspection_callback.c:148,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:149,1
    - Dst: malloc
      Src: /src/clamav/examples/ex_file_inspection_callback.c:153,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:154,1
    - Dst: read
      Src: /src/clamav/examples/ex_file_inspection_callback.c:158,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:160,1
    - Dst: cl_fmap_open_memory
      Src: /src/clamav/examples/ex_file_inspection_callback.c:164,1
    - Dst: cl_init
      Src: /src/clamav/examples/ex_file_inspection_callback.c:166,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:167,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_file_inspection_callback.c:167,1
    - Dst: cl_engine_new
      Src: /src/clamav/examples/ex_file_inspection_callback.c:171,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:172,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/examples/ex_file_inspection_callback.c:179,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/examples/ex_file_inspection_callback.c:181,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/examples/ex_file_inspection_callback.c:182,1
    - Dst: open
      Src: /src/clamav/examples/ex_file_inspection_callback.c:187,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:188,1
    - Dst: write
      Src: /src/clamav/examples/ex_file_inspection_callback.c:193,1
    - Dst: strlen
      Src: /src/clamav/examples/ex_file_inspection_callback.c:193,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:194,1
    - Dst: cl_load
      Src: /src/clamav/examples/ex_file_inspection_callback.c:198,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:199,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_file_inspection_callback.c:199,1
    - Dst: close
      Src: /src/clamav/examples/ex_file_inspection_callback.c:203,1
    - Dst: cl_engine_compile
      Src: /src/clamav/examples/ex_file_inspection_callback.c:206,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:207,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_file_inspection_callback.c:207,1
    - Dst: memset
      Src: /src/clamav/examples/ex_file_inspection_callback.c:212,1
    - Dst: cl_engine_set_clcb_file_inspection
      Src: /src/clamav/examples/ex_file_inspection_callback.c:223,1
    - Dst: cl_engine_set_clcb_post_scan
      Src: /src/clamav/examples/ex_file_inspection_callback.c:227,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:229,1
    - Dst: cl_scanmap_callback
      Src: /src/clamav/examples/ex_file_inspection_callback.c:231,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:239,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:242,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_file_inspection_callback.c:242,1
    - Dst: printf
      Src: /src/clamav/examples/ex_file_inspection_callback.c:248,1
    - Dst: cl_fmap_close
      Src: /src/clamav/examples/ex_file_inspection_callback.c:255,1
    - Dst: free
      Src: /src/clamav/examples/ex_file_inspection_callback.c:258,1
    - Dst: unlink
      Src: /src/clamav/examples/ex_file_inspection_callback.c:260,1
    - Dst: close
      Src: /src/clamav/examples/ex_file_inspection_callback.c:262,1
    - Dst: close
      Src: /src/clamav/examples/ex_file_inspection_callback.c:265,1
    - Dst: cl_engine_free
      Src: /src/clamav/examples/ex_file_inspection_callback.c:268,1
    - Dst: unlink
      Src: /src/clamav/examples/ex_file_inspection_callback.c:271,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 105
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 275
      start: 114
    functionDepth: 12
    functionLinenumber: 114
    functionLinenumberEnd: 275
    functionName: main
    functionSourceFile: /src/clamav/examples/ex_file_inspection_callback.c
    functionUses: 4
    functionsReached:
    - cl_init
    - cl_fmap_open_memory
    - cl_scanmap_callback
    - write
    - cl_engine_free
    - printf
    - read
    - cl_engine_new
    - cl_fmap_close
    - cl_engine_set_clcb_file_inspection
    - cl_engine_compile
    - unlink
    - cl_engine_set_num
    - cl_strerror
    - close
    - memset
    - open
    - FSTAT
    - malloc
    - free
    - strlen
    - cl_load
    - cl_engine_set_clcb_post_scan
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/examples/ex_cl_cvdunpack.c:60,1
    - Dst: printf
      Src: /src/clamav/examples/ex_cl_cvdunpack.c:65,1
    - Dst: printf
      Src: /src/clamav/examples/ex_cl_cvdunpack.c:70,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/examples/ex_cl_cvdunpack.c:76,1
    - Dst: printf
      Src: /src/clamav/examples/ex_cl_cvdunpack.c:78,1
    - Dst: cl_strerror
      Src: /src/clamav/examples/ex_cl_cvdunpack.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 82
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/clamav/examples/ex_cl_cvdunpack.c
    functionUses: 4
    functionsReached:
    - cl_strerror
    - printf
    - cl_cvdunpack_ex
    - strcmp
    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: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/sandbox.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_is_active
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:22,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:27,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:31,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:34,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:39,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:41,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:44,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/notpdf_sample.c:45,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/notpdf_sample.c
    functionUses: 0
    functionsReached:
    - json_get_string
    - memcmp
    - json_get_object
    - json_get_string_length
    - json_get_type
    - debug_print_str
    - json_is_active
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_is_active
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:23,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:28,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:29,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:31,1
    - Dst: json_get_array_length
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:38,1
    - Dst: json_get_array_idx
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:41,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:45,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:49,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:52,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:57,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:59,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:62,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/embedpe_sample.c:65,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 73
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/embedpe_sample.c
    functionUses: 0
    functionsReached:
    - json_get_string
    - debug_print_uint
    - json_get_array_idx
    - memcmp
    - json_get_object
    - json_get_string_length
    - json_get_array_length
    - json_get_type
    - debug_print_str
    - json_is_active
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_is_active
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:24,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:25,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:28,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:30,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:33,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:35,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:40,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:46,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:48,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:51,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:52,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:55,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:56,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:59,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:60,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:63,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:64,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:67,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:68,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:71,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:72,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:75,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:76,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:79,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:80,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:83,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:84,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/ftype_sample.c:88,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 93
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/ftype_sample.c
    functionUses: 0
    functionsReached:
    - json_get_string
    - memcmp
    - json_get_object
    - json_get_string_length
    - json_get_type
    - debug_print_str
    - json_is_active
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_is_active
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:23,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:28,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:32,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:35,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:40,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:42,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:45,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:53,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:56,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:59,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:63,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:65,1
    - Dst: json_get_array_length
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:72,1
    - Dst: json_get_array_idx
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:75,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:79,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:83,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:86,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:91,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:93,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:96,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:106,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:107,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:110,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:112,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/onlype_sample.c:114,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 118
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/onlype_sample.c
    functionUses: 0
    functionsReached:
    - json_get_string
    - debug_print_uint
    - json_get_array_idx
    - memcmp
    - json_get_object
    - json_get_string_length
    - json_get_array_length
    - json_get_type
    - debug_print_str
    - json_is_active
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/clamav/examples/fileprop_analysis/old/sandbox.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: logical_trigger
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/sandbox.c
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: SIGNATURES_END
    signature: SIGNATURES_END logical_trigger(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/sandbox.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/clamav/examples/fileprop_analysis/old/notpdf_sample.c:25,1
    - Dst: matches
      Src: /src/clamav/examples/fileprop_analysis/old/notpdf_sample.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: logical_trigger
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/notpdf_sample.c
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: bool
    signature: bool logical_trigger(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/notpdf_sample.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/notpdf_sample.c
    functionUses: 0
    functionsReached:
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: logical_trigger
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: SIGNATURES_END
    signature: SIGNATURES_END logical_trigger(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_is_active
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:34,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:39,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:40,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:42,1
    - Dst: json_get_array_length
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:49,1
    - Dst: json_get_array_idx
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:52,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:56,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:60,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:63,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:68,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:70,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:73,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c:76,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 84
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c
    functionUses: 0
    functionsReached:
    - json_get_string
    - debug_print_uint
    - json_get_array_idx
    - memcmp
    - json_get_object
    - json_get_string_length
    - json_get_array_length
    - json_get_type
    - debug_print_str
    - json_is_active
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: logical_trigger
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: SIGNATURES_END
    signature: SIGNATURES_END logical_trigger(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_is_active
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:35,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:36,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:39,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:41,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:44,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:46,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:51,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:57,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:59,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:62,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:63,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:66,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:67,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:70,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:71,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:74,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:75,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:78,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:79,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:82,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:83,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:86,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:87,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:90,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:91,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:94,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:95,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c:99,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 104
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c
    functionUses: 0
    functionsReached:
    - json_get_string
    - memcmp
    - json_get_object
    - json_get_string_length
    - json_get_type
    - debug_print_str
    - json_is_active
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:25,1
    - Dst: matches
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: logical_trigger
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: bool
    signature: bool logical_trigger(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: json_is_active
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:37,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:42,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:46,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:49,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:54,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:56,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:59,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:67,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:70,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:73,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:77,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:79,1
    - Dst: json_get_array_length
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:86,1
    - Dst: json_get_array_idx
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:89,1
    - Dst: json_get_object
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:93,1
    - Dst: json_get_type
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:97,1
    - Dst: json_get_string_length
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:100,1
    - Dst: json_get_string
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:105,1
    - Dst: debug_print_str
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:107,1
    - Dst: memcmp
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:110,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:120,1
    - Dst: debug_print_uint
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:121,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:124,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:126,1
    - Dst: foundVirus
      Src: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c:128,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 132
    functionName: entrypoint
    functionSourceFile: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c
    functionUses: 0
    functionsReached:
    - json_get_string
    - debug_print_uint
    - json_get_array_idx
    - memcmp
    - json_get_object
    - json_get_string_length
    - json_get_array_length
    - json_get_type
    - debug_print_str
    - json_is_active
    - foundVirus
    linkageType: ''
    returnType: int
    signature: int entrypoint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:70,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:72,1
    - Dst: close
      Src: /src/clamav/clamonacc/clamonacc.c:77,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:82,1
    - Dst: pthread_cancel
      Src: /src/clamav/clamonacc/clamonacc.c:84,1
    - Dst: pthread_join
      Src: /src/clamav/clamonacc/clamonacc.c:85,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:89,1
    - Dst: pthread_cancel
      Src: /src/clamav/clamonacc/clamonacc.c:91,1
    - Dst: pthread_join
      Src: /src/clamav/clamonacc/clamonacc.c:92,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:96,1
    - Dst: onas_cleanup
      Src: /src/clamav/clamonacc/clamonacc.c:97,1
    - Dst: pthread_exit
      Src: /src/clamav/clamonacc/clamonacc.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 99
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 99
    functionName: onas_clamonacc_exit
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 0
    functionsReached:
    - close
    - pthread_exit
    - onas_cleanup
    - pthread_join
    - pthread_cancel
    - mprintf
    linkageType: ''
    returnType: void
    signature: void onas_clamonacc_exit(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_init_context
      Src: /src/clamav/clamonacc/clamonacc.c:110,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:112,1
    - Dst: optparse
      Src: /src/clamav/clamonacc/clamonacc.c:117,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:119,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:126,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:128,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:129,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:136,1
    - Dst: optparse
      Src: /src/clamav/clamonacc/clamonacc.c:142,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:142,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:144,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:144,1
    - Dst: optfree
      Src: /src/clamav/clamonacc/clamonacc.c:145,1
    - Dst: startup_checks
      Src: /src/clamav/clamonacc/clamonacc.c:151,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:161,1
    - Dst: daemonize
      Src: /src/clamav/clamonacc/clamonacc.c:162,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:163,1
    - Dst: onas_setup_client
      Src: /src/clamav/clamonacc/clamonacc.c:170,1
    - Dst: onas_check_client_connection
      Src: /src/clamav/clamonacc/clamonacc.c:172,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:178,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:182,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:188,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:195,1
    - Dst: onas_scan_queue_start
      Src: /src/clamav/clamonacc/clamonacc.c:197,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:205,1
    - Dst: onas_setup_fanotif
      Src: /src/clamav/clamonacc/clamonacc.c:212,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:221,1
    - Dst: onas_enable_inotif_ddd
      Src: /src/clamav/clamonacc/clamonacc.c:229,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:238,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:245,1
    - Dst: onas_handle_signals
      Src: /src/clamav/clamonacc/clamonacc.c:251,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:253,1
    - Dst: onas_start_eloop
      Src: /src/clamav/clamonacc/clamonacc.c:255,1
    - Dst: onas_cleanup
      Src: /src/clamav/clamonacc/clamonacc.c:259,1
    - Dst: exit
      Src: /src/clamav/clamonacc/clamonacc.c:260,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 129
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 261
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 261
    functionName: main
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 4
    functionsReached:
    - onas_init_context
    - optfree
    - exit
    - onas_handle_signals
    - onas_scan_queue_start
    - optget
    - daemonize
    - onas_setup_fanotif
    - logg
    - startup_checks
    - onas_enable_inotif_ddd
    - onas_start_eloop
    - onas_setup_client
    - onas_cleanup
    - optparse
    - onas_check_client_connection
    - mprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/clamav/clamonacc/clamonacc.c:269,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:270,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:271,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:274,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:275,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:276,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:277,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:278,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/clamonacc.c:280,1
    - Dst: pthread_sigmask
      Src: /src/clamav/clamonacc/clamonacc.c:282,1
    - Dst: memset
      Src: /src/clamav/clamonacc/clamonacc.c:283,1
    - Dst: sigfillset
      Src: /src/clamav/clamonacc/clamonacc.c:285,1
    - Dst: sigaction
      Src: /src/clamav/clamonacc/clamonacc.c:286,1
    - Dst: sigaction
      Src: /src/clamav/clamonacc/clamonacc.c:287,1
    - Dst: sigaction
      Src: /src/clamav/clamonacc/clamonacc.c:288,1
    - Dst: sigaction
      Src: /src/clamav/clamonacc/clamonacc.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 290
    functionName: onas_handle_signals
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 1
    functionsReached:
    - memset
    - pthread_sigmask
    - sigaction
    - sigfillset
    - sigdelset
    linkageType: ''
    returnType: void
    signature: void onas_handle_signals(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/clamonacc.c:294,1
    - Dst: memset
      Src: /src/clamav/clamonacc/clamonacc.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: onas_init_context
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 1
    functionsReached:
    - malloc
    - memset
    linkageType: ''
    returnType: struct onas_context
    signature: struct onas_context *onas_init_context(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_check_remote
      Src: /src/clamav/clamonacc/clamonacc.c:309,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:311,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:312,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: onas_check_client_connection
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 1
    functionsReached:
    - logg
    - onas_check_remote
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_check_client_connection(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:322,1
    - Dst: onas_fan_eloop
      Src: /src/clamav/clamonacc/clamonacc.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: onas_start_eloop
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 1
    functionsReached:
    - onas_fan_eloop
    - mprintf
    linkageType: ''
    returnType: int
    signature: int onas_start_eloop(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:341,1
    - Dst: help
      Src: /src/clamav/clamonacc/clamonacc.c:342,1
    - Dst: fanotify_init
      Src: /src/clamav/clamonacc/clamonacc.c:349,1
    - Dst: fanotify_init
      Src: /src/clamav/clamonacc/clamonacc.c:351,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:354,1
    - Dst: cli_strerror
      Src: /src/clamav/clamonacc/clamonacc.c:354,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:356,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:364,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:364,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:364,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:365,1
    - Dst: curl_global_init
      Src: /src/clamav/clamonacc/clamonacc.c:371,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:376,1
    - Dst: onas_print_server_version
      Src: /src/clamav/clamonacc/clamonacc.c:377,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:382,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:382,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:398,1
    - Dst: onas_check_remote
      Src: /src/clamav/clamonacc/clamonacc.c:413,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:415,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:420,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:421,1
    - Dst: optget
      Src: /src/clamav/clamonacc/clamonacc.c:421,1
    - Dst: logg
      Src: /src/clamav/clamonacc/clamonacc.c:422,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context*
    constantsTouched: []
    func_position:
      end: 430
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 430
    functionName: startup_checks
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 1
    functionsReached:
    - help
    - curl_global_init
    - cli_strerror
    - onas_print_server_version
    - optget
    - fanotify_init
    - logg
    - onas_check_remote
    linkageType: ''
    returnType: int
    signature: int startup_checks(struct onas_context *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:436,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:437,1
    - Dst: get_version
      Src: /src/clamav/clamonacc/clamonacc.c:437,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:438,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:439,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:440,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:441,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:442,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:443,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:444,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:445,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:446,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:447,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:448,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:449,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:450,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:451,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:452,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:453,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:454,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:455,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:456,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:457,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:458,1
    - Dst: mprintf
      Src: /src/clamav/clamonacc/clamonacc.c:459,1
    - Dst: exit
      Src: /src/clamav/clamonacc/clamonacc.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 462
    functionName: help
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 4
    functionsReached:
    - exit
    - get_version
    - mprintf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_context_cleanup
      Src: /src/clamav/clamonacc/clamonacc.c:466,1
    - Dst: logg_close
      Src: /src/clamav/clamonacc/clamonacc.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context*
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: onas_cleanup
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 2
    functionsReached:
    - onas_context_cleanup
    - logg_close
    linkageType: ''
    returnType: void
    signature: void onas_cleanup(struct onas_context *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/clamav/clamonacc/clamonacc.c:472,1
    - Dst: optfree
      Src: /src/clamav/clamonacc/clamonacc.c:473,1
    - Dst: optfree
      Src: /src/clamav/clamonacc/clamonacc.c:474,1
    - Dst: free
      Src: /src/clamav/clamonacc/clamonacc.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context*
    constantsTouched: []
    func_position:
      end: 478
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 478
    functionName: onas_context_cleanup
    functionSourceFile: /src/clamav/clamonacc/clamonacc.c
    functionUses: 1
    functionsReached:
    - close
    - free
    - optfree
    linkageType: ''
    returnType: void
    signature: void onas_context_cleanup(struct onas_context *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ht_init
      Src: /src/clamav/clamonacc/inotif/inotif.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ht_size
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: onas_ddd_init_ht
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - onas_ht_init
    linkageType: ''
    returnType: int
    signature: int onas_ddd_init_ht(uint32_t ht_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/clamonacc/inotif/inotif.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nwatches
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: onas_ddd_init_wdlt
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int onas_ddd_init_wdlt(uint64_t nwatches)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_safer_realloc
      Src: /src/clamav/clamonacc/inotif/inotif.c:124,1
    - Dst: memset
      Src: /src/clamav/clamonacc/inotif/inotif.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: onas_ddd_grow_wdlt
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_safer_realloc
    linkageType: ''
    returnType: int
    signature: int onas_ddd_grow_wdlt(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/clamonacc/inotif/inotif.c:149,1
    - Dst: read
      Src: /src/clamav/clamonacc/inotif/inotif.c:152,1
    - Dst: close
      Src: /src/clamav/clamonacc/inotif/inotif.c:153,1
    - Dst: strtol
      Src: /src/clamav/clamonacc/inotif/inotif.c:156,1
    - Dst: onas_ddd_init_wdlt
      Src: /src/clamav/clamonacc/inotif/inotif.c:164,1
    - Dst: onas_ddd_init_ht
      Src: /src/clamav/clamonacc/inotif/inotif.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - nwatches
    - ht_size
    argTypes:
    - uint64_t
    - size_t
    constantsTouched: []
    func_position:
      end: 171
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 171
    functionName: onas_ddd_init
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - close
    - onas_ddd_init_ht
    - onas_ddd_init_wdlt
    - open
    - read
    - strtol
    linkageType: ''
    returnType: int
    signature: int onas_ddd_init(uint64_t nwatches, size_t ht_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ddd_watch_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:183,1
    - Dst: onas_ddd_watch_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 5
    argNames:
    - pathname
    - fan_fd
    - fan_mask
    - in_fd
    - in_mask
    argTypes:
    - char*
    - int
    - uint64_t
    - int
    - uint64_t
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: onas_ddd_watch
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - onas_ddd_watch_hierarchy
    linkageType: ''
    returnType: int
    signature: int onas_ddd_watch(const char *pathname, int fan_fd, uint64_t fan_mask,
      int in_fd, uint64_t in_mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:212,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:213,1
    - Dst: inotify_add_watch
      Src: /src/clamav/clamonacc/inotif/inotif.c:220,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:223,1
    - Dst: onas_ddd_grow_wdlt
      Src: /src/clamav/clamonacc/inotif/inotif.c:227,1
    - Dst: fanotify_mark
      Src: /src/clamav/clamonacc/inotif/inotif.c:236,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:237,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:242,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:255,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/inotif.c:260,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/inotif.c:262,1
    - Dst: onas_ddd_watch_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:264,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:264,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:265,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/inotif.c:268,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - pathname
    - len
    - fd
    - mask
    - type
    argTypes:
    - char*
    - size_t
    - int
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 272
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 272
    functionName: onas_ddd_watch_hierarchy
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 2
    functionsReached:
    - onas_ddd_watch_hierarchy
    - snprintf
    - strlen
    - onas_ht_get
    - onas_ddd_grow_wdlt
    - inotify_add_watch
    - logg
    - fanotify_mark
    - free
    linkageType: ''
    returnType: int
    signature: int onas_ddd_watch_hierarchy(const char *pathname, size_t len, int
      fd, uint64_t mask, uint32_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ddd_unwatch_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:284,1
    - Dst: onas_ddd_unwatch_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - pathname
    - fan_fd
    - in_fd
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: onas_ddd_unwatch
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - onas_ddd_unwatch_hierarchy
    linkageType: ''
    returnType: int
    signature: int onas_ddd_unwatch(const char *pathname, int fan_fd, int in_fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:312,1
    - Dst: inotify_rm_watch
      Src: /src/clamav/clamonacc/inotif/inotif.c:319,1
    - Dst: fanotify_mark
      Src: /src/clamav/clamonacc/inotif/inotif.c:327,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/inotif.c:344,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/inotif.c:346,1
    - Dst: onas_ddd_unwatch_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:348,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:348,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/inotif.c:349,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 4
    argNames:
    - pathname
    - len
    - fd
    - type
    argTypes:
    - char*
    - size_t
    - int
    - uint32_t
    constantsTouched: []
    func_position:
      end: 353
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 353
    functionName: onas_ddd_unwatch_hierarchy
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 2
    functionsReached:
    - snprintf
    - strlen
    - onas_ht_get
    - onas_ddd_unwatch_hierarchy
    - inotify_rm_watch
    - fanotify_mark
    - free
    linkageType: ''
    returnType: int
    signature: int onas_ddd_unwatch_hierarchy(const char *pathname, size_t len, int
      fd, uint32_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:362,1
    - Dst: pthread_attr_init
      Src: /src/clamav/clamonacc/inotif/inotif.c:368,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/clamav/clamonacc/inotif/inotif.c:369,1
    - Dst: pthread_create
      Src: /src/clamav/clamonacc/inotif/inotif.c:370,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 381
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 381
    functionName: onas_enable_inotif_ddd
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 1
    functionsReached:
    - pthread_attr_setdetachstate
    - pthread_create
    - pthread_attr_init
    - logg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_enable_inotif_ddd(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/clamav/clamonacc/inotif/inotif.c:390,1
    - Dst: pthread_setname_np
      Src: /src/clamav/clamonacc/inotif/inotif.c:392,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:394,1
    - Dst: sigfillset
      Src: /src/clamav/clamonacc/inotif/inotif.c:415,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:416,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:417,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:420,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:421,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:422,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:423,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:424,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/inotif/inotif.c:426,1
    - Dst: pthread_sigmask
      Src: /src/clamav/clamonacc/inotif/inotif.c:428,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:430,1
    - Dst: inotify_init1
      Src: /src/clamav/clamonacc/inotif/inotif.c:432,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:434,1
    - Dst: onas_ddd_init
      Src: /src/clamav/clamonacc/inotif/inotif.c:438,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:440,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:444,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:447,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:447,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:448,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:452,1
    - Dst: cli_gettmpdir
      Src: /src/clamav/clamonacc/inotif/inotif.c:456,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:459,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/inotif/inotif.c:462,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:463,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:464,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/inotif/inotif.c:469,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:470,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:471,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:472,1
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:477,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:477,1
    - Dst: onas_ht_add_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:478,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:479,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:482,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:490,1
    - Dst: onas_get_opt_list
      Src: /src/clamav/clamonacc/inotif/inotif.c:495,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:497,1
    - Dst: cl_strerror
      Src: /src/clamav/clamonacc/inotif/inotif.c:497,1
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:503,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:503,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/inotif/inotif.c:504,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:505,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:506,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/inotif/inotif.c:511,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:512,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:513,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:514,1
    - Dst: onas_ht_add_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:519,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:520,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:523,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:532,1
    - Dst: match_regex
      Src: /src/clamav/clamonacc/inotif/inotif.c:539,1
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:540,1
    - Dst: onas_ht_rm_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:542,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:543,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/inotif.c:544,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:547,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/inotif.c:548,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:560,1
    - Dst: onas_get_opt_list
      Src: /src/clamav/clamonacc/inotif/inotif.c:565,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:567,1
    - Dst: cl_strerror
      Src: /src/clamav/clamonacc/inotif/inotif.c:567,1
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:573,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:573,1
    - Dst: onas_ht_rm_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:574,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:574,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:575,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:578,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:587,1
    - Dst: onas_ht_rm_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:588,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:588,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:589,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:591,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:595,1
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:599,1
    - Dst: onas_ddd_watch
      Src: /src/clamav/clamonacc/inotif/inotif.c:600,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:604,1
    - Dst: cl_strerror
      Src: /src/clamav/clamonacc/inotif/inotif.c:604,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:606,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/inotif/inotif.c:606,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:607,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:608,1
    - Dst: kill
      Src: /src/clamav/clamonacc/inotif/inotif.c:610,1
    - Dst: getpid
      Src: /src/clamav/clamonacc/inotif/inotif.c:610,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:614,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:615,1
    - Dst: kill
      Src: /src/clamav/clamonacc/inotif/inotif.c:617,1
    - Dst: getpid
      Src: /src/clamav/clamonacc/inotif/inotif.c:617,1
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/inotif.c:631,1
    - Dst: onas_ddd_watch
      Src: /src/clamav/clamonacc/inotif/inotif.c:632,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:635,1
    - Dst: cl_strerror
      Src: /src/clamav/clamonacc/inotif/inotif.c:635,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:637,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/inotif/inotif.c:637,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:638,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:639,1
    - Dst: kill
      Src: /src/clamav/clamonacc/inotif/inotif.c:641,1
    - Dst: getpid
      Src: /src/clamav/clamonacc/inotif/inotif.c:641,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:645,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:646,1
    - Dst: kill
      Src: /src/clamav/clamonacc/inotif/inotif.c:648,1
    - Dst: getpid
      Src: /src/clamav/clamonacc/inotif/inotif.c:648,1
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:657,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:658,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamonacc/inotif/inotif.c:661,1
    - Dst: FD_SET
      Src: /src/clamav/clamonacc/inotif/inotif.c:662,1
    - Dst: pthread_cleanup_push
      Src: /src/clamav/clamonacc/inotif/inotif.c:664,1
    - Dst: select
      Src: /src/clamav/clamonacc/inotif/inotif.c:668,1
    - Dst: read
      Src: /src/clamav/clamonacc/inotif/inotif.c:671,1
    - Dst: pthread_testcancel
      Src: /src/clamav/clamonacc/inotif/inotif.c:672,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:689,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:694,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:696,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:700,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:704,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/inotif.c:709,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/inotif.c:711,1
    - Dst: onas_ddd_handle_in_delete
      Src: /src/clamav/clamonacc/inotif/inotif.c:715,1
    - Dst: onas_ddd_handle_in_moved_from
      Src: /src/clamav/clamonacc/inotif/inotif.c:718,1
    - Dst: onas_ddd_handle_in_create
      Src: /src/clamav/clamonacc/inotif/inotif.c:721,1
    - Dst: onas_ddd_handle_in_close_write
      Src: /src/clamav/clamonacc/inotif/inotif.c:724,1
    - Dst: onas_ddd_handle_in_moved_to
      Src: /src/clamav/clamonacc/inotif/inotif.c:727,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/inotif.c:730,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:737,1
    - Dst: pthread_cleanup_pop
      Src: /src/clamav/clamonacc/inotif/inotif.c:738,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 262
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 740
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 740
    functionName: onas_ddd_th
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - snprintf
    - onas_ht_rm_hierarchy
    - onas_ht_get
    - sigfillset
    - read
    - kill
    - onas_get_opt_list
    - onas_ht_add_hierarchy
    - prctl
    - match_regex
    - strcmp
    - strerror
    - onas_ddd_handle_in_moved_from
    - optget
    - select
    - onas_ddd_watch
    - onas_ddd_handle_in_create
    - cl_strerror
    - FD_SET
    - FD_ZERO
    - onas_ddd_init
    - pthread_setname_np
    - sigdelset
    - inotify_init1
    - onas_ddd_handle_in_delete
    - free
    - pthread_cleanup_push
    - getpid
    - onas_ddd_handle_in_moved_to
    - pthread_testcancel
    - pthread_sigmask
    - strlen
    - logg
    - onas_ddd_handle_in_close_write
    - cli_gettmpdir
    - pthread_cleanup_pop
    linkageType: ''
    returnType: void
    signature: void *onas_ddd_th(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/clamav/clamonacc/inotif/inotif.c:747,1
    - Dst: S_ISREG
      Src: /src/clamav/clamonacc/inotif/inotif.c:747,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:750,1
    - Dst: onas_ddd_unwatch
      Src: /src/clamav/clamonacc/inotif/inotif.c:751,1
    - Dst: onas_ht_rm_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:752,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - path
    - child_path
    - event
    - wd
    argTypes:
    - struct onas_context*
    - char*
    - char*
    - struct inotify_event*
    - int
    constantsTouched: []
    func_position:
      end: 755
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 755
    functionName: onas_ddd_handle_in_delete
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 1
    functionsReached:
    - onas_ddd_unwatch
    - onas_ht_rm_hierarchy
    - strlen
    - logg
    - stat
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void onas_ddd_handle_in_delete(struct onas_context *ctx,\n                                      const
      char *path, const char *child_path, const struct inotify_event *event, int wd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/clamav/clamonacc/inotif/inotif.c:762,1
    - Dst: S_ISREG
      Src: /src/clamav/clamonacc/inotif/inotif.c:762,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:765,1
    - Dst: onas_ddd_unwatch
      Src: /src/clamav/clamonacc/inotif/inotif.c:766,1
    - Dst: onas_ht_rm_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:767,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/inotif.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - path
    - child_path
    - event
    - wd
    argTypes:
    - struct onas_context*
    - char*
    - char*
    - struct inotify_event*
    - int
    constantsTouched: []
    func_position:
      end: 770
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 770
    functionName: onas_ddd_handle_in_moved_from
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 1
    functionsReached:
    - onas_ddd_unwatch
    - onas_ht_rm_hierarchy
    - strlen
    - logg
    - stat
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void onas_ddd_handle_in_moved_from(struct onas_context *ctx,\n                                          const
      char *path, const char *child_path, const struct inotify_event *event, int wd)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:780,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:781,1
    - Dst: onas_ddd_handle_extra_scanning
      Src: /src/clamav/clamonacc/inotif/inotif.c:782,1
    - Dst: onas_ht_add_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:785,1
    - Dst: onas_ddd_watch
      Src: /src/clamav/clamonacc/inotif/inotif.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - path
    - child_path
    - event
    - wd
    - in_mask
    argTypes:
    - struct onas_context*
    - char*
    - char*
    - struct inotify_event*
    - int
    - uint64_t
    constantsTouched: []
    func_position:
      end: 789
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 789
    functionName: onas_ddd_handle_in_create
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 1
    functionsReached:
    - onas_ddd_handle_extra_scanning
    - onas_ht_add_hierarchy
    - optget
    - logg
    - onas_ddd_watch
    linkageType: ''
    returnType: void
    signature: "void onas_ddd_handle_in_create(struct onas_context *ctx,\n                                      const
      char *path, const char *child_path, const struct inotify_event *event, int wd,
      uint64_t in_mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:795,1
    - Dst: stat
      Src: /src/clamav/clamonacc/inotif/inotif.c:796,1
    - Dst: S_ISREG
      Src: /src/clamav/clamonacc/inotif/inotif.c:796,1
    - Dst: onas_ddd_handle_extra_scanning
      Src: /src/clamav/clamonacc/inotif/inotif.c:797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - child_path
    argTypes:
    - struct onas_context*
    - char*
    constantsTouched: []
    func_position:
      end: 802
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 802
    functionName: onas_ddd_handle_in_close_write
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 1
    functionsReached:
    - stat
    - optget
    - onas_ddd_handle_extra_scanning
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: void onas_ddd_handle_in_close_write(struct onas_context *ctx, const
      char *child_path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/inotif/inotif.c:809,1
    - Dst: stat
      Src: /src/clamav/clamonacc/inotif/inotif.c:810,1
    - Dst: S_ISREG
      Src: /src/clamav/clamonacc/inotif/inotif.c:810,1
    - Dst: onas_ddd_handle_extra_scanning
      Src: /src/clamav/clamonacc/inotif/inotif.c:811,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:814,1
    - Dst: onas_ddd_handle_extra_scanning
      Src: /src/clamav/clamonacc/inotif/inotif.c:815,1
    - Dst: onas_ht_add_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:817,1
    - Dst: onas_ddd_watch
      Src: /src/clamav/clamonacc/inotif/inotif.c:818,1
    - Dst: stat
      Src: /src/clamav/clamonacc/inotif/inotif.c:821,1
    - Dst: S_ISREG
      Src: /src/clamav/clamonacc/inotif/inotif.c:821,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:824,1
    - Dst: onas_ht_add_hierarchy
      Src: /src/clamav/clamonacc/inotif/inotif.c:825,1
    - Dst: onas_ddd_watch
      Src: /src/clamav/clamonacc/inotif/inotif.c:826,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 6
    argNames:
    - ctx
    - path
    - child_path
    - event
    - wd
    - in_mask
    argTypes:
    - struct onas_context*
    - char*
    - char*
    - struct inotify_event*
    - int
    - uint64_t
    constantsTouched: []
    func_position:
      end: 830
      start: 804
    functionDepth: 3
    functionLinenumber: 804
    functionLinenumberEnd: 830
    functionName: onas_ddd_handle_in_moved_to
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 1
    functionsReached:
    - onas_ddd_handle_extra_scanning
    - onas_ht_add_hierarchy
    - optget
    - logg
    - stat
    - onas_ddd_watch
    - S_ISREG
    linkageType: ''
    returnType: void
    signature: "void onas_ddd_handle_in_moved_to(struct onas_context *ctx,\n                                        const
      char *path, const char *child_path, const struct inotify_event *event, int wd,
      uint64_t in_mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/clamonacc/inotif/inotif.c:837,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:839,1
    - Dst: onas_map_context_info_to_event_data
      Src: /src/clamav/clamonacc/inotif/inotif.c:843,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/clamonacc/inotif/inotif.c:844,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:852,1
    - Dst: onas_queue_event
      Src: /src/clamav/clamonacc/inotif/inotif.c:854,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - pathname
    - extra_options
    argTypes:
    - struct onas_context*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 860
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 860
    functionName: onas_ddd_handle_extra_scanning
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 3
    functionsReached:
    - calloc
    - onas_map_context_info_to_event_data
    - onas_queue_event
    - logg
    - cli_safer_strdup
    linkageType: ''
    returnType: void
    signature: void onas_ddd_handle_extra_scanning(struct onas_context *ctx, const
      char *pathname, int extra_options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamonacc/inotif/inotif.c:864,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:866,1
    - Dst: close
      Src: /src/clamav/clamonacc/inotif/inotif.c:869,1
    - Dst: onas_free_ht
      Src: /src/clamav/clamonacc/inotif/inotif.c:874,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/inotif.c:879,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/inotif.c:883,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 884
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 884
    functionName: onas_ddd_exit
    functionSourceFile: /src/clamav/clamonacc/inotif/inotif.c
    functionUses: 0
    functionsReached:
    - close
    - onas_free_ht
    - UNUSEDPARAM
    - logg
    - free
    linkageType: ''
    returnType: void
    signature: void onas_ddd_exit(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 108
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 108
    functionName: onas_hshift
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t onas_hshift(uint32_t hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_hshift
      Src: /src/clamav/clamonacc/inotif/hash.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - key
    - keylen
    - size
    argTypes:
    - char*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: onas_hash
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - onas_hshift
    linkageType: ''
    returnType: int
    signature: int onas_hash(const char *key, size_t keylen, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/inotif/hash.c:139,1
    - Dst: calloc
      Src: /src/clamav/clamonacc/inotif/hash.c:150,1
    - Dst: onas_free_ht
      Src: /src/clamav/clamonacc/inotif/hash.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ht
    - size
    argTypes:
    - struct onas_ht**
    - uint32_t
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: onas_ht_init
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached:
    - malloc
    - onas_free_ht
    - calloc
    linkageType: ''
    returnType: int
    signature: int onas_ht_init(struct onas_ht **ht, uint32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:164,1
    - Dst: onas_free_bucket
      Src: /src/clamav/clamonacc/inotif/hash.c:170,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:174,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ht
    argTypes:
    - struct onas_ht*
    constantsTouched: []
    func_position:
      end: 180
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 180
    functionName: onas_free_ht
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 2
    functionsReached:
    - free
    - onas_free_bucket
    linkageType: ''
    returnType: void
    signature: void onas_free_ht(struct onas_ht *ht)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/inotif/hash.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: onas_bucket_init
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct onas_bucket
    signature: struct onas_bucket *onas_bucket_init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_free_element
      Src: /src/clamav/clamonacc/inotif/hash.c:207,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bckt
    argTypes:
    - struct onas_bucket*
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: onas_free_bucket
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached:
    - free
    - onas_free_element
    linkageType: ''
    returnType: void
    signature: void onas_free_bucket(struct onas_bucket *bckt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/inotif/hash.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - value
    - key
    - klen
    argTypes:
    - struct onas_hnode*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 232
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 232
    functionName: onas_element_init
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct onas_element
    signature: struct onas_element *onas_element_init(struct onas_hnode *value, const
      char *key, size_t klen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_free_hashnode
      Src: /src/clamav/clamonacc/inotif/hash.c:239,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct onas_element*
    constantsTouched: []
    func_position:
      end: 247
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 247
    functionName: onas_free_element
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached:
    - onas_free_hashnode
    - free
    linkageType: ''
    returnType: void
    signature: void onas_free_element(struct onas_element *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_bucket_init
      Src: /src/clamav/clamonacc/inotif/hash.c:261,1
    - Dst: onas_bucket_insert
      Src: /src/clamav/clamonacc/inotif/hash.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ht
    - elem
    argTypes:
    - struct onas_ht*
    - struct onas_element*
    constantsTouched: []
    func_position:
      end: 286
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 286
    functionName: onas_ht_insert
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - onas_bucket_insert
    - onas_bucket_init
    linkageType: ''
    returnType: int
    signature: int onas_ht_insert(struct onas_ht *ht, struct onas_element *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - bckt
    - elem
    argTypes:
    - struct onas_bucket*
    - struct onas_element*
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: onas_bucket_insert
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int onas_bucket_insert(struct onas_bucket *bckt, struct onas_element
      *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_hash
      Src: /src/clamav/clamonacc/inotif/hash.c:321,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/inotif/hash.c:327,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 4
    argNames:
    - ht
    - key
    - klen
    - elem
    argTypes:
    - struct onas_ht*
    - char*
    - size_t
    - struct onas_element**
    constantsTouched: []
    func_position:
      end: 336
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 336
    functionName: onas_ht_get
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 3
    functionsReached:
    - strcmp
    - onas_hash
    linkageType: ''
    returnType: int
    signature: int onas_ht_get(struct onas_ht *ht, const char *key, size_t klen, struct
      onas_element **elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_hash
      Src: /src/clamav/clamonacc/inotif/hash.c:345,1
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/hash.c:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - ht
    - key
    - klen
    - relem
    argTypes:
    - struct onas_ht*
    - char*
    - size_t
    - struct onas_element**
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: onas_ht_remove
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - onas_ht_get
    - onas_hash
    linkageType: ''
    returnType: int
    signature: int onas_ht_remove(struct onas_ht *ht, const char *key, size_t klen,
      struct onas_element **relem)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - bckt
    - elem
    argTypes:
    - struct onas_bucket*
    - struct onas_element*
    constantsTouched: []
    func_position:
      end: 400
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 400
    functionName: onas_bucket_remove
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int onas_bucket_remove(struct onas_bucket *bckt, struct onas_element
      *elem)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/inotif/hash.c:410,1
    - Dst: onas_listnode_init
      Src: /src/clamav/clamonacc/inotif/hash.c:424,1
    - Dst: onas_free_hashnode
      Src: /src/clamav/clamonacc/inotif/hash.c:425,1
    - Dst: onas_listnode_init
      Src: /src/clamav/clamonacc/inotif/hash.c:429,1
    - Dst: onas_free_hashnode
      Src: /src/clamav/clamonacc/inotif/hash.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 438
    functionName: onas_hashnode_init
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - malloc
    - onas_listnode_init
    - onas_free_hashnode
    linkageType: ''
    returnType: struct onas_hnode
    signature: struct onas_hnode *onas_hashnode_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/inotif/hash.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 456
    functionName: onas_listnode_init
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct onas_lnode
    signature: struct onas_lnode *onas_listnode_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_free_dirlist
      Src: /src/clamav/clamonacc/inotif/hash.c:465,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:468,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:471,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - hnode
    argTypes:
    - struct onas_hnode*
    constantsTouched: []
    func_position:
      end: 477
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 477
    functionName: onas_free_hashnode
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 2
    functionsReached:
    - onas_free_dirlist
    - free
    linkageType: ''
    returnType: void
    signature: void onas_free_hashnode(struct onas_hnode *hnode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_free_listnode
      Src: /src/clamav/clamonacc/inotif/hash.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct onas_lnode*
    constantsTouched: []
    func_position:
      end: 495
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 495
    functionName: onas_free_dirlist
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached:
    - onas_free_listnode
    linkageType: ''
    returnType: void
    signature: void onas_free_dirlist(struct onas_lnode *head)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:507,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lnode
    argTypes:
    - struct onas_lnode*
    constantsTouched: []
    func_position:
      end: 513
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 513
    functionName: onas_free_listnode
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void onas_free_listnode(struct onas_lnode *lnode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_listnode_init
      Src: /src/clamav/clamonacc/inotif/hash.c:522,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/clamonacc/inotif/hash.c:526,1
    - Dst: onas_add_listnode
      Src: /src/clamav/clamonacc/inotif/hash.c:528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - node
    - dirname
    argTypes:
    - struct onas_hnode*
    - char*
    constantsTouched: []
    func_position:
      end: 531
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 531
    functionName: onas_add_hashnode_child
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - CLI_STRNDUP
    - onas_listnode_init
    - onas_add_listnode
    linkageType: ''
    returnType: int
    signature: int onas_add_hashnode_child(struct onas_hnode *node, const char *dirname)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tail
    - node
    argTypes:
    - struct onas_lnode*
    - struct onas_lnode*
    constantsTouched: []
    func_position:
      end: 549
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 549
    functionName: onas_add_listnode
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int onas_add_listnode(struct onas_lnode *tail, struct onas_lnode *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/hash.c:563,1
    - Dst: strncmp
      Src: /src/clamav/clamonacc/inotif/hash.c:565,1
    - Dst: onas_free_listnode
      Src: /src/clamav/clamonacc/inotif/hash.c:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - head
    - dirname
    argTypes:
    - struct onas_lnode*
    - char*
    constantsTouched: []
    func_position:
      end: 577
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 577
    functionName: onas_rm_listnode
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - onas_free_listnode
    - logg
    - strncmp
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_rm_listnode(struct onas_lnode *head, const char *dirname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLI_STRNDUP
      Src: /src/clamav/clamonacc/inotif/hash.c:599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - pathname
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 606
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 606
    functionName: onas_get_parent
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - CLI_STRNDUP
    linkageType: ''
    returnType: char
    signature: char *onas_get_parent(const char *pathname, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - pathname
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 625
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 625
    functionName: onas_get_dirname_idx
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int onas_get_dirname_idx(const char *pathname, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/hash.c:648,1
    - Dst: onas_rm_listnode
      Src: /src/clamav/clamonacc/inotif/hash.c:652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 5
    argNames:
    - ht
    - prntpath
    - prntlen
    - childpath
    - childlen
    argTypes:
    - struct onas_ht*
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 657
      start: 636
    functionDepth: 4
    functionLinenumber: 636
    functionLinenumberEnd: 657
    functionName: onas_ht_rm_child
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - onas_ht_get
    - onas_rm_listnode
    linkageType: ''
    returnType: int
    signature: int onas_ht_rm_child(struct onas_ht *ht, const char *prntpath, size_t
      prntlen, const char *childpath, size_t childlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/hash.c:678,1
    - Dst: onas_add_hashnode_child
      Src: /src/clamav/clamonacc/inotif/hash.c:681,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 5
    argNames:
    - ht
    - prntpath
    - prntlen
    - childpath
    - childlen
    argTypes:
    - struct onas_ht*
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 682
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 682
    functionName: onas_ht_add_child
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 0
    functionsReached:
    - onas_ht_get
    - onas_add_hashnode_child
    linkageType: ''
    returnType: int
    signature: int onas_ht_add_child(struct onas_ht *ht, const char *prntpath, size_t
      prntlen, const char *childpath, size_t childlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ht_add_child
      Src: /src/clamav/clamonacc/inotif/hash.c:701,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/hash.c:701,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:702,1
    - Dst: _priv_fts_open
      Src: /src/clamav/clamonacc/inotif/hash.c:705,1
    - Dst: logg
      Src: /src/clamav/clamonacc/inotif/hash.c:706,1
    - Dst: _priv_fts_read
      Src: /src/clamav/clamonacc/inotif/hash.c:711,1
    - Dst: onas_hashnode_init
      Src: /src/clamav/clamonacc/inotif/hash.c:718,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/clamonacc/inotif/hash.c:725,1
    - Dst: onas_get_parent
      Src: /src/clamav/clamonacc/inotif/hash.c:727,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/hash.c:729,1
    - Dst: _priv_fts_children
      Src: /src/clamav/clamonacc/inotif/hash.c:737,1
    - Dst: onas_add_hashnode_child
      Src: /src/clamav/clamonacc/inotif/hash.c:740,1
    - Dst: onas_free_hashnode
      Src: /src/clamav/clamonacc/inotif/hash.c:743,1
    - Dst: onas_element_init
      Src: /src/clamav/clamonacc/inotif/hash.c:750,1
    - Dst: onas_free_hashnode
      Src: /src/clamav/clamonacc/inotif/hash.c:753,1
    - Dst: onas_ht_insert
      Src: /src/clamav/clamonacc/inotif/hash.c:757,1
    - Dst: onas_free_element
      Src: /src/clamav/clamonacc/inotif/hash.c:761,1
    - Dst: _priv_fts_close
      Src: /src/clamav/clamonacc/inotif/hash.c:768,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 2
    argNames:
    - ht
    - pathname
    argTypes:
    - struct onas_ht*
    - char*
    constantsTouched: []
    func_position:
      end: 776
      start: 689
    functionDepth: 4
    functionLinenumber: 689
    functionLinenumberEnd: 776
    functionName: onas_ht_add_hierarchy
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 3
    functionsReached:
    - onas_element_init
    - _priv_fts_close
    - strlen
    - _priv_fts_children
    - _priv_fts_read
    - onas_hashnode_init
    - CLI_STRNDUP
    - onas_get_parent
    - onas_ht_insert
    - onas_free_hashnode
    - logg
    - onas_free_element
    - free
    - onas_add_hashnode_child
    - _priv_fts_open
    - onas_ht_add_child
    linkageType: ''
    returnType: int
    signature: int onas_ht_add_hierarchy(struct onas_ht *ht, const char *pathname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_ht_get
      Src: /src/clamav/clamonacc/inotif/hash.c:790,1
    - Dst: onas_get_parent
      Src: /src/clamav/clamonacc/inotif/hash.c:797,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/inotif/hash.c:799,1
    - Dst: onas_ht_rm_child
      Src: /src/clamav/clamonacc/inotif/hash.c:800,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:801,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:805,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/hash.c:816,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/inotif/hash.c:818,1
    - Dst: onas_ht_rm_hierarchy
      Src: /src/clamav/clamonacc/inotif/hash.c:819,1
    - Dst: free
      Src: /src/clamav/clamonacc/inotif/hash.c:820,1
    - Dst: onas_ht_remove
      Src: /src/clamav/clamonacc/inotif/hash.c:823,1
    - Dst: onas_free_element
      Src: /src/clamav/clamonacc/inotif/hash.c:824,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - ht
    - pathname
    - len
    - level
    argTypes:
    - struct onas_ht*
    - char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 827
      start: 781
    functionDepth: 5
    functionLinenumber: 781
    functionLinenumberEnd: 827
    functionName: onas_ht_rm_hierarchy
    functionSourceFile: /src/clamav/clamonacc/inotif/hash.c
    functionUses: 4
    functionsReached:
    - snprintf
    - strlen
    - onas_ht_get
    - onas_ht_rm_hierarchy
    - onas_ht_remove
    - onas_ht_rm_child
    - onas_get_parent
    - onas_free_element
    - free
    linkageType: ''
    returnType: int
    signature: int onas_ht_rm_hierarchy(struct onas_ht *ht, const char *pathname,
      size_t len, int level)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:78,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:85,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:85,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:86,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:89,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:90,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:90,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:91,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:96,1
    - Dst: cli_gettmpdir
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:100,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:103,1
    - Dst: fanotify_mark
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:105,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:106,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:109,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:114,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:117,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:119,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:120,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:121,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:122,1
    - Dst: fanotify_mark
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:127,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:128,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:131,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:136,1
    - Dst: optget
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:142,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:144,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:146,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 150
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 150
    functionName: onas_setup_fanotif
    functionSourceFile: /src/clamav/clamonacc/fanotif/fanotif.c
    functionUses: 1
    functionsReached:
    - strcmp
    - optget
    - logg
    - fanotify_mark
    - cli_gettmpdir
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_setup_fanotif(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:165,1
    - Dst: FD_SET
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:166,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:168,1
    - Dst: getpid
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:168,1
    - Dst: select
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:170,1
    - Dst: time
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:173,1
    - Dst: read
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:174,1
    - Dst: time
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:177,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:178,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:178,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:179,1
    - Dst: time
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:180,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:186,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:186,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:187,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:193,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:193,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:194,1
    - Dst: sleep
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:195,1
    - Dst: FAN_EVENT_OK
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:204,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:206,1
    - Dst: sprintf
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:211,1
    - Dst: readlink
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:213,1
    - Dst: close
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:215,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:216,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:216,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:218,1
    - Dst: FAN_EVENT_NEXT
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:219,1
    - Dst: onas_fan_checkowner
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:227,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:230,1
    - Dst: calloc
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:237,1
    - Dst: close
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:239,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:240,1
    - Dst: onas_map_context_info_to_event_data
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:245,1
    - Dst: malloc
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:250,1
    - Dst: close
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:252,1
    - Dst: free
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:253,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:254,1
    - Dst: memcpy
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:257,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:258,1
    - Dst: close
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:260,1
    - Dst: free
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:261,1
    - Dst: free
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:262,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:263,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:267,1
    - Dst: onas_queue_event
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:269,1
    - Dst: close
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:270,1
    - Dst: free
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:271,1
    - Dst: free
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:272,1
    - Dst: free
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:273,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:274,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:278,1
    - Dst: FAN_EVENT_NEXT
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:279,1
    - Dst: write
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:292,1
    - Dst: close
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:293,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:294,1
    - Dst: close
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:299,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:300,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:302,1
    - Dst: FAN_EVENT_NEXT
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:309,1
    - Dst: select
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:312,1
    - Dst: logg
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:317,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/fanotif/fanotif.c:317,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 134
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 322
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 322
    functionName: onas_fan_eloop
    functionSourceFile: /src/clamav/clamonacc/fanotif/fanotif.c
    functionUses: 1
    functionsReached:
    - write
    - FAN_EVENT_NEXT
    - read
    - FAN_EVENT_OK
    - sprintf
    - readlink
    - strerror
    - sleep
    - onas_map_context_info_to_event_data
    - time
    - select
    - close
    - calloc
    - FD_SET
    - FD_ZERO
    - malloc
    - free
    - cli_safer_strdup
    - getpid
    - onas_queue_event
    - onas_fan_checkowner
    - logg
    - memcpy
    linkageType: ''
    returnType: int
    signature: int onas_fan_eloop(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/scan/onas_queue.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct onas_event_queue_node**
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: onas_new_event_queue_node
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_new_event_queue_node(struct onas_event_queue_node **node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_new_event_queue_node
      Src: /src/clamav/clamonacc/scan/onas_queue.c:86,1
    - Dst: onas_new_event_queue_node
      Src: /src/clamav/clamonacc/scan/onas_queue.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: onas_init_event_queue
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 0
    functionsReached:
    - onas_new_event_queue_node
    linkageType: ''
    returnType: void
    signature: void *onas_init_event_queue(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/scan/onas_queue.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct onas_event_queue_node*
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: onas_destroy_event_queue_node
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void onas_destroy_event_queue_node(struct onas_event_queue_node *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_destroy_event_queue_node
      Src: /src/clamav/clamonacc/scan/onas_queue.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: onas_destroy_event_queue
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 0
    functionsReached:
    - onas_destroy_event_queue_node
    linkageType: ''
    returnType: void
    signature: void onas_destroy_event_queue(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/clamav/clamonacc/scan/onas_queue.c:151,1
    - Dst: pthread_setname_np
      Src: /src/clamav/clamonacc/scan/onas_queue.c:153,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/onas_queue.c:155,1
    - Dst: sigfillset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:163,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:164,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:167,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:168,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:169,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:170,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:171,1
    - Dst: sigdelset
      Src: /src/clamav/clamonacc/scan/onas_queue.c:173,1
    - Dst: pthread_sigmask
      Src: /src/clamav/clamonacc/scan/onas_queue.c:175,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/onas_queue.c:177,1
    - Dst: onas_init_event_queue
      Src: /src/clamav/clamonacc/scan/onas_queue.c:178,1
    - Dst: thpool_init
      Src: /src/clamav/clamonacc/scan/onas_queue.c:179,1
    - Dst: pthread_cleanup_push
      Src: /src/clamav/clamonacc/scan/onas_queue.c:183,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/onas_queue.c:184,1
    - Dst: onas_consume_event
      Src: /src/clamav/clamonacc/scan/onas_queue.c:186,1
    - Dst: pthread_cleanup_pop
      Src: /src/clamav/clamonacc/scan/onas_queue.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 190
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 190
    functionName: onas_scan_queue_th
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 0
    functionsReached:
    - prctl
    - onas_init_event_queue
    - pthread_sigmask
    - thpool_init
    - sigfillset
    - onas_consume_event
    - logg
    - pthread_setname_np
    - sigdelset
    - pthread_cleanup_push
    - pthread_cleanup_pop
    linkageType: ''
    returnType: void
    signature: void *onas_scan_queue_th(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: onas_queue_is_b_empty
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int onas_queue_is_b_empty(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/scan/onas_queue.c:204,1
    - Dst: onas_queue_is_b_empty
      Src: /src/clamav/clamonacc/scan/onas_queue.c:206,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/clamonacc/scan/onas_queue.c:207,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/scan/onas_queue.c:215,1
    - Dst: thpool_add_work
      Src: /src/clamav/clamonacc/scan/onas_queue.c:217,1
    - Dst: onas_destroy_event_queue_node
      Src: /src/clamav/clamonacc/scan/onas_queue.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - thpool
    argTypes:
    - threadpool
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: onas_consume_event
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 1
    functionsReached:
    - onas_queue_is_b_empty
    - onas_destroy_event_queue_node
    - pthread_mutex_unlock
    - thpool_add_work
    - pthread_mutex_lock
    - pthread_cond_wait
    linkageType: ''
    returnType: int
    signature: int onas_consume_event(threadpool thpool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_new_event_queue_node
      Src: /src/clamav/clamonacc/scan/onas_queue.c:226,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/scan/onas_queue.c:229,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamonacc/scan/onas_queue.c:239,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/scan/onas_queue.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - event_data
    argTypes:
    - struct onas_scan_event*
    constantsTouched: []
    func_position:
      end: 243
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 243
    functionName: onas_queue_event
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - pthread_cond_signal
    - onas_new_event_queue_node
    - pthread_mutex_lock
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_queue_event(struct onas_scan_event *event_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/onas_queue.c:252,1
    - Dst: pthread_attr_init
      Src: /src/clamav/clamonacc/scan/onas_queue.c:256,1
    - Dst: pthread_attr_setdetachstate
      Src: /src/clamav/clamonacc/scan/onas_queue.c:259,1
    - Dst: pthread_create
      Src: /src/clamav/clamonacc/scan/onas_queue.c:260,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/onas_queue.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 269
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 269
    functionName: onas_scan_queue_start
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 1
    functionsReached:
    - pthread_attr_setdetachstate
    - pthread_create
    - pthread_attr_init
    - logg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_scan_queue_start(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamonacc/scan/onas_queue.c:273,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/onas_queue.c:275,1
    - Dst: thpool_wait
      Src: /src/clamav/clamonacc/scan/onas_queue.c:277,1
    - Dst: thpool_destroy
      Src: /src/clamav/clamonacc/scan/onas_queue.c:278,1
    - Dst: onas_destroy_event_queue
      Src: /src/clamav/clamonacc/scan/onas_queue.c:281,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/onas_queue.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: onas_scan_queue_exit
    functionSourceFile: /src/clamav/clamonacc/scan/onas_queue.c
    functionUses: 0
    functionsReached:
    - thpool_destroy
    - UNUSEDPARAM
    - logg
    - thpool_wait
    - onas_destroy_event_queue
    linkageType: ''
    returnType: void
    signature: void onas_scan_queue_exit(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_scan_safe
      Src: /src/clamav/clamonacc/scan/thread.c:69,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:75,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:79,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:87,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:90,1
    - Dst: onas_scan_safe
      Src: /src/clamav/clamonacc/scan/thread.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 6
    argNames:
    - event_data
    - fname
    - sb
    - infected
    - err
    - ret_code
    argTypes:
    - struct onas_scan_event*
    - char*
    - STATBUF
    - int*
    - int*
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 103
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 103
    functionName: onas_scan
    functionSourceFile: /src/clamav/clamonacc/scan/thread.c
    functionUses: 0
    functionsReached:
    - onas_scan_safe
    - logg
    linkageType: ''
    returnType: int
    signature: int onas_scan(struct onas_scan_event *event_data, const char *fname,
      STATBUF sb, int *infected, int *err, cl_error_t *ret_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/scan/thread.c:128,1
    - Dst: onas_client_scan
      Src: /src/clamav/clamonacc/scan/thread.c:130,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/scan/thread.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - event_data
    - fname
    - sb
    - infected
    - err
    - ret_code
    argTypes:
    - struct onas_scan_event*
    - char*
    - STATBUF
    - int*
    - int*
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: onas_scan_safe
    functionSourceFile: /src/clamav/clamonacc/scan/thread.c
    functionUses: 1
    functionsReached:
    - onas_client_scan
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_scan_safe(struct onas_scan_event *event_data, const
      char *fname, STATBUF sb, int *infected, int *err, cl_error_t *ret_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:152,1
    - Dst: onas_scan
      Src: /src/clamav/clamonacc/scan/thread.c:168,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:171,1
    - Dst: write
      Src: /src/clamav/clamonacc/scan/thread.c:186,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:188,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:190,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:201,1
    - Dst: close
      Src: /src/clamav/clamonacc/scan/thread.c:203,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:205,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:207,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 6
    argNames:
    - event_data
    - fname
    - sb
    - infected
    - err
    - ret_code
    argTypes:
    - struct onas_scan_event*
    - char*
    - STATBUF
    - int*
    - int*
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 215
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 215
    functionName: onas_scan_thread_scanfile
    functionSourceFile: /src/clamav/clamonacc/scan/thread.c
    functionUses: 0
    functionsReached:
    - onas_scan
    - close
    - write
    - logg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_scan_thread_scanfile(struct onas_scan_event *event_data,
      const char *fname, STATBUF sb, int *infected, int *err, cl_error_t *ret_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _priv_fts_open
      Src: /src/clamav/clamonacc/scan/thread.c:233,1
    - Dst: _priv_fts_read
      Src: /src/clamav/clamonacc/scan/thread.c:238,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamonacc/scan/thread.c:241,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:248,1
    - Dst: onas_scan_thread_scanfile
      Src: /src/clamav/clamonacc/scan/thread.c:252,1
    - Dst: _priv_fts_close
      Src: /src/clamav/clamonacc/scan/thread.c:258,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - event_data
    - pathname
    argTypes:
    - struct onas_scan_event*
    - char*
    constantsTouched: []
    func_position:
      end: 262
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 262
    functionName: onas_scan_thread_handle_dir
    functionSourceFile: /src/clamav/clamonacc/scan/thread.c
    functionUses: 0
    functionsReached:
    - _priv_fts_close
    - onas_scan_thread_scanfile
    - _priv_fts_read
    - CLAMSTAT
    - logg
    - _priv_fts_open
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_scan_thread_handle_dir(struct onas_scan_event *event_data,
      const char *pathname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMSTAT
      Src: /src/clamav/clamonacc/scan/thread.c:278,1
    - Dst: onas_scan_thread_scanfile
      Src: /src/clamav/clamonacc/scan/thread.c:288,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:293,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - event_data
    - pathname
    argTypes:
    - struct onas_scan_event*
    - char*
    constantsTouched: []
    func_position:
      end: 302
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 302
    functionName: onas_scan_thread_handle_file
    functionSourceFile: /src/clamav/clamonacc/scan/thread.c
    functionUses: 0
    functionsReached:
    - onas_scan_thread_scanfile
    - logg
    - CLAMSTAT
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_scan_thread_handle_file(struct onas_scan_event *event_data,
      const char *pathname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:320,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:322,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:335,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:338,1
    - Dst: onas_scan_thread_handle_dir
      Src: /src/clamav/clamonacc/scan/thread.c:339,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:341,1
    - Dst: onas_scan_thread_handle_file
      Src: /src/clamav/clamonacc/scan/thread.c:342,1
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:347,1
    - Dst: onas_scan_thread_handle_file
      Src: /src/clamav/clamonacc/scan/thread.c:348,1
    - Dst: close
      Src: /src/clamav/clamonacc/scan/thread.c:355,1
    - Dst: free
      Src: /src/clamav/clamonacc/scan/thread.c:367,1
    - Dst: free
      Src: /src/clamav/clamonacc/scan/thread.c:373,1
    - Dst: free
      Src: /src/clamav/clamonacc/scan/thread.c:377,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 382
      start: 309
    functionDepth: 6
    functionLinenumber: 309
    functionLinenumberEnd: 382
    functionName: onas_scan_worker
    functionSourceFile: /src/clamav/clamonacc/scan/thread.c
    functionUses: 0
    functionsReached:
    - close
    - logg
    - onas_scan_thread_handle_dir
    - onas_scan_thread_handle_file
    - free
    linkageType: ''
    returnType: void
    signature: void *onas_scan_worker(void *arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/scan/thread.c:398,1
    - Dst: optget
      Src: /src/clamav/clamonacc/scan/thread.c:419,1
    - Dst: optget
      Src: /src/clamav/clamonacc/scan/thread.c:422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - event_data
    argTypes:
    - struct onas_context*
    - struct onas_scan_event**
    constantsTouched: []
    func_position:
      end: 426
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 426
    functionName: onas_map_context_info_to_event_data
    functionSourceFile: /src/clamav/clamonacc/scan/thread.c
    functionUses: 2
    functionsReached:
    - optget
    - logg
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_map_context_info_to_event_data(struct onas_context
      *ctx, struct onas_scan_event **event_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fts_children
      Src: /src/clamav/clamonacc/misc/priv_fts.h:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ftsp
    - options
    argTypes:
    - FTS*
    - int
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: _priv_fts_children
    functionSourceFile: /src/clamav/clamonacc/misc/priv_fts.h
    functionUses: 1
    functionsReached:
    - fts_children
    linkageType: ''
    returnType: FTSENT
    signature: FTSENT *_priv_fts_children(FTS *ftsp, int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fts_close
      Src: /src/clamav/clamonacc/misc/priv_fts.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ftsp
    argTypes:
    - FTS*
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: _priv_fts_close
    functionSourceFile: /src/clamav/clamonacc/misc/priv_fts.h
    functionUses: 2
    functionsReached:
    - fts_close
    linkageType: ''
    returnType: int
    signature: int _priv_fts_close(FTS *ftsp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fts_open
      Src: /src/clamav/clamonacc/misc/priv_fts.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path_argv
    - options
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: _priv_fts_open
    functionSourceFile: /src/clamav/clamonacc/misc/priv_fts.h
    functionUses: 2
    functionsReached:
    - fts_open
    linkageType: ''
    returnType: FTS
    signature: "FTS *_priv_fts_open(char *const *path_argv, int options,\n                                  int
      (*compar)(const FTSENT **, const FTSENT **))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fts_read
      Src: /src/clamav/clamonacc/misc/priv_fts.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ftsp
    argTypes:
    - FTS*
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: _priv_fts_read
    functionSourceFile: /src/clamav/clamonacc/misc/priv_fts.h
    functionUses: 2
    functionsReached:
    - fts_read
    linkageType: ''
    returnType: FTSENT
    signature: FTSENT *_priv_fts_read(FTS *ftsp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fts_set
      Src: /src/clamav/clamonacc/misc/priv_fts.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ftsp
    - f
    - options
    argTypes:
    - FTS*
    - FTSENT*
    - int
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: _priv_fts_set
    functionSourceFile: /src/clamav/clamonacc/misc/priv_fts.h
    functionUses: 0
    functionsReached:
    - fts_set
    linkageType: ''
    returnType: int
    signature: int _priv_fts_set(FTS *ftsp, FTSENT *f, int options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/clamav/clamonacc/misc/utils.c:64,1
    - Dst: optget
      Src: /src/clamav/clamonacc/misc/utils.c:69,1
    - Dst: optget
      Src: /src/clamav/clamonacc/misc/utils.c:70,1
    - Dst: optget
      Src: /src/clamav/clamonacc/misc/utils.c:71,1
    - Dst: snprintf
      Src: /src/clamav/clamonacc/misc/utils.c:78,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamonacc/misc/utils.c:79,1
    - Dst: getpwuid
      Src: /src/clamav/clamonacc/misc/utils.c:92,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:95,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/misc/utils.c:95,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:98,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:102,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:108,1
    - Dst: sleep
      Src: /src/clamav/clamonacc/misc/utils.c:109,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:113,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamonacc/misc/utils.c:114,1
    - Dst: sleep
      Src: /src/clamav/clamonacc/misc/utils.c:115,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:120,1
    - Dst: strncmp
      Src: /src/clamav/clamonacc/misc/utils.c:126,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/misc/utils.c:126,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:139,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:142,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 2
    argNames:
    - pid
    - opts
    argTypes:
    - int
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 146
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 146
    functionName: onas_fan_checkowner
    functionSourceFile: /src/clamav/clamonacc/misc/utils.c
    functionUses: 1
    functionsReached:
    - getpid
    - getpwuid
    - snprintf
    - strerror
    - sleep
    - strlen
    - CLAMSTAT
    - optget
    - logg
    - pthread_cond_signal
    - strncmp
    linkageType: ''
    returnType: int
    signature: int onas_fan_checkowner(int pid, const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/misc/utils.c:162,1
    - Dst: fopen
      Src: /src/clamav/clamonacc/misc/utils.c:170,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:173,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/misc/utils.c:173,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/utils.c:175,1
    - Dst: getline
      Src: /src/clamav/clamonacc/misc/utils.c:179,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/misc/utils.c:181,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamonacc/misc/utils.c:183,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:184,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/misc/utils.c:184,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/utils.c:186,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamonacc/misc/utils.c:191,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:192,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/utils.c:194,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/misc/utils.c:199,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:200,1
    - Dst: logg
      Src: /src/clamav/clamonacc/misc/utils.c:201,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/utils.c:203,1
    - Dst: cli_safer_realloc
      Src: /src/clamav/clamonacc/misc/utils.c:209,1
    - Dst: fclose
      Src: /src/clamav/clamonacc/misc/utils.c:215,1
    - Dst: free_opt_list
      Src: /src/clamav/clamonacc/misc/utils.c:216,1
    - Dst: fclose
      Src: /src/clamav/clamonacc/misc/utils.c:224,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 226
    functionName: onas_get_opt_list
    functionSourceFile: /src/clamav/clamonacc/misc/utils.c
    functionUses: 1
    functionsReached:
    - strcmp
    - strerror
    - strlen
    - cli_safer_realloc
    - S_ISDIR
    - CLAMSTAT
    - getline
    - free_opt_list
    - logg
    - malloc
    - fclose
    - free
    - fopen
    linkageType: ''
    returnType: char
    signature: char **onas_get_opt_list(const char *fname, int *num_entries, cl_error_t
      *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/misc/utils.c:234,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/utils.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - opt_list
    - entries
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: free_opt_list
    functionSourceFile: /src/clamav/clamonacc/misc/utils.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_opt_list(char **opt_list, int entries)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:147,1
    - Dst: malloc
      Src: /src/clamav/clamonacc/misc/fts.c:152,1
    - Dst: memset
      Src: /src/clamav/clamonacc/misc/fts.c:154,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:159,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:160,1
    - Dst: fts_palloc
      Src: /src/clamav/clamonacc/misc/fts.c:170,1
    - Dst: MAX
      Src: /src/clamav/clamonacc/misc/fts.c:170,1
    - Dst: fts_alloc
      Src: /src/clamav/clamonacc/misc/fts.c:175,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:185,1
    - Dst: fts_alloc
      Src: /src/clamav/clamonacc/misc/fts.c:189,1
    - Dst: fts_stat
      Src: /src/clamav/clamonacc/misc/fts.c:193,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:193,1
    - Dst: fts_sort
      Src: /src/clamav/clamonacc/misc/fts.c:217,1
    - Dst: fts_alloc
      Src: /src/clamav/clamonacc/misc/fts.c:224,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:236,1
    - Dst: open
      Src: /src/clamav/clamonacc/misc/fts.c:236,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:237,1
    - Dst: fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:242,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:243,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:245,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:247,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 2
    argNames:
    - argv
    - options
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 249
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 249
    functionName: FTS_OPEN
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - fts_sort
    - memset
    - MAX
    - fts_alloc
    - open
    - fts_stat
    - fts_palloc
    - SET
    - __set_errno
    - free
    - malloc
    - fts_lfree
    - ISSET
    linkageType: ''
    returnType: FTSOBJ
    signature: "FTSOBJ *\nFTS_OPEN(char *const *argv, int options,\n         int (*compar)(const
      FTSENTRY **, const FTSENTRY **))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/clamav/clamonacc/misc/fts.c:266,1
    - Dst: strrchr
      Src: /src/clamav/clamonacc/misc/fts.c:267,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/misc/fts.c:268,1
    - Dst: memmove
      Src: /src/clamav/clamonacc/misc/fts.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - sp
    - p
    argTypes:
    - FTSOBJ*
    - FTSENTRY*
    constantsTouched: []
    func_position:
      end: 274
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 274
    functionName: internal_function::fts_load
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - strlen
    - strrchr
    - memmove
    linkageType: ''
    returnType: void
    signature: "void internal_function\n    fts_load(FTSOBJ *sp, FTSENTRY *p)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:290,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:292,1
    - Dst: fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:297,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:298,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:299,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:302,1
    - Dst: fchdir
      Src: /src/clamav/clamonacc/misc/fts.c:303,1
    - Dst: close
      Src: /src/clamav/clamonacc/misc/fts.c:304,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:309,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:310,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - sp
    argTypes:
    - FTSOBJ*
    constantsTouched: []
    func_position:
      end: 318
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 318
    functionName: FTS_CLOSE
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - close
    - fchdir
    - __set_errno
    - free
    - fts_lfree
    - ISSET
    linkageType: ''
    returnType: int
    signature: int FTS_CLOSE(FTSOBJ *sp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:338,1
    - Dst: fts_stat
      Src: /src/clamav/clamonacc/misc/fts.c:350,1
    - Dst: fts_stat
      Src: /src/clamav/clamonacc/misc/fts.c:362,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:363,1
    - Dst: open
      Src: /src/clamav/clamonacc/misc/fts.c:364,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:377,1
    - Dst: close
      Src: /src/clamav/clamonacc/misc/fts.c:379,1
    - Dst: fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:381,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:389,1
    - Dst: CLR
      Src: /src/clamav/clamonacc/misc/fts.c:390,1
    - Dst: fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:391,1
    - Dst: fts_safe_changedir
      Src: /src/clamav/clamonacc/misc/fts.c:408,1
    - Dst: fts_build
      Src: /src/clamav/clamonacc/misc/fts.c:416,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:417,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:432,1
    - Dst: FCHDIR
      Src: /src/clamav/clamonacc/misc/fts.c:439,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:440,1
    - Dst: fts_load
      Src: /src/clamav/clamonacc/misc/fts.c:443,1
    - Dst: fts_stat
      Src: /src/clamav/clamonacc/misc/fts.c:455,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:456,1
    - Dst: open
      Src: /src/clamav/clamonacc/misc/fts.c:458,1
    - Dst: NAPPEND
      Src: /src/clamav/clamonacc/misc/fts.c:468,1
    - Dst: memmove
      Src: /src/clamav/clamonacc/misc/fts.c:470,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:477,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:484,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:485,1
    - Dst: FCHDIR
      Src: /src/clamav/clamonacc/misc/fts.c:498,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:499,1
    - Dst: FCHDIR
      Src: /src/clamav/clamonacc/misc/fts.c:503,1
    - Dst: close
      Src: /src/clamav/clamonacc/misc/fts.c:505,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:506,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:507,1
    - Dst: close
      Src: /src/clamav/clamonacc/misc/fts.c:510,1
    - Dst: fts_safe_changedir
      Src: /src/clamav/clamonacc/misc/fts.c:512,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:513,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 122
    argCount: 1
    argNames:
    - sp
    argTypes:
    - FTSOBJ*
    constantsTouched: []
    func_position:
      end: 518
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 518
    functionName: FTS_READ
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - NAPPEND
    - fts_build
    - close
    - fts_safe_changedir
    - FCHDIR
    - open
    - fts_stat
    - SET
    - CLR
    - fts_load
    - __set_errno
    - free
    - memmove
    - fts_lfree
    - ISSET
    linkageType: ''
    returnType: FTSENTRY
    signature: 'FTSENTRY *

      FTS_READ(FTSOBJ *sp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 3
    argNames:
    - sp
    - p
    - instr
    argTypes:
    - FTSOBJ*
    - FTSENTRY*
    - int
    constantsTouched: []
    func_position:
      end: 536
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 536
    functionName: FTS_SET
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - __set_errno
    linkageType: ''
    returnType: int
    signature: int FTS_SET(FTSOBJ *sp, FTSENTRY *p, int instr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:545,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:556,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:559,1
    - Dst: fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:576,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:579,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:592,1
    - Dst: fts_build
      Src: /src/clamav/clamonacc/misc/fts.c:593,1
    - Dst: open
      Src: /src/clamav/clamonacc/misc/fts.c:595,1
    - Dst: fts_build
      Src: /src/clamav/clamonacc/misc/fts.c:597,1
    - Dst: fchdir
      Src: /src/clamav/clamonacc/misc/fts.c:598,1
    - Dst: close
      Src: /src/clamav/clamonacc/misc/fts.c:600,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - sp
    - instr
    argTypes:
    - FTSOBJ*
    - int
    constantsTouched: []
    func_position:
      end: 602
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 602
    functionName: FTS_CHILDREN
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - fts_build
    - close
    - open
    - fchdir
    - SET
    - __set_errno
    - fts_lfree
    - ISSET
    linkageType: ''
    returnType: FTSENTRY
    signature: 'FTSENTRY *

      FTS_CHILDREN(FTSOBJ *sp, int instr)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - dp
    argTypes:
    - struct dirent*
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: dirent_not_directory
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dirent_not_directory(const struct dirent *dp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:651,1
    - Dst: __opendir2
      Src: /src/clamav/clamonacc/misc/fts.c:658,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:675,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:675,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:676,1
    - Dst: printf
      Src: /src/clamav/clamonacc/misc/fts.c:684,1
    - Dst: printf
      Src: /src/clamav/clamonacc/misc/fts.c:685,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:686,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:686,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:686,1
    - Dst: internal_function::fts_safe_changedir
      Src: /src/clamav/clamonacc/misc/fts.c:705,1
    - Dst: dirfd
      Src: /src/clamav/clamonacc/misc/fts.c:705,1
    - Dst: closedir
      Src: /src/clamav/clamonacc/misc/fts.c:711,1
    - Dst: NAPPEND
      Src: /src/clamav/clamonacc/misc/fts.c:728,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:729,1
    - Dst: readdir
      Src: /src/clamav/clamonacc/misc/fts.c:743,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:744,1
    - Dst: ISDOT
      Src: /src/clamav/clamonacc/misc/fts.c:744,1
    - Dst: internal_function::fts_alloc
      Src: /src/clamav/clamonacc/misc/fts.c:747,1
    - Dst: _D_EXACT_NAMLEN
      Src: /src/clamav/clamonacc/misc/fts.c:747,1
    - Dst: _D_EXACT_NAMLEN
      Src: /src/clamav/clamonacc/misc/fts.c:749,1
    - Dst: internal_function::fts_palloc
      Src: /src/clamav/clamonacc/misc/fts.c:751,1
    - Dst: _D_EXACT_NAMLEN
      Src: /src/clamav/clamonacc/misc/fts.c:751,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:759,1
    - Dst: internal_function::fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:760,1
    - Dst: closedir
      Src: /src/clamav/clamonacc/misc/fts.c:761,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:763,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:764,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:770,1
    - Dst: _D_EXACT_NAMLEN
      Src: /src/clamav/clamonacc/misc/fts.c:776,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:783,1
    - Dst: internal_function::fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:784,1
    - Dst: closedir
      Src: /src/clamav/clamonacc/misc/fts.c:785,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:787,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:788,1
    - Dst: _D_EXACT_NAMLEN
      Src: /src/clamav/clamonacc/misc/fts.c:793,1
    - Dst: dirent_not_directory
      Src: /src/clamav/clamonacc/misc/fts.c:810,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:812,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:816,1
    - Dst: memmove
      Src: /src/clamav/clamonacc/misc/fts.c:818,1
    - Dst: internal_function::fts_stat
      Src: /src/clamav/clamonacc/misc/fts.c:822,1
    - Dst: closedir
      Src: /src/clamav/clamonacc/misc/fts.c:841,1
    - Dst: internal_function::fts_padjust
      Src: /src/clamav/clamonacc/misc/fts.c:848,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:854,1
    - Dst: FCHDIR
      Src: /src/clamav/clamonacc/misc/fts.c:868,1
    - Dst: internal_function::fts_safe_changedir
      Src: /src/clamav/clamonacc/misc/fts.c:868,1
    - Dst: SET
      Src: /src/clamav/clamonacc/misc/fts.c:870,1
    - Dst: internal_function::fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:871,1
    - Dst: internal_function::fts_lfree
      Src: /src/clamav/clamonacc/misc/fts.c:879,1
    - Dst: internal_function::fts_sort
      Src: /src/clamav/clamonacc/misc/fts.c:885,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 144
    argCount: 2
    argNames:
    - sp
    - type
    argTypes:
    - FTSOBJ*
    - int
    constantsTouched: []
    func_position:
      end: 887
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 887
    functionName: internal_function::fts_build
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - internal_function::fts_padjust
    - internal_function::fts_sort
    - ISDOT
    - internal_function::fts_lfree
    - internal_function::fts_alloc
    - printf
    - readdir
    - SET
    - memmove
    - NAPPEND
    - internal_function::fts_safe_changedir
    - __opendir2
    - dirent_not_directory
    - FCHDIR
    - dirfd
    - __set_errno
    - internal_function::fts_palloc
    - ISSET
    - closedir
    - internal_function::fts_stat
    - free
    - _D_EXACT_NAMLEN
    linkageType: ''
    returnType: FTSENTRY
    signature: "FTSENTRY *\n    internal_function\n    fts_build(FTSOBJ *sp, int type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:900,1
    - Dst: memset
      Src: /src/clamav/clamonacc/misc/fts.c:906,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:918,1
    - Dst: STAT
      Src: /src/clamav/clamonacc/misc/fts.c:919,1
    - Dst: LSTAT
      Src: /src/clamav/clamonacc/misc/fts.c:921,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:922,1
    - Dst: LSTAT
      Src: /src/clamav/clamonacc/misc/fts.c:928,1
    - Dst: memset
      Src: /src/clamav/clamonacc/misc/fts.c:931,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamonacc/misc/fts.c:935,1
    - Dst: ISDOT
      Src: /src/clamav/clamonacc/misc/fts.c:947,1
    - Dst: S_ISLNK
      Src: /src/clamav/clamonacc/misc/fts.c:964,1
    - Dst: S_ISREG
      Src: /src/clamav/clamonacc/misc/fts.c:966,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - sp
    - p
    - follow
    argTypes:
    - FTSOBJ*
    - FTSENTRY*
    - int
    constantsTouched: []
    func_position:
      end: 969
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 969
    functionName: internal_function::fts_stat
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 1
    functionsReached:
    - memset
    - S_ISLNK
    - STAT
    - ISDOT
    - S_ISDIR
    - LSTAT
    - __set_errno
    - S_ISREG
    - ISSET
    linkageType: ''
    returnType: u_short
    signature: "u_short internal_function\n    fts_stat(FTSOBJ *sp, FTSENTRY *p, int
      follow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/clamav/clamonacc/misc/fts.c:988,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:990,1
    - Dst: qsort
      Src: /src/clamav/clamonacc/misc/fts.c:999,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - sp
    - head
    - nitems
    argTypes:
    - FTSOBJ*
    - FTSENTRY*
    - int
    constantsTouched: []
    func_position:
      end: 1004
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 1004
    functionName: internal_function::fts_sort
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 1
    functionsReached:
    - realloc
    - qsort
    - free
    linkageType: ''
    returnType: FTSENTRY
    signature: "FTSENTRY *\n    internal_function\n    fts_sort(FTSOBJ *sp, FTSENTRY
      *head, int nitems)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:1022,1
    - Dst: malloc
      Src: /src/clamav/clamonacc/misc/fts.c:1024,1
    - Dst: memmove
      Src: /src/clamav/clamonacc/misc/fts.c:1028,1
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:1031,1
    - Dst: ALIGN
      Src: /src/clamav/clamonacc/misc/fts.c:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - sp
    - name
    - namelen
    argTypes:
    - FTSOBJ*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1041
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1041
    functionName: internal_function::fts_alloc
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 1
    functionsReached:
    - malloc
    - ALIGN
    - memmove
    - ISSET
    linkageType: ''
    returnType: FTSENTRY
    signature: "FTSENTRY *\n    internal_function\n    fts_alloc(FTSOBJ *sp, const
      char *name, size_t namelen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - head
    argTypes:
    - FTSENTRY*
    constantsTouched: []
    func_position:
      end: 1054
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1054
    functionName: internal_function::fts_lfree
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void internal_function\n    fts_lfree(FTSENTRY *head)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:1075,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:1077,1
    - Dst: realloc
      Src: /src/clamav/clamonacc/misc/fts.c:1080,1
    - Dst: free
      Src: /src/clamav/clamonacc/misc/fts.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sp
    - more
    argTypes:
    - FTSOBJ*
    - size_t
    constantsTouched: []
    func_position:
      end: 1088
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1088
    functionName: internal_function::fts_palloc
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 1
    functionsReached:
    - realloc
    - free
    - __set_errno
    linkageType: ''
    returnType: int
    signature: "int internal_function\n    fts_palloc(FTSOBJ *sp, size_t more)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ADJUST
      Src: /src/clamav/clamonacc/misc/fts.c:1111,1
    - Dst: ADJUST
      Src: /src/clamav/clamonacc/misc/fts.c:1115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sp
    - head
    argTypes:
    - FTSOBJ*
    - FTSENTRY*
    constantsTouched: []
    func_position:
      end: 1118
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1118
    functionName: internal_function::fts_padjust
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 1
    functionsReached:
    - ADJUST
    linkageType: ''
    returnType: void
    signature: "void internal_function\n    fts_padjust(FTSOBJ *sp, FTSENTRY *head)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/clamonacc/misc/fts.c:1127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 1130
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1130
    functionName: internal_function::fts_maxarglen
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t internal_function\n    fts_maxarglen(char *const *argv)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ISSET
      Src: /src/clamav/clamonacc/misc/fts.c:1145,1
    - Dst: open
      Src: /src/clamav/clamonacc/misc/fts.c:1147,1
    - Dst: fstat
      Src: /src/clamav/clamonacc/misc/fts.c:1149,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:1154,1
    - Dst: fchdir
      Src: /src/clamav/clamonacc/misc/fts.c:1158,1
    - Dst: close
      Src: /src/clamav/clamonacc/misc/fts.c:1162,1
    - Dst: __set_errno
      Src: /src/clamav/clamonacc/misc/fts.c:1163,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - sp
    - p
    - fd
    - path
    argTypes:
    - FTSOBJ*
    - FTSENTRY*
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1165
    functionName: internal_function::fts_safe_changedir
    functionSourceFile: /src/clamav/clamonacc/misc/fts.c
    functionUses: 1
    functionsReached:
    - close
    - open
    - fchdir
    - fstat
    - __set_errno
    - ISSET
    linkageType: ''
    returnType: int
    signature: "int internal_function\n    fts_safe_changedir(FTSOBJ *sp, FTSENTRY
      *p, int fd, const char *path)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:87,1
    - Dst: safe_open
      Src: /src/clamav/clamonacc/client/protocol.c:90,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:91,1
    - Dst: FSTAT
      Src: /src/clamav/clamonacc/client/protocol.c:99,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:100,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamonacc/client/protocol.c:105,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/protocol.c:115,1
    - Dst: htonl
      Src: /src/clamav/clamonacc/client/protocol.c:121,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/protocol.c:122,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:130,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/protocol.c:138,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/protocol.c:145,1
    - Dst: close
      Src: /src/clamav/clamonacc/client/protocol.c:149,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 5
    argNames:
    - curl
    - filename
    - fd
    - timeout
    - maxstream
    argTypes:
    - CURL*
    - char*
    - int
    - int64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 152
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 152
    functionName: onas_send_stream
    functionSourceFile: /src/clamav/clamonacc/client/protocol.c
    functionUses: 0
    functionsReached:
    - close
    - htonl
    - safe_open
    - S_ISDIR
    - FSTAT
    - logg
    - onas_sendln
    linkageType: ''
    returnType: int
    signature: int onas_send_stream(CURL *curl, const char *filename, int fd, int64_t
      timeout, uint64_t maxstream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sendln
      Src: /src/clamav/clamonacc/client/protocol.c:165,1
    - Dst: memset
      Src: /src/clamav/clamonacc/client/protocol.c:171,1
    - Dst: CMSG_LEN
      Src: /src/clamav/clamonacc/client/protocol.c:175,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/clamav/clamonacc/client/protocol.c:176,1
    - Dst: CMSG_LEN
      Src: /src/clamav/clamonacc/client/protocol.c:177,1
    - Dst: CMSG_DATA
      Src: /src/clamav/clamonacc/client/protocol.c:180,1
    - Dst: sendmsg
      Src: /src/clamav/clamonacc/client/protocol.c:182,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:183,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/client/protocol.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - sockd
    - fd
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 188
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 188
    functionName: onas_send_fdpass
    functionSourceFile: /src/clamav/clamonacc/client/protocol.c
    functionUses: 0
    functionsReached:
    - sendln
    - memset
    - sendmsg
    - CMSG_DATA
    - strerror
    - CMSG_LEN
    - logg
    - CMSG_FIRSTHDR
    linkageType: ''
    returnType: int
    signature: int onas_send_fdpass(int sockd, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/clamonacc/client/protocol.c:199,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:200,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:210,1
    - Dst: onas_send_fdpass
      Src: /src/clamav/clamonacc/client/protocol.c:215,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:218,1
    - Dst: close
      Src: /src/clamav/clamonacc/client/protocol.c:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - filename
    - fd
    - sockd
    argTypes:
    - char*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 228
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 228
    functionName: onas_fdpass
    functionSourceFile: /src/clamav/clamonacc/client/protocol.c
    functionUses: 0
    functionsReached:
    - close
    - open
    - logg
    - onas_send_fdpass
    linkageType: ''
    returnType: int
    signature: int onas_fdpass(const char *filename, int fd, int sockd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_get_sockd
      Src: /src/clamav/clamonacc/client/protocol.c:244,1
    - Dst: onas_recvlninit
      Src: /src/clamav/clamonacc/client/protocol.c:246,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:258,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/client/protocol.c:265,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/client/protocol.c:265,1
    - Dst: malloc
      Src: /src/clamav/clamonacc/client/protocol.c:266,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:267,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/client/protocol.c:267,1
    - Dst: sprintf
      Src: /src/clamav/clamonacc/client/protocol.c:274,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/protocol.c:275,1
    - Dst: free
      Src: /src/clamav/clamonacc/client/protocol.c:279,1
    - Dst: free
      Src: /src/clamav/clamonacc/client/protocol.c:283,1
    - Dst: onas_send_stream
      Src: /src/clamav/clamonacc/client/protocol.c:288,1
    - Dst: onas_fdpass
      Src: /src/clamav/clamonacc/client/protocol.c:293,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:322,1
    - Dst: strrchr
      Src: /src/clamav/clamonacc/client/protocol.c:331,1
    - Dst: strrchr
      Src: /src/clamav/clamonacc/client/protocol.c:335,1
    - Dst: strncmp
      Src: /src/clamav/clamonacc/client/protocol.c:340,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:341,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:344,1
    - Dst: memcmp
      Src: /src/clamav/clamonacc/client/protocol.c:353,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/client/protocol.c:361,1
    - Dst: strncpy
      Src: /src/clamav/clamonacc/client/protocol.c:363,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:370,1
    - Dst: action
      Src: /src/clamav/clamonacc/client/protocol.c:372,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:375,1
    - Dst: action
      Src: /src/clamav/clamonacc/client/protocol.c:378,1
    - Dst: memcmp
      Src: /src/clamav/clamonacc/client/protocol.c:387,1
    - Dst: memcmp
      Src: /src/clamav/clamonacc/client/protocol.c:388,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:395,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:395,1
    - Dst: memcmp
      Src: /src/clamav/clamonacc/client/protocol.c:401,1
    - Dst: memcmp
      Src: /src/clamav/clamonacc/client/protocol.c:402,1
    - Dst: memcmp
      Src: /src/clamav/clamonacc/client/protocol.c:403,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:410,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:410,1
    - Dst: memcmp
      Src: /src/clamav/clamonacc/client/protocol.c:416,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:423,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:423,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:434,1
    - Dst: CLAMSTAT
      Src: /src/clamav/clamonacc/client/protocol.c:441,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:442,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/client/protocol.c:443,1
    - Dst: S_ISDIR
      Src: /src/clamav/clamonacc/client/protocol.c:450,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/protocol.c:451,1
    - Dst: closesocket
      Src: /src/clamav/clamonacc/client/protocol.c:462,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 197
    argCount: 9
    argNames:
    - curl
    - scantype
    - maxstream
    - filename
    - fd
    - timeout
    - printok
    - errors
    - ret_code
    argTypes:
    - CURL*
    - int
    - uint64_t
    - char*
    - int
    - int64_t
    - int*
    - int*
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 465
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 465
    functionName: onas_dsresult
    functionSourceFile: /src/clamav/clamonacc/client/protocol.c
    functionUses: 0
    functionsReached:
    - action
    - S_ISDIR
    - onas_sendln
    - memcmp
    - sprintf
    - onas_recvlninit
    - strcmp
    - strerror
    - strncpy
    - strrchr
    - closesocket
    - onas_fdpass
    - onas_send_stream
    - malloc
    - free
    - onas_get_sockd
    - strlen
    - CLAMSTAT
    - logg
    - strncmp
    linkageType: ''
    returnType: int
    signature: int onas_dsresult(CURL *curl, int scantype, uint64_t maxstream, const
      char *filename, int fd, int64_t timeout, int *printok, int *errors, cl_error_t
      *ret_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/client/socket.c:55,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/socket.c:57,1
    - Dst: memset
      Src: /src/clamav/clamonacc/client/socket.c:58,1
    - Dst: strncpy
      Src: /src/clamav/clamonacc/client/socket.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context*
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: onas_set_sock_only_once
    functionSourceFile: /src/clamav/clamonacc/client/socket.c
    functionUses: 0
    functionsReached:
    - optget
    - memset
    - strncpy
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_set_sock_only_once(struct onas_context *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/clamav/clamonacc/client/socket.c:82,1
    - Dst: connect
      Src: /src/clamav/clamonacc/client/socket.c:83,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/socket.c:86,1
    - Dst: closesocket
      Src: /src/clamav/clamonacc/client/socket.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: onas_get_sockd
    functionSourceFile: /src/clamav/clamonacc/client/socket.c
    functionUses: 1
    functionsReached:
    - connect
    - closesocket
    - socket
    - logg
    linkageType: ''
    returnType: int
    signature: int onas_get_sockd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_get_clamd_version
      Src: /src/clamav/clamonacc/client/client.c:76,1
    - Dst: printf
      Src: /src/clamav/clamonacc/client/client.c:78,1
    - Dst: get_version
      Src: /src/clamav/clamonacc/client/client.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: onas_print_server_version
    functionSourceFile: /src/clamav/clamonacc/client/client.c
    functionUses: 1
    functionsReached:
    - get_version
    - printf
    - onas_get_clamd_version
    linkageType: ''
    returnType: void
    signature: void onas_print_server_version(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:94,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:99,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:100,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:104,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:105,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:109,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/client/client.c:117,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:121,1
    - Dst: onas_curl_init
      Src: /src/clamav/clamonacc/client/client.c:127,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:129,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:129,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamonacc/client/client.c:134,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:136,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:136,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:137,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:137,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:139,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:139,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:141,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/client.c:147,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:148,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:148,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:150,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 2
    argNames:
    - ctx
    - err
    argTypes:
    - struct onas_context**
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 161
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 161
    functionName: onas_check_remote
    functionSourceFile: /src/clamav/clamonacc/client/client.c
    functionUses: 2
    functionsReached:
    - curl_easy_perform
    - curl_easy_strerror
    - strcmp
    - curl_easy_cleanup
    - optget
    - logg
    - onas_curl_init
    - onas_sendln
    linkageType: ''
    returnType: int
    signature: int onas_check_remote(struct onas_context **ctx, cl_error_t *err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:184,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:188,1
    - Dst: onas_check_remote
      Src: /src/clamav/clamonacc/client/client.c:190,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:192,1
    - Dst: onas_curl_init
      Src: /src/clamav/clamonacc/client/client.c:196,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:196,1
    - Dst: onas_curl_init
      Src: /src/clamav/clamonacc/client/client.c:198,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:198,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:200,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:200,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:208,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/clamonacc/client/client.c:211,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:214,1
    - Dst: strchr
      Src: /src/clamav/clamonacc/client/client.c:218,1
    - Dst: cli_strntoul
      Src: /src/clamav/clamonacc/client/client.c:222,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/client/client.c:222,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/client/client.c:223,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:224,1
    - Dst: cli_strntoul
      Src: /src/clamav/clamonacc/client/client.c:229,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/client/client.c:229,1
    - Dst: strlen
      Src: /src/clamav/clamonacc/client/client.c:230,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:231,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamonacc/client/client.c:239,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:241,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:241,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/client.c:242,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:244,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:245,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:247,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:255,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:257,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:259,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:262,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:264,1
    - Dst: sleep
      Src: /src/clamav/clamonacc/client/client.c:266,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:273,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:274,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:276,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:281,1
    - Dst: free
      Src: /src/clamav/clamonacc/client/client.c:285,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 99
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 293
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 293
    functionName: onas_ping_clamd
    functionSourceFile: /src/clamav/clamonacc/client/client.c
    functionUses: 0
    functionsReached:
    - curl_easy_perform
    - curl_easy_strerror
    - sleep
    - strlen
    - cli_strntoul
    - strchr
    - curl_easy_cleanup
    - optget
    - logg
    - onas_curl_init
    - onas_sendln
    - free
    - cli_safer_strdup
    - onas_check_remote
    linkageType: ''
    returnType: int16_t
    signature: int16_t onas_ping_clamd(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:309,1
    - Dst: curl_easy_init
      Src: /src/clamav/clamonacc/client/client.c:314,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:320,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:323,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:323,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:324,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:328,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:330,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:330,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:331,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:337,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:339,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:339,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:340,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:344,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:346,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:346,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:347,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:352,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:354,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:354,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:355,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:359,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:361,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:361,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:362,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:367,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:369,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:369,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:370,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:375,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:377,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:377,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:378,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:384,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:386,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:386,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:387,1
    - Dst: curl_easy_setopt
      Src: /src/clamav/clamonacc/client/client.c:391,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:393,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:393,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 70
    argCount: 4
    argNames:
    - curl
    - ipaddr
    - port
    - timeout
    argTypes:
    - CURL**
    - char*
    - int64_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 398
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 398
    functionName: onas_curl_init
    functionSourceFile: /src/clamav/clamonacc/client/client.c
    functionUses: 2
    functionsReached:
    - curl_easy_strerror
    - curl_easy_cleanup
    - logg
    - curl_easy_setopt
    - curl_easy_init
    linkageType: ''
    returnType: CURLcode
    signature: CURLcode onas_curl_init(CURL **curl, const char *ipaddr, int64_t port,
      int64_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:411,1
    - Dst: actsetup
      Src: /src/clamav/clamonacc/client/client.c:415,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:419,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:420,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:422,1
    - Dst: onas_check_remote
      Src: /src/clamav/clamonacc/client/client.c:424,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:429,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:431,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:431,1
    - Dst: onas_set_sock_only_once
      Src: /src/clamav/clamonacc/client/client.c:432,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:435,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:437,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:441,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:443,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:444,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:445,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:447,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:448,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:451,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 458
      start: 400
    functionDepth: 5
    functionLinenumber: 400
    functionLinenumberEnd: 458
    functionName: onas_setup_client
    functionSourceFile: /src/clamav/clamonacc/client/client.c
    functionUses: 1
    functionsReached:
    - actsetup
    - optget
    - logg
    - onas_set_sock_only_once
    - onas_check_remote
    linkageType: ''
    returnType: cl_error_t
    signature: cl_error_t onas_setup_client(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:472,1
    - Dst: onas_check_remote
      Src: /src/clamav/clamonacc/client/client.c:474,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:476,1
    - Dst: onas_curl_init
      Src: /src/clamav/clamonacc/client/client.c:481,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:481,1
    - Dst: onas_curl_init
      Src: /src/clamav/clamonacc/client/client.c:483,1
    - Dst: optget
      Src: /src/clamav/clamonacc/client/client.c:483,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:485,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:485,1
    - Dst: onas_recvlninit
      Src: /src/clamav/clamonacc/client/client.c:491,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamonacc/client/client.c:493,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:495,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:495,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:496,1
    - Dst: onas_sendln
      Src: /src/clamav/clamonacc/client/client.c:500,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:501,1
    - Dst: onas_recvln
      Src: /src/clamav/clamonacc/client/client.c:505,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:507,1
    - Dst: printf
      Src: /src/clamav/clamonacc/client/client.c:510,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct onas_context**
    constantsTouched: []
    func_position:
      end: 515
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 515
    functionName: onas_get_clamd_version
    functionSourceFile: /src/clamav/clamonacc/client/client.c
    functionUses: 1
    functionsReached:
    - onas_recvlninit
    - curl_easy_perform
    - curl_easy_strerror
    - printf
    - curl_easy_cleanup
    - onas_recvln
    - optget
    - logg
    - onas_curl_init
    - onas_sendln
    - onas_check_remote
    linkageType: ''
    returnType: int
    signature: int onas_get_clamd_version(struct onas_context **ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: onas_curl_init
      Src: /src/clamav/clamonacc/client/client.c:546,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:548,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:548,1
    - Dst: curl_easy_perform
      Src: /src/clamav/clamonacc/client/client.c:553,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:556,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/client.c:556,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:559,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:563,1
    - Dst: onas_dsresult
      Src: /src/clamav/clamonacc/client/client.c:567,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/client.c:570,1
    - Dst: curl_easy_cleanup
      Src: /src/clamav/clamonacc/client/client.c:574,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 11
    argNames:
    - tcpaddr
    - portnum
    - scantype
    - maxstream
    - fname
    - fd
    - timeout
    - sb
    - infected
    - err
    - ret_code
    argTypes:
    - char*
    - int64_t
    - int32_t
    - uint64_t
    - char*
    - int
    - int64_t
    - STATBUF
    - int*
    - int*
    - cl_error_t*
    constantsTouched: []
    func_position:
      end: 576
      start: 532
    functionDepth: 7
    functionLinenumber: 532
    functionLinenumberEnd: 576
    functionName: onas_client_scan
    functionSourceFile: /src/clamav/clamonacc/client/client.c
    functionUses: 1
    functionsReached:
    - curl_easy_perform
    - curl_easy_strerror
    - onas_dsresult
    - curl_easy_cleanup
    - logg
    - onas_curl_init
    linkageType: ''
    returnType: int
    signature: int onas_client_scan(const char *tcpaddr, int64_t portnum, int32_t
      scantype, uint64_t maxstream, const char *fname, int fd, int64_t timeout, STATBUF
      sb, int *infected, int *err, cl_error_t *ret_code)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/clamav/clamonacc/client/communication.c:63,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamonacc/client/communication.c:64,1
    - Dst: FD_ZERO
      Src: /src/clamav/clamonacc/client/communication.c:65,1
    - Dst: FD_SET
      Src: /src/clamav/clamonacc/client/communication.c:67,1
    - Dst: FD_SET
      Src: /src/clamav/clamonacc/client/communication.c:70,1
    - Dst: FD_SET
      Src: /src/clamav/clamonacc/client/communication.c:72,1
    - Dst: select
      Src: /src/clamav/clamonacc/client/communication.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - sockfd
    - b_recv
    - timeout_ms
    argTypes:
    - curl_socket_t
    - int32_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: onas_socket_wait
    functionSourceFile: /src/clamav/clamonacc/client/communication.c
    functionUses: 0
    functionsReached:
    - FD_ZERO
    - select
    - FD_SET
    linkageType: ''
    returnType: int
    signature: int onas_socket_wait(curl_socket_t sockfd, int32_t b_recv, uint64_t
      timeout_ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/clamav/clamonacc/client/communication.c:91,1
    - Dst: curl_easy_getinfo
      Src: /src/clamav/clamonacc/client/communication.c:95,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:100,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/communication.c:100,1
    - Dst: curl_easy_send
      Src: /src/clamav/clamonacc/client/communication.c:107,1
    - Dst: onas_socket_wait
      Src: /src/clamav/clamonacc/client/communication.c:108,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:109,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:122,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/client/communication.c:122,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:124,1
    - Dst: strerror
      Src: /src/clamav/clamonacc/client/communication.c:124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - curl
    - line
    - len
    - timeout
    argTypes:
    - CURL*
    - void*
    - size_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 135
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 135
    functionName: onas_sendln
    functionSourceFile: /src/clamav/clamonacc/client/communication.c
    functionUses: 5
    functionsReached:
    - onas_socket_wait
    - curl_easy_strerror
    - strerror
    - curl_easy_getinfo
    - logg
    - curl_easy_send
    linkageType: ''
    returnType: int
    signature: int onas_sendln(CURL *curl, const void *line, size_t len, int64_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rcv_data
    - curl
    - sockd
    argTypes:
    - struct onas_rcvln*
    - CURL*
    - int
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: onas_recvlninit
    functionSourceFile: /src/clamav/clamonacc/client/communication.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void onas_recvlninit(struct onas_rcvln *rcv_data, CURL *curl, int sockd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: curl_easy_getinfo
      Src: /src/clamav/clamonacc/client/communication.c:164,1
    - Dst: curl_easy_getinfo
      Src: /src/clamav/clamonacc/client/communication.c:168,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:173,1
    - Dst: curl_easy_strerror
      Src: /src/clamav/clamonacc/client/communication.c:173,1
    - Dst: curl_easy_recv
      Src: /src/clamav/clamonacc/client/communication.c:180,1
    - Dst: onas_socket_wait
      Src: /src/clamav/clamonacc/client/communication.c:183,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:184,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/client/communication.c:199,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:200,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:202,1
    - Dst: memchr
      Src: /src/clamav/clamonacc/client/communication.c:212,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:234,1
    - Dst: memmove
      Src: /src/clamav/clamonacc/client/communication.c:240,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 4
    argNames:
    - rcv_data
    - ret_bol
    - ret_eol
    - timeout
    argTypes:
    - struct onas_rcvln*
    - char**
    - char**
    - int64_t
    constantsTouched: []
    func_position:
      end: 248
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 248
    functionName: onas_recvln
    functionSourceFile: /src/clamav/clamonacc/client/communication.c
    functionUses: 1
    functionsReached:
    - onas_socket_wait
    - curl_easy_strerror
    - strcmp
    - curl_easy_recv
    - memchr
    - curl_easy_getinfo
    - logg
    - memmove
    linkageType: ''
    returnType: int
    signature: int onas_recvln(struct onas_rcvln *rcv_data, char **ret_bol, char **ret_eol,
      int64_t timeout)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamonacc/client/communication.c:263,1
    - Dst: recv
      Src: /src/clamav/clamonacc/client/communication.c:267,1
    - Dst: strcmp
      Src: /src/clamav/clamonacc/client/communication.c:275,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:276,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:278,1
    - Dst: memchr
      Src: /src/clamav/clamonacc/client/communication.c:284,1
    - Dst: logg
      Src: /src/clamav/clamonacc/client/communication.c:299,1
    - Dst: memmove
      Src: /src/clamav/clamonacc/client/communication.c:304,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - rcv_data
    - ret_bol
    - ret_eol
    - timeout_ms
    argTypes:
    - struct onas_rcvln*
    - char**
    - char**
    - int64_t
    constantsTouched: []
    func_position:
      end: 311
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 311
    functionName: onas_fd_recvln
    functionSourceFile: /src/clamav/clamonacc/client/communication.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSEDPARAM
    - memchr
    - recv
    - logg
    - memmove
    linkageType: ''
    returnType: int
    signature: int onas_fd_recvln(struct onas_rcvln *rcv_data, char **ret_bol, char
      **ret_eol, int64_t timeout_ms)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:134,1
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:136,1
    - Dst: jobqueue_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:143,1
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:144,1
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:145,1
    - Dst: malloc
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:150,1
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:152,1
    - Dst: jobqueue_destroy
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:153,1
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:154,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:158,1
    - Dst: pthread_cond_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:159,1
    - Dst: thread_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:164,1
    - Dst: printf
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 174
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 174
    functionName: thpool_init
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - jobqueue_init
    - pthread_mutex_init
    - thread_init
    - err
    - printf
    - jobqueue_destroy
    - malloc
    - pthread_cond_init
    - free
    linkageType: ''
    returnType: struct thpool_
    signature: struct thpool_ * thpool_init(int num_threads)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:181,1
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:183,1
    - Dst: jobqueue_push
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - thpool_p
    - arg_p
    argTypes:
    - thpool_*
    - void*
    constantsTouched: []
    func_position:
      end: 195
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 195
    functionName: thpool_add_work
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - err
    - malloc
    - jobqueue_push
    linkageType: ''
    returnType: int
    signature: int thpool_add_work(thpool_* thpool_p, void (*function_p)(void*), void*
      arg_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:200,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:202,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - thpool_p
    argTypes:
    - thpool_*
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: thpool_wait
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - pthread_cond_wait
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void thpool_wait(thpool_* thpool_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:222,1
    - Dst: bsem_post_all
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:224,1
    - Dst: time
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:225,1
    - Dst: difftime
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:226,1
    - Dst: bsem_post_all
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:231,1
    - Dst: sleep
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:232,1
    - Dst: jobqueue_destroy
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:236,1
    - Dst: thread_destroy
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:240,1
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:242,1
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - thpool_p
    argTypes:
    - thpool_*
    constantsTouched: []
    func_position:
      end: 244
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 244
    functionName: thpool_destroy
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - difftime
    - bsem_post_all
    - sleep
    - time
    - jobqueue_destroy
    - free
    - thread_destroy
    linkageType: ''
    returnType: void
    signature: void thpool_destroy(thpool_* thpool_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_kill
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - thpool_p
    argTypes:
    - thpool_*
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: thpool_pause
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 0
    functionsReached:
    - pthread_kill
    linkageType: ''
    returnType: void
    signature: void thpool_pause(thpool_* thpool_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - thpool_p
    argTypes:
    - thpool_*
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: thpool_resume
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thpool_resume(thpool_* thpool_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thpool_p
    argTypes:
    - thpool_*
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: thpool_num_threads_working
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int thpool_num_threads_working(thpool_* thpool_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:286,1
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:288,1
    - Dst: pthread_create
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:295,1
    - Dst: pthread_detach
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - thpool_p
    - thread_p
    - id
    argTypes:
    - thpool_*
    - struct thread**
    - int
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: thread_init
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - err
    - malloc
    - pthread_create
    - pthread_detach
    linkageType: ''
    returnType: int
    signature: int thread_init (thpool_* thpool_p, struct thread** thread_p, int id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig_id
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: thread_hold
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 0
    functionsReached:
    - sleep
    linkageType: ''
    returnType: void
    signature: void thread_hold(int sig_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:323,1
    - Dst: prctl
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:327,1
    - Dst: pthread_setname_np
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:329,1
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:331,1
    - Dst: sigemptyset
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:339,1
    - Dst: sigaction
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:342,1
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:343,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:347,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:349,1
    - Dst: bsem_wait
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:353,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:357,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:359,1
    - Dst: jobqueue_pull
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:364,1
    - Dst: func_buff
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:368,1
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:369,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:372,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:375,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:377,1
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:381,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - thread_p
    argTypes:
    - struct thread*
    constantsTouched: []
    func_position:
      end: 386
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 386
    functionName: thread_do
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - prctl
    - jobqueue_pull
    - snprintf
    - sigaction
    - pthread_mutex_unlock
    - bsem_wait
    - func_buff
    - err
    - pthread_setname_np
    - pthread_mutex_lock
    - pthread_cond_signal
    - free
    linkageType: ''
    returnType: void
    signature: void * thread_do(struct thread* thread_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thread_p
    argTypes:
    - thread*
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: thread_destroy
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void thread_destroy (thread* thread_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:407,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:412,1
    - Dst: bsem_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - jobqueue_p
    argTypes:
    - jobqueue*
    constantsTouched: []
    func_position:
      end: 416
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 416
    functionName: jobqueue_init
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - malloc
    - bsem_init
    - pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int jobqueue_init(jobqueue* jobqueue_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:423,1
    - Dst: jobqueue_pull
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:423,1
    - Dst: bsem_reset
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - jobqueue_p
    argTypes:
    - jobqueue*
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: jobqueue_clear
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 0
    functionsReached:
    - jobqueue_pull
    - bsem_reset
    - free
    linkageType: ''
    returnType: void
    signature: void jobqueue_clear(jobqueue* jobqueue_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:438,1
    - Dst: bsem_post
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:455,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - jobqueue_p
    - newjob
    argTypes:
    - jobqueue*
    - struct job*
    constantsTouched: []
    func_position:
      end: 457
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 457
    functionName: jobqueue_push
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - bsem_post
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void jobqueue_push(jobqueue* jobqueue_p, struct job* newjob)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:465,1
    - Dst: logg
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:474,1
    - Dst: syscall
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:474,1
    - Dst: logg
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:481,1
    - Dst: syscall
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:481,1
    - Dst: bsem_post
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:485,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - jobqueue_p
    argTypes:
    - jobqueue*
    constantsTouched: []
    func_position:
      end: 491
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 491
    functionName: jobqueue_pull
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 2
    functionsReached:
    - syscall
    - pthread_mutex_unlock
    - bsem_post
    - logg
    - pthread_mutex_lock
    linkageType: ''
    returnType: struct job
    signature: struct job * jobqueue_pull(jobqueue* jobqueue_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: jobqueue_clear
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:496,1
    - Dst: free
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - jobqueue_p
    argTypes:
    - jobqueue*
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: jobqueue_destroy
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 2
    functionsReached:
    - jobqueue_clear
    - free
    linkageType: ''
    returnType: void
    signature: void jobqueue_destroy(jobqueue* jobqueue_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: err
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:510,1
    - Dst: exit
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:511,1
    - Dst: pthread_mutex_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:513,1
    - Dst: pthread_cond_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bsem_p
    - value
    argTypes:
    - bsem*
    - int
    constantsTouched: []
    func_position:
      end: 516
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 516
    functionName: bsem_init
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - err
    - exit
    - pthread_cond_init
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void bsem_init(bsem *bsem_p, int value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsem_init
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bsem_p
    argTypes:
    - bsem*
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: bsem_reset
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - bsem_init
    linkageType: ''
    returnType: void
    signature: void bsem_reset(bsem *bsem_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:527,1
    - Dst: pthread_cond_signal
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:529,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bsem_p
    argTypes:
    - bsem*
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: bsem_post
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - pthread_cond_signal
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void bsem_post(bsem *bsem_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:536,1
    - Dst: pthread_cond_broadcast
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:538,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bsem_p
    argTypes:
    - bsem*
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: bsem_post_all
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - pthread_cond_broadcast
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void bsem_post_all(bsem *bsem_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:545,1
    - Dst: pthread_cond_wait
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:547,1
    - Dst: pthread_mutex_unlock
      Src: /src/clamav/clamonacc/c-thread-pool/thpool.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bsem_p
    argTypes:
    - bsem*
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: bsem_wait
    functionSourceFile: /src/clamav/clamonacc/c-thread-pool/thpool.c
    functionUses: 1
    functionsReached:
    - pthread_cond_wait
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void bsem_wait(bsem* bsem_p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: detail_exists
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int detail_exists(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: detail_exists
      Src: /src/clamav/clamdtop/clamdtop.c:149,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: detail_is_selected
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - detail_exists
    - assert
    linkageType: ''
    returnType: int
    signature: int detail_is_selected(int idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getmaxyx
      Src: /src/clamav/clamdtop/clamdtop.c:210,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:212,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:223,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:224,1
    - Dst: malloc
      Src: /src/clamav/clamdtop/clamdtop.c:225,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:226,1
    - Dst: malloc
      Src: /src/clamav/clamdtop/clamdtop.c:227,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:228,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:229,1
    - Dst: strncpy
      Src: /src/clamav/clamdtop/clamdtop.c:230,1
    - Dst: strncpy
      Src: /src/clamav/clamdtop/clamdtop.c:231,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:234,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:237,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:241,1
    - Dst: malloc
      Src: /src/clamav/clamdtop/clamdtop.c:242,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:243,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:244,1
    - Dst: strncpy
      Src: /src/clamav/clamdtop/clamdtop.c:245,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 251
    functionName: resize
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 2
    functionsReached:
    - OOM_CHECK
    - strlen
    - strncpy
    - getmaxyx
    - fprintf
    - malloc
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void resize(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: delwin
      Src: /src/clamav/clamdtop/clamdtop.c:256,1
    - Dst: delwin
      Src: /src/clamav/clamdtop/clamdtop.c:260,1
    - Dst: delwin
      Src: /src/clamav/clamdtop/clamdtop.c:264,1
    - Dst: delwin
      Src: /src/clamav/clamdtop/clamdtop.c:268,1
    - Dst: delwin
      Src: /src/clamav/clamdtop/clamdtop.c:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 275
    functionName: rm_windows
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - delwin
    linkageType: ''
    returnType: void
    signature: void rm_windows(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/clamav/clamdtop/clamdtop.c:279,1
    - Dst: rm_windows
      Src: /src/clamav/clamdtop/clamdtop.c:281,1
    - Dst: subwin
      Src: /src/clamav/clamdtop/clamdtop.c:283,1
    - Dst: subwin
      Src: /src/clamav/clamdtop/clamdtop.c:284,1
    - Dst: subwin
      Src: /src/clamav/clamdtop/clamdtop.c:286,1
    - Dst: subwin
      Src: /src/clamav/clamdtop/clamdtop.c:287,1
    - Dst: derwin
      Src: /src/clamav/clamdtop/clamdtop.c:289,1
    - Dst: touchwin
      Src: /src/clamav/clamdtop/clamdtop.c:290,1
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:291,1
    - Dst: refresh
      Src: /src/clamav/clamdtop/clamdtop.c:292,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - num_clamd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 301
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 301
    functionName: init_windows
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - memset
    - werase
    - touchwin
    - derwin
    - refresh
    - resize
    - subwin
    - rm_windows
    linkageType: ''
    returnType: void
    signature: void init_windows(int num_clamd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: newterm
      Src: /src/clamav/clamdtop/clamdtop.c:309,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:310,1
    - Dst: exit
      Src: /src/clamav/clamdtop/clamdtop.c:311,1
    - Dst: start_color
      Src: /src/clamav/clamdtop/clamdtop.c:315,1
    - Dst: keypad
      Src: /src/clamav/clamdtop/clamdtop.c:316,1
    - Dst: nonl
      Src: /src/clamav/clamdtop/clamdtop.c:317,1
    - Dst: halfdelay
      Src: /src/clamav/clamdtop/clamdtop.c:318,1
    - Dst: noecho
      Src: /src/clamav/clamdtop/clamdtop.c:319,1
    - Dst: curs_set
      Src: /src/clamav/clamdtop/clamdtop.c:320,1
    - Dst: use_default_colors
      Src: /src/clamav/clamdtop/clamdtop.c:322,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:324,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:325,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:326,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:327,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:328,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:329,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:330,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:331,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:332,1
    - Dst: init_pair
      Src: /src/clamav/clamdtop/clamdtop.c:333,1
    - Dst: init_windows
      Src: /src/clamav/clamdtop/clamdtop.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - num_clamd
    - use_default
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 336
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 336
    functionName: init_ncurses
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - start_color
    - exit
    - curs_set
    - fprintf
    - keypad
    - init_windows
    - halfdelay
    - noecho
    - use_default_colors
    - nonl
    - newterm
    - init_pair
    linkageType: ''
    returnType: void
    signature: void init_ncurses(int num_clamd, int use_default)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wattrset
      Src: /src/clamav/clamdtop/clamdtop.c:340,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:340,1
    - Dst: wbkgd
      Src: /src/clamav/clamdtop/clamdtop.c:341,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:341,1
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - win
    - col
    argTypes:
    - WINDOW*
    - enum colors
    constantsTouched: []
    func_position:
      end: 343
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 343
    functionName: win_start
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - wattrset
    - werase
    - COLOR_PAIR
    - wbkgd
    linkageType: ''
    returnType: void
    signature: void win_start(WINDOW *win, enum colors col)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:348,1
    - Dst: isdigit
      Src: /src/clamav/clamdtop/clamdtop.c:349,1
    - Dst: waddch
      Src: /src/clamav/clamdtop/clamdtop.c:350,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:351,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:352,1
    - Dst: isdigit
      Src: /src/clamav/clamdtop/clamdtop.c:353,1
    - Dst: waddch
      Src: /src/clamav/clamdtop/clamdtop.c:354,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - win
    - p
    argTypes:
    - WINDOW*
    - char*
    constantsTouched: []
    func_position:
      end: 357
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 357
    functionName: print_colored
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - wattroff
    - isdigit
    - waddch
    - wattron
    linkageType: ''
    returnType: void
    signature: void print_colored(WINDOW *win, const char *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: win_start
      Src: /src/clamav/clamdtop/clamdtop.c:364,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:365,1
    - Dst: get_version
      Src: /src/clamav/clamdtop/clamdtop.c:365,1
    - Dst: time
      Src: /src/clamav/clamdtop/clamdtop.c:366,1
    - Dst: wprintw
      Src: /src/clamav/clamdtop/clamdtop.c:367,1
    - Dst: ctime
      Src: /src/clamav/clamdtop/clamdtop.c:367,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:368,1
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:377,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:382,1
    - Dst: mvwaddch
      Src: /src/clamav/clamdtop/clamdtop.c:384,1
    - Dst: mvwaddch
      Src: /src/clamav/clamdtop/clamdtop.c:388,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:392,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:393,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:394,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 397
    functionName: header
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 31
    functionsReached:
    - wrefresh
    - werase
    - wprintw
    - strlen
    - win_start
    - mvwaddch
    - wattroff
    - wattron
    - ctime
    - time
    - get_version
    - mvwprintw
    linkageType: ''
    returnType: void
    signature: void header(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:409,1
    - Dst: mvwaddch
      Src: /src/clamav/clamdtop/clamdtop.c:410,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:411,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:411,1
    - Dst: waddch
      Src: /src/clamav/clamdtop/clamdtop.c:413,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:414,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:414,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:415,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:415,1
    - Dst: waddch
      Src: /src/clamav/clamdtop/clamdtop.c:417,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:418,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:418,1
    - Dst: waddch
      Src: /src/clamav/clamdtop/clamdtop.c:420,1
    - Dst: waddch
      Src: /src/clamav/clamdtop/clamdtop.c:421,1
    - Dst: getyx
      Src: /src/clamav/clamdtop/clamdtop.c:423,1
    - Dst: mvwaddch
      Src: /src/clamav/clamdtop/clamdtop.c:430,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:430,1
    - Dst: move
      Src: /src/clamav/clamdtop/clamdtop.c:431,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - win
    - i
    - live
    - idle
    - max
    - blink
    argTypes:
    - WINDOW*
    - size_t
    - unsigned
    - unsigned
    - unsigned
    - int
    constantsTouched: []
    func_position:
      end: 433
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 433
    functionName: show_bar
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - move
    - mvwaddch
    - wattroff
    - COLOR_PAIR
    - wattron
    - waddch
    - assert
    - getyx
    linkageType: ''
    returnType: void
    signature: "void show_bar(WINDOW *win, size_t i, unsigned live, unsigned idle,\n
      \                    unsigned max, int blink)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:446,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:447,1
    - Dst: rm_windows
      Src: /src/clamav/clamdtop/clamdtop.c:449,1
    - Dst: endwin
      Src: /src/clamav/clamdtop/clamdtop.c:450,1
    - Dst: delscreen
      Src: /src/clamav/clamdtop/clamdtop.c:451,1
    - Dst: send_string_noreconn
      Src: /src/clamav/clamdtop/clamdtop.c:456,1
    - Dst: close
      Src: /src/clamav/clamdtop/clamdtop.c:458,1
    - Dst: closesocket
      Src: /src/clamav/clamdtop/clamdtop.c:460,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:463,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:464,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:466,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:467,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:468,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:470,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:471,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:473,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:474,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:475,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:476,1
    - Dst: fputc
      Src: /src/clamav/clamdtop/clamdtop.c:477,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 479
    functionName: cleanup
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 16
    functionsReached:
    - wrefresh
    - close
    - werase
    - send_string_noreconn
    - endwin
    - fprintf
    - fputc
    - free
    - closesocket
    - rm_windows
    - delscreen
    linkageType: ''
    returnType: void
    signature: void cleanup(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/clamav/clamdtop/clamdtop.c:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - reason
    - func
    - line
    argTypes:
    - enum exit_reason
    - char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 512
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 512
    functionName: exit_program
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void exit_program(enum exit_reason reason, const char *func, unsigned
      line)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 529
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 529
    functionName: tasks_compare
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tasks_compare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/clamav/clamdtop/clamdtop.c:538,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:542,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:543,1
    - Dst: vsnprintf
      Src: /src/clamav/clamdtop/clamdtop.c:544,1
    - Dst: strrchr
      Src: /src/clamav/clamdtop/clamdtop.c:545,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:547,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:549,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:550,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:551,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:552,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:553,1
    - Dst: vfprintf
      Src: /src/clamav/clamdtop/clamdtop.c:555,1
    - Dst: va_end
      Src: /src/clamav/clamdtop/clamdtop.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - fmt
    argTypes:
    - conn_t*
    - char*
    constantsTouched: []
    func_position:
      end: 557
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 557
    functionName: print_con_info
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - OOM_CHECK
    - memset
    - wrefresh
    - vsnprintf
    - strlen
    - wattroff
    - vfprintf
    - wattron
    - va_start
    - va_end
    - strrchr
    - mvwprintw
    - free
    linkageType: ''
    returnType: void
    signature: void print_con_info(conn_t *conn, const char *fmt, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:575,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:581,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:583,1
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:589,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:590,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:597,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 608
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 608
    functionName: get_ip
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - strchr
    linkageType: ''
    returnType: char
    signature: char *get_ip(const char *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ip
      Src: /src/clamav/clamdtop/clamdtop.c:615,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:622,1
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:624,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:625,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 631
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 631
    functionName: get_port
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - strlen
    - get_ip
    - strdup
    - free
    linkageType: ''
    returnType: char
    signature: char *get_port(const char *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:643,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:643,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:645,1
    - Dst: calloc
      Src: /src/clamav/clamdtop/clamdtop.c:649,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 656
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 656
    functionName: make_ip
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - strlen
    - snprintf
    - calloc
    - strchr
    linkageType: ''
    returnType: char
    signature: char *make_ip(const char *host, const char *port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:669,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:670,1
    - Dst: cli_is_abspath
      Src: /src/clamav/clamdtop/clamdtop.c:675,1
    - Dst: access
      Src: /src/clamav/clamdtop/clamdtop.c:675,1
    - Dst: socket
      Src: /src/clamav/clamdtop/clamdtop.c:678,1
    - Dst: perror
      Src: /src/clamav/clamdtop/clamdtop.c:680,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:685,1
    - Dst: strncpy
      Src: /src/clamav/clamdtop/clamdtop.c:687,1
    - Dst: print_con_info
      Src: /src/clamav/clamdtop/clamdtop.c:690,1
    - Dst: connect
      Src: /src/clamav/clamdtop/clamdtop.c:691,1
    - Dst: perror
      Src: /src/clamav/clamdtop/clamdtop.c:692,1
    - Dst: close
      Src: /src/clamav/clamdtop/clamdtop.c:693,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:702,1
    - Dst: get_ip
      Src: /src/clamav/clamdtop/clamdtop.c:707,1
    - Dst: get_port
      Src: /src/clamav/clamdtop/clamdtop.c:713,1
    - Dst: print_con_info
      Src: /src/clamav/clamdtop/clamdtop.c:717,1
    - Dst: getaddrinfo
      Src: /src/clamav/clamdtop/clamdtop.c:718,1
    - Dst: print_con_info
      Src: /src/clamav/clamdtop/clamdtop.c:719,1
    - Dst: gai_strerror
      Src: /src/clamav/clamdtop/clamdtop.c:720,1
    - Dst: socket
      Src: /src/clamav/clamdtop/clamdtop.c:726,1
    - Dst: perror
      Src: /src/clamav/clamdtop/clamdtop.c:727,1
    - Dst: print_con_info
      Src: /src/clamav/clamdtop/clamdtop.c:731,1
    - Dst: connect
      Src: /src/clamav/clamdtop/clamdtop.c:732,1
    - Dst: perror
      Src: /src/clamav/clamdtop/clamdtop.c:733,1
    - Dst: close
      Src: /src/clamav/clamdtop/clamdtop.c:735,1
    - Dst: closesocket
      Src: /src/clamav/clamdtop/clamdtop.c:737,1
    - Dst: gettimeofday
      Src: /src/clamav/clamdtop/clamdtop.c:752,1
    - Dst: setsockopt
      Src: /src/clamav/clamdtop/clamdtop.c:755,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:760,1
    - Dst: make_ip
      Src: /src/clamav/clamdtop/clamdtop.c:763,1
    - Dst: freeaddrinfo
      Src: /src/clamav/clamdtop/clamdtop.c:768,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:773,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:778,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:783,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 98
    argCount: 2
    argNames:
    - soname
    - conn
    argTypes:
    - char*
    - conn_t*
    constantsTouched: []
    func_position:
      end: 788
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 788
    functionName: make_connection_real
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - getaddrinfo
    - cli_is_abspath
    - socket
    - gai_strerror
    - make_ip
    - access
    - strncpy
    - get_port
    - closesocket
    - perror
    - close
    - memset
    - free
    - freeaddrinfo
    - print_con_info
    - connect
    - OOM_CHECK
    - strdup
    - gettimeofday
    - setsockopt
    - get_ip
    linkageType: ''
    returnType: int
    signature: int make_connection_real(const char *soname, conn_t *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_connection_real
      Src: /src/clamav/clamdtop/clamdtop.c:798,1
    - Dst: send_string
      Src: /src/clamav/clamdtop/clamdtop.c:801,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:802,1
    - Dst: read_version
      Src: /src/clamav/clamdtop/clamdtop.c:804,1
    - Dst: make_connection_real
      Src: /src/clamav/clamdtop/clamdtop.c:808,1
    - Dst: send_string
      Src: /src/clamav/clamdtop/clamdtop.c:811,1
    - Dst: read_version
      Src: /src/clamav/clamdtop/clamdtop.c:813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - soname
    - conn
    argTypes:
    - char*
    - conn_t*
    constantsTouched: []
    func_position:
      end: 817
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 817
    functionName: make_connection
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - make_connection_real
    - read_version
    - free
    - send_string
    linkageType: ''
    returnType: int
    signature: int make_connection(const char *soname, conn_t *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:823,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:824,1
    - Dst: send
      Src: /src/clamav/clamdtop/clamdtop.c:825,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - cmd
    argTypes:
    - conn_t*
    - char*
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: send_string_noreconn
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 1
    functionsReached:
    - send
    - assert
    - strlen
    linkageType: ''
    returnType: int
    signature: int send_string_noreconn(conn_t *conn, const char *cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send_string_noreconn
      Src: /src/clamav/clamdtop/clamdtop.c:830,1
    - Dst: reconnect
      Src: /src/clamav/clamdtop/clamdtop.c:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - cmd
    argTypes:
    - conn_t*
    - char*
    constantsTouched: []
    func_position:
      end: 833
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 833
    functionName: send_string
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 1
    functionsReached:
    - reconnect
    - send_string_noreconn
    linkageType: ''
    returnType: void
    signature: void send_string(conn_t *conn, const char *cmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:839,1
    - Dst: close
      Src: /src/clamav/clamdtop/clamdtop.c:843,1
    - Dst: closesocket
      Src: /src/clamav/clamdtop/clamdtop.c:845,1
    - Dst: make_connection
      Src: /src/clamav/clamdtop/clamdtop.c:848,1
    - Dst: print_con_info
      Src: /src/clamav/clamdtop/clamdtop.c:849,1
    - Dst: strerror
      Src: /src/clamav/clamdtop/clamdtop.c:849,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - conn_t*
    constantsTouched: []
    func_position:
      end: 853
      start: 836
    functionDepth: 4
    functionLinenumber: 836
    functionLinenumberEnd: 853
    functionName: reconnect
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 1
    functionsReached:
    - print_con_info
    - make_connection
    - close
    - strerror
    - EXIT_PROGRAM
    - closesocket
    linkageType: ''
    returnType: void
    signature: void reconnect(conn_t *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:857,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:858,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:859,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:864,1
    - Dst: print_con_info
      Src: /src/clamav/clamdtop/clamdtop.c:868,1
    - Dst: strerror
      Src: /src/clamav/clamdtop/clamdtop.c:868,1
    - Dst: send_string_noreconn
      Src: /src/clamav/clamdtop/clamdtop.c:870,1
    - Dst: close
      Src: /src/clamav/clamdtop/clamdtop.c:872,1
    - Dst: closesocket
      Src: /src/clamav/clamdtop/clamdtop.c:874,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:884,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:885,1
    - Dst: recv
      Src: /src/clamav/clamdtop/clamdtop.c:886,1
    - Dst: reconnect
      Src: /src/clamav/clamdtop/clamdtop.c:888,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:890,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - conn
    - buf
    - len
    argTypes:
    - conn_t*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 899
      start: 855
    functionDepth: 5
    functionLinenumber: 855
    functionLinenumberEnd: 899
    functionName: recv_line
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - print_con_info
    - close
    - reconnect
    - send_string_noreconn
    - strerror
    - recv
    - closesocket
    - assert
    linkageType: ''
    returnType: int
    signature: int recv_line(conn_t *conn, char *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/clamav/clamdtop/clamdtop.c:906,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:907,1
    - Dst: detail_is_selected
      Src: /src/clamav/clamdtop/clamdtop.c:909,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:914,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:914,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:916,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:918,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:919,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:919,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:927,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:928,1
    - Dst: strncpy
      Src: /src/clamav/clamdtop/clamdtop.c:932,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:941,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:943,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:945,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:946,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:947,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:948,1
    - Dst: getcury
      Src: /src/clamav/clamdtop/clamdtop.c:949,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:961,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:961,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:962,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:963,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:963,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:965,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 2
    argNames:
    - line
    - max
    argTypes:
    - size_t
    - ssize_t
    constantsTouched: []
    func_position:
      end: 966
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 966
    functionName: output_queue
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - OOM_CHECK
    - calloc
    - wattroff
    - strncpy
    - COLOR_PAIR
    - strchr
    - wattron
    - getcury
    - detail_is_selected
    - mvwprintw
    - assert
    - free
    linkageType: ''
    returnType: void
    signature: void output_queue(size_t line, ssize_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/clamav/clamdtop/clamdtop.c:977,1
    - Dst: realloc
      Src: /src/clamav/clamdtop/clamdtop.c:980,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:981,1
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:982,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:983,1
    - Dst: recv_line
      Src: /src/clamav/clamdtop/clamdtop.c:986,1
    - Dst: strcmp
      Src: /src/clamav/clamdtop/clamdtop.c:986,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - conn
    - buf
    - len
    - idx
    argTypes:
    - conn_t*
    - char*
    - size_t
    - unsigned
    constantsTouched: []
    func_position:
      end: 987
      start: 970
    functionDepth: 6
    functionLinenumber: 970
    functionLinenumberEnd: 987
    functionName: parse_queue
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - sscanf
    - OOM_CHECK
    - strcmp
    - realloc
    - strdup
    - recv_line
    linkageType: ''
    returnType: void
    signature: void parse_queue(conn_t *conn, char *buf, size_t len, unsigned idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:997,1
    - Dst: box
      Src: /src/clamav/clamdtop/clamdtop.c:999,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1002,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1005,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1006,1
    - Dst: print_colored
      Src: /src/clamav/clamdtop/clamdtop.c:1007,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1009,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1011,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1014,1
    - Dst: print_colored
      Src: /src/clamav/clamdtop/clamdtop.c:1015,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1017,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1018,1
    - Dst: print_colored
      Src: /src/clamav/clamdtop/clamdtop.c:1020,1
    - Dst: show_bar
      Src: /src/clamav/clamdtop/clamdtop.c:1027,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:1031,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct stats*
    constantsTouched: []
    func_position:
      end: 1032
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1032
    functionName: output_memstats
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - snprintf
    - werase
    - show_bar
    - print_colored
    - mvwprintw
    - box
    linkageType: ''
    returnType: void
    signature: void output_memstats(struct stats *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/clamav/clamdtop/clamdtop.c:1036,1
    - Dst: sscanf
      Src: /src/clamav/clamdtop/clamdtop.c:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - line
    - stats
    argTypes:
    - char*
    - struct stats*
    constantsTouched: []
    func_position:
      end: 1048
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1048
    functionName: parse_memstats
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: void
    signature: void parse_memstats(const char *line, struct stats *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1062,1
    - Dst: strncpy
      Src: /src/clamav/clamdtop/clamdtop.c:1065,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1085,1
    - Dst: strncpy
      Src: /src/clamav/clamdtop/clamdtop.c:1091,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1094,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:1100,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1102,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1109,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:1114,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:1116,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1116,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1118,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:1120,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1120,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:1123,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1123,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1124,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:1125,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1125,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:1130,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1131,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:1133,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:1134,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1134,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1135,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:1136,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1136,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1137,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1138,1
    - Dst: print_colored
      Src: /src/clamav/clamdtop/clamdtop.c:1139,1
    - Dst: show_bar
      Src: /src/clamav/clamdtop/clamdtop.c:1140,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1153,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1154,1
    - Dst: print_colored
      Src: /src/clamav/clamdtop/clamdtop.c:1155,1
    - Dst: show_bar
      Src: /src/clamav/clamdtop/clamdtop.c:1156,1
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:1158,1
    - Dst: output_memstats
      Src: /src/clamav/clamdtop/clamdtop.c:1159,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:1161,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 76
    argCount: 2
    argNames:
    - stats
    - idx
    argTypes:
    - struct stats*
    - unsigned
    constantsTouched: []
    func_position:
      end: 1163
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1163
    functionName: output_stats
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - OOM_CHECK
    - memset
    - snprintf
    - show_bar
    - werase
    - strlen
    - strncpy
    - wattroff
    - COLOR_PAIR
    - print_colored
    - wattron
    - free
    - mvwprintw
    - output_memstats
    linkageType: ''
    returnType: int
    signature: int output_stats(struct stats *stats, unsigned idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:1168,1
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:1169,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:1170,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1170,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1171,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:1172,1
    - Dst: COLOR_PAIR
      Src: /src/clamav/clamdtop/clamdtop.c:1172,1
    - Dst: output_queue
      Src: /src/clamav/clamdtop/clamdtop.c:1178,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:1179,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:1180,1
    - Dst: detail_exists
      Src: /src/clamav/clamdtop/clamdtop.c:1181,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:1183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1185
    functionName: output_all
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - werase
    - detail_exists
    - wattroff
    - COLOR_PAIR
    - output_queue
    - wattron
    - mvwprintw
    linkageType: ''
    returnType: void
    signature: void output_all(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:1202,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1203,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:1206,1
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:1208,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1209,1
    - Dst: isdigit
      Src: /src/clamav/clamdtop/clamdtop.c:1213,1
    - Dst: malloc
      Src: /src/clamav/clamdtop/clamdtop.c:1224,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1225,1
    - Dst: memcpy
      Src: /src/clamav/clamdtop/clamdtop.c:1227,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:1230,1
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:1232,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1233,1
    - Dst: strchr
      Src: /src/clamav/clamdtop/clamdtop.c:1236,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:1238,1
    - Dst: malloc
      Src: /src/clamav/clamdtop/clamdtop.c:1239,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1240,1
    - Dst: memcpy
      Src: /src/clamav/clamdtop/clamdtop.c:1241,1
    - Dst: strptime
      Src: /src/clamav/clamdtop/clamdtop.c:1244,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:1245,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:1248,1
    - Dst: gettimeofday
      Src: /src/clamav/clamdtop/clamdtop.c:1253,1
    - Dst: recv_line
      Src: /src/clamav/clamdtop/clamdtop.c:1264,1
    - Dst: strcmp
      Src: /src/clamav/clamdtop/clamdtop.c:1264,1
    - Dst: parse_queue
      Src: /src/clamav/clamdtop/clamdtop.c:1268,1
    - Dst: strcmp
      Src: /src/clamav/clamdtop/clamdtop.c:1272,1
    - Dst: parse_memstats
      Src: /src/clamav/clamdtop/clamdtop.c:1273,1
    - Dst: strncmp
      Src: /src/clamav/clamdtop/clamdtop.c:1276,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:1280,1
    - Dst: tolower
      Src: /src/clamav/clamdtop/clamdtop.c:1281,1
    - Dst: strncmp
      Src: /src/clamav/clamdtop/clamdtop.c:1292,1
    - Dst: strstr
      Src: /src/clamav/clamdtop/clamdtop.c:1293,1
    - Dst: strcmp
      Src: /src/clamav/clamdtop/clamdtop.c:1301,1
    - Dst: sscanf
      Src: /src/clamav/clamdtop/clamdtop.c:1303,1
    - Dst: assert
      Src: /src/clamav/clamdtop/clamdtop.c:1308,1
    - Dst: strcmp
      Src: /src/clamav/clamdtop/clamdtop.c:1314,1
    - Dst: sscanf
      Src: /src/clamav/clamdtop/clamdtop.c:1316,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 104
    argCount: 3
    argNames:
    - conn
    - stats
    - idx
    argTypes:
    - conn_t*
    - struct stats*
    - unsigned
    constantsTouched: []
    func_position:
      end: 1321
      start: 1187
    functionDepth: 7
    functionLinenumber: 1187
    functionLinenumberEnd: 1321
    functionName: parse_stats
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - tolower
    - strcmp
    - strstr
    - parse_queue
    - sscanf
    - memset
    - strptime
    - recv_line
    - malloc
    - OOM_CHECK
    - parse_memstats
    - strlen
    - strdup
    - strchr
    - gettimeofday
    - memcpy
    - assert
    - strncmp
    - isdigit
    linkageType: ''
    returnType: void
    signature: void parse_stats(conn_t *conn, struct stats *stats, unsigned idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recv_line
      Src: /src/clamav/clamdtop/clamdtop.c:1327,1
    - Dst: strcmp
      Src: /src/clamav/clamdtop/clamdtop.c:1329,1
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:1332,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1333,1
    - Dst: strlen
      Src: /src/clamav/clamdtop/clamdtop.c:1334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - conn_t*
    constantsTouched: []
    func_position:
      end: 1338
      start: 1323
    functionDepth: 6
    functionLinenumber: 1323
    functionLinenumberEnd: 1338
    functionName: read_version
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 1
    functionsReached:
    - OOM_CHECK
    - strcmp
    - strlen
    - strdup
    - recv_line
    linkageType: ''
    returnType: int
    signature: int read_version(conn_t *conn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/clamdtop/clamdtop.c:1342,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1344
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1344
    functionName: sigint
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - EXIT_PROGRAM
    linkageType: ''
    returnType: void
    signature: void sigint(int a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1348,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1349,1
    - Dst: get_version
      Src: /src/clamav/clamdtop/clamdtop.c:1349,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1350,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1351,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1352,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1353,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1354,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1355,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1356,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1357,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1358,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1359,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1360,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1363
    functionName: help
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 4
    functionsReached:
    - get_version
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optparse
      Src: /src/clamav/clamdtop/clamdtop.c:1373,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1375,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:1376,1
    - Dst: optget
      Src: /src/clamav/clamdtop/clamdtop.c:1379,1
    - Dst: optfree
      Src: /src/clamav/clamdtop/clamdtop.c:1380,1
    - Dst: help
      Src: /src/clamav/clamdtop/clamdtop.c:1381,1
    - Dst: exit
      Src: /src/clamav/clamdtop/clamdtop.c:1383,1
    - Dst: optget
      Src: /src/clamav/clamdtop/clamdtop.c:1386,1
    - Dst: printf
      Src: /src/clamav/clamdtop/clamdtop.c:1387,1
    - Dst: get_version
      Src: /src/clamav/clamdtop/clamdtop.c:1387,1
    - Dst: optfree
      Src: /src/clamav/clamdtop/clamdtop.c:1388,1
    - Dst: exit
      Src: /src/clamav/clamdtop/clamdtop.c:1390,1
    - Dst: optget
      Src: /src/clamav/clamdtop/clamdtop.c:1393,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:1396,1
    - Dst: optparse
      Src: /src/clamav/clamdtop/clamdtop.c:1401,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1402,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:1403,1
    - Dst: optget
      Src: /src/clamav/clamdtop/clamdtop.c:1406,1
    - Dst: strdup
      Src: /src/clamav/clamdtop/clamdtop.c:1407,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1409,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:1410,1
    - Dst: optget
      Src: /src/clamav/clamdtop/clamdtop.c:1412,1
    - Dst: optget
      Src: /src/clamav/clamdtop/clamdtop.c:1416,1
    - Dst: snprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1419,1
    - Dst: make_ip
      Src: /src/clamav/clamdtop/clamdtop.c:1420,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1422,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:1423,1
    - Dst: optfree
      Src: /src/clamav/clamdtop/clamdtop.c:1426,1
    - Dst: WSAStartup
      Src: /src/clamav/clamdtop/clamdtop.c:1438,1
    - Dst: MAKEWORD
      Src: /src/clamav/clamdtop/clamdtop.c:1438,1
    - Dst: fprintf
      Src: /src/clamav/clamdtop/clamdtop.c:1439,1
    - Dst: WSAGetLastError
      Src: /src/clamav/clamdtop/clamdtop.c:1439,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:1440,1
    - Dst: puts
      Src: /src/clamav/clamdtop/clamdtop.c:1444,1
    - Dst: puts
      Src: /src/clamav/clamdtop/clamdtop.c:1445,1
    - Dst: puts
      Src: /src/clamav/clamdtop/clamdtop.c:1446,1
    - Dst: puts
      Src: /src/clamav/clamdtop/clamdtop.c:1447,1
    - Dst: puts
      Src: /src/clamav/clamdtop/clamdtop.c:1448,1
    - Dst: puts
      Src: /src/clamav/clamdtop/clamdtop.c:1449,1
    - Dst: calloc
      Src: /src/clamav/clamdtop/clamdtop.c:1451,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1452,1
    - Dst: calloc
      Src: /src/clamav/clamdtop/clamdtop.c:1453,1
    - Dst: OOM_CHECK
      Src: /src/clamav/clamdtop/clamdtop.c:1454,1
    - Dst: make_connection
      Src: /src/clamav/clamdtop/clamdtop.c:1464,1
    - Dst: EXIT_PROGRAM
      Src: /src/clamav/clamdtop/clamdtop.c:1465,1
    - Dst: optfree
      Src: /src/clamav/clamdtop/clamdtop.c:1469,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:1470,1
    - Dst: signal
      Src: /src/clamav/clamdtop/clamdtop.c:1472,1
    - Dst: signal
      Src: /src/clamav/clamdtop/clamdtop.c:1473,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1475
      start: 1366
    functionDepth: 5
    functionLinenumber: 1366
    functionLinenumberEnd: 1475
    functionName: setup_connections
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - help
    - make_connection
    - snprintf
    - EXIT_PROGRAM
    - printf
    - get_version
    - make_ip
    - optfree
    - optget
    - signal
    - memset
    - calloc
    - fprintf
    - optparse
    - free
    - WSAStartup
    - OOM_CHECK
    - exit
    - strdup
    - MAKEWORD
    - puts
    - WSAGetLastError
    linkageType: ''
    returnType: void
    signature: void setup_connections(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:1481,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:1484,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:1485,1
    - Dst: free
      Src: /src/clamav/clamdtop/clamdtop.c:1487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1490
    functionName: free_global_stats
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_global_stats(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:1495,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1496,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:1497,1
    - Dst: wprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - abbrev
    - msg
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1499
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1499
    functionName: explain
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - wprintw
    - wattroff
    - mvwprintw
    - wattron
    linkageType: ''
    returnType: void
    signature: void explain(const char *abbrev, const char *msg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:1504,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1507,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1508,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1509,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1510,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1511,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1512,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1513,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1514,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1515,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1516,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1517,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1518,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1520,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1521,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1522,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1523,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1524,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1525,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1526,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1527,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1528,1
    - Dst: explain
      Src: /src/clamav/clamdtop/clamdtop.c:1529,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:1531,1
    - Dst: werase
      Src: /src/clamav/clamdtop/clamdtop.c:1532,1
    - Dst: wattron
      Src: /src/clamav/clamdtop/clamdtop.c:1533,1
    - Dst: mvwprintw
      Src: /src/clamav/clamdtop/clamdtop.c:1534,1
    - Dst: wattroff
      Src: /src/clamav/clamdtop/clamdtop.c:1535,1
    - Dst: wrefresh
      Src: /src/clamav/clamdtop/clamdtop.c:1536,1
    - Dst: getch
      Src: /src/clamav/clamdtop/clamdtop.c:1539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1544
    functionName: show_help
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - werase
    - explain
    - wattroff
    - wattron
    - getch
    - mvwprintw
    linkageType: ''
    returnType: int
    signature: int show_help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atexit
      Src: /src/clamav/clamdtop/clamdtop.c:1552,1
    - Dst: setup_connections
      Src: /src/clamav/clamdtop/clamdtop.c:1553,1
    - Dst: init_ncurses
      Src: /src/clamav/clamdtop/clamdtop.c:1554,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:1556,1
    - Dst: toupper
      Src: /src/clamav/clamdtop/clamdtop.c:1558,1
    - Dst: show_help
      Src: /src/clamav/clamdtop/clamdtop.c:1559,1
    - Dst: resize
      Src: /src/clamav/clamdtop/clamdtop.c:1563,1
    - Dst: endwin
      Src: /src/clamav/clamdtop/clamdtop.c:1564,1
    - Dst: refresh
      Src: /src/clamav/clamdtop/clamdtop.c:1565,1
    - Dst: init_windows
      Src: /src/clamav/clamdtop/clamdtop.c:1566,1
    - Dst: gettimeofday
      Src: /src/clamav/clamdtop/clamdtop.c:1593,1
    - Dst: header
      Src: /src/clamav/clamdtop/clamdtop.c:1594,1
    - Dst: free_global_stats
      Src: /src/clamav/clamdtop/clamdtop.c:1596,1
    - Dst: send_string
      Src: /src/clamav/clamdtop/clamdtop.c:1601,1
    - Dst: memset
      Src: /src/clamav/clamdtop/clamdtop.c:1603,1
    - Dst: parse_stats
      Src: /src/clamav/clamdtop/clamdtop.c:1605,1
    - Dst: qsort
      Src: /src/clamav/clamdtop/clamdtop.c:1608,1
    - Dst: output_all
      Src: /src/clamav/clamdtop/clamdtop.c:1612,1
    - Dst: reconnect
      Src: /src/clamav/clamdtop/clamdtop.c:1615,1
    - Dst: toupper
      Src: /src/clamav/clamdtop/clamdtop.c:1617,1
    - Dst: getch
      Src: /src/clamav/clamdtop/clamdtop.c:1617,1
    - Dst: free_global_stats
      Src: /src/clamav/clamdtop/clamdtop.c:1618,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 1621
      start: 1546
    functionDepth: 8
    functionLinenumber: 1546
    functionLinenumberEnd: 1621
    functionName: main
    functionSourceFile: /src/clamav/clamdtop/clamdtop.c
    functionUses: 4
    functionsReached:
    - atexit
    - send_string
    - refresh
    - getch
    - init_windows
    - show_help
    - resize
    - header
    - setup_connections
    - memset
    - parse_stats
    - output_all
    - toupper
    - init_ncurses
    - reconnect
    - endwin
    - free_global_stats
    - qsort
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:69,1
    - Dst: isprint
      Src: /src/clamav/sigtool/vba.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - name
    - size
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 87
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: get_unicode_name
    functionSourceFile: /src/clamav/sigtool/vba.c
    functionUses: 2
    functionsReached:
    - malloc
    - isprint
    linkageType: ''
    returnType: char
    signature: char *get_unicode_name(char *name, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:178,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - token
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 184
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 184
    functionName: output_token
    functionSourceFile: /src/clamav/sigtool/vba.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void output_token(unsigned char token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:529,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - token
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 535
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 535
    functionName: output_token67
    functionSourceFile: /src/clamav/sigtool/vba.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void output_token67(uint16_t token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:781,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - token
    argTypes:
    - uint16_t
    constantsTouched: []
    func_position:
      end: 787
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 787
    functionName: output_token73
    functionSourceFile: /src/clamav/sigtool/vba.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void output_token73(uint16_t token)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:795,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:797,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - start
    - end
    - hex_output
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 801
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 801
    functionName: print_hex_buff
    functionSourceFile: /src/clamav/sigtool/vba.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_hex_buff(unsigned char *start, unsigned char *end, int hex_output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:819,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:820,1
    - Dst: print_hex_buff
      Src: /src/clamav/sigtool/vba.c:822,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:823,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:824,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:830,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:831,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:833,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:834,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:839,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:840,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:842,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:843,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:848,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:849,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:851,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:852,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:857,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:858,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:860,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:861,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:866,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:867,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:869,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:870,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:875,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:876,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:878,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:879,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:884,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/vba.c:885,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:887,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:888,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:893,1
    - Dst: memcpy
      Src: /src/clamav/sigtool/vba.c:894,1
    - Dst: get_unicode_name
      Src: /src/clamav/sigtool/vba.c:895,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:896,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:897,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:898,1
    - Dst: malloc
      Src: /src/clamav/sigtool/vba.c:904,1
    - Dst: memcpy
      Src: /src/clamav/sigtool/vba.c:905,1
    - Dst: get_unicode_name
      Src: /src/clamav/sigtool/vba.c:906,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:907,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:908,1
    - Dst: free
      Src: /src/clamav/sigtool/vba.c:909,1
    - Dst: print_hex_buff
      Src: /src/clamav/sigtool/vba.c:915,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:916,1
    - Dst: output_token67
      Src: /src/clamav/sigtool/vba.c:922,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:927,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:932,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:938,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:945,1
    - Dst: output_token73
      Src: /src/clamav/sigtool/vba.c:951,1
    - Dst: print_hex_buff
      Src: /src/clamav/sigtool/vba.c:955,1
    - Dst: printf
      Src: /src/clamav/sigtool/vba.c:956,1
    - Dst: output_token
      Src: /src/clamav/sigtool/vba.c:961,1
    - Dst: print_hex_buff
      Src: /src/clamav/sigtool/vba.c:966,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 152
    argCount: 3
    argNames:
    - buff
    - len
    - hex_output
    argTypes:
    - unsigned char*
    - uint32_t
    - int
    constantsTouched: []
    func_position:
      end: 967
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 967
    functionName: wm_decode_macro
    functionSourceFile: /src/clamav/sigtool/vba.c
    functionUses: 0
    functionsReached:
    - print_hex_buff
    - get_unicode_name
    - strncpy
    - output_token
    - printf
    - output_token67
    - memcpy
    - malloc
    - free
    - output_token73
    linkageType: ''
    returnType: void
    signature: void wm_decode_macro(unsigned char *buff, uint32_t len, int hex_output)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:125,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:125,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:125,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:129,1
    - Dst: MIN
      Src: /src/clamav/sigtool/sigtool.c:129,1
    - Dst: MIN
      Src: /src/clamav/sigtool/sigtool.c:130,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:132,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:135,1
    - Dst: MIN
      Src: /src/clamav/sigtool/sigtool.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - str
    - dst
    - dstlen
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 139
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 139
    functionName: getdbname
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - MIN
    - malloc
    - strncpy
    - cli_strbcasestr
    linkageType: ''
    returnType: char
    signature: char *getdbname(const char *str, char *dst, int dstlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/clamav/sigtool/sigtool.c:146,1
    - Dst: cli_str2hex
      Src: /src/clamav/sigtool/sigtool.c:147,1
    - Dst: write
      Src: /src/clamav/sigtool/sigtool.c:148,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:149,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:150,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 160
    functionName: hexdump
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - write
    - cli_str2hex
    - read
    - free
    - mprintf
    linkageType: ''
    returnType: int
    signature: int hexdump(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:175,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:177,1
    - Dst: lseek
      Src: /src/clamav/sigtool/sigtool.c:181,1
    - Dst: FSTAT
      Src: /src/clamav/sigtool/sigtool.c:182,1
    - Dst: fmap
      Src: /src/clamav/sigtool/sigtool.c:184,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:186,1
    - Dst: cl_engine_new
      Src: /src/clamav/sigtool/sigtool.c:191,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:192,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/sigtool/sigtool.c:195,1
    - Dst: cli_initroots
      Src: /src/clamav/sigtool/sigtool.c:197,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:198,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/sigtool/sigtool.c:202,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:203,1
    - Dst: cl_engine_compile
      Src: /src/clamav/sigtool/sigtool.c:207,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:208,1
    - Dst: evidence_new
      Src: /src/clamav/sigtool/sigtool.c:215,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:222,1
    - Dst: fmap_need_off_once
      Src: /src/clamav/sigtool/sigtool.c:234,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:236,1
    - Dst: cl_debug
      Src: /src/clamav/sigtool/sigtool.c:240,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 3
    argNames:
    - filename
    - class
    - type
    argTypes:
    - char*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 253
      start: 162
    functionDepth: 8
    functionLinenumber: 162
    functionLinenumberEnd: 253
    functionName: hashpe
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - fmap
    - lseek
    - cli_add_content_match_pattern
    - calloc
    - cl_engine_compile
    - open
    - fmap_need_off_once
    - cl_engine_set_num
    - FSTAT
    - evidence_new
    - cl_engine_new
    - cli_initroots
    - cl_debug
    - mprintf
    linkageType: ''
    returnType: int
    signature: int hashpe(const char *filename, unsigned int class, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMSTAT
      Src: /src/clamav/sigtool/sigtool.c:303,1
    - Dst: perror
      Src: /src/clamav/sigtool/sigtool.c:304,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:305,1
    - Dst: cli_hashfile
      Src: /src/clamav/sigtool/sigtool.c:309,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:310,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:310,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:311,1
    - Dst: hashpe
      Src: /src/clamav/sigtool/sigtool.c:312,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:315,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:324,1
    - Dst: cli_hashstream
      Src: /src/clamav/sigtool/sigtool.c:327,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:329,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:332,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - opts
    - class
    - type
    argTypes:
    - struct optstruct*
    - unsigned int
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 295
    functionDepth: 9
    functionLinenumber: 295
    functionLinenumberEnd: 337
    functionName: hashsig
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - perror
    - cli_hashstream
    - CLAMSTAT
    - hashpe
    - basename
    - cli_hashfile
    - free
    - mprintf
    linkageType: ''
    returnType: int
    signature: int hashsig(const struct optstruct *opts, unsigned int class, int type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:351,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:353,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:353,1
    - Dst: cli_strerror
      Src: /src/clamav/sigtool/sigtool.c:353,1
    - Dst: FSTAT
      Src: /src/clamav/sigtool/sigtool.c:357,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:359,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:359,1
    - Dst: cli_strerror
      Src: /src/clamav/sigtool/sigtool.c:359,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:363,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:364,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:364,1
    - Dst: read
      Src: /src/clamav/sigtool/sigtool.c:368,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:371,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:371,1
    - Dst: cli_strerror
      Src: /src/clamav/sigtool/sigtool.c:371,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:375,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:375,1
    - Dst: fuzzy_hash_calculate_image
      Src: /src/clamav/sigtool/sigtool.c:379,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:380,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:381,1
    - Dst: ffierror_fmt
      Src: /src/clamav/sigtool/sigtool.c:382,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:387,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:390,1
    - Dst: basename
      Src: /src/clamav/sigtool/sigtool.c:390,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:397,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:401,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:405,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 409
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 409
    functionName: fuzzy_img_file
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - ffierror_fmt
    - open
    - cli_strerror
    - ffierror_free
    - FSTAT
    - basename
    - read
    - fuzzy_hash_calculate_image
    - malloc
    - free
    - mprintf
    linkageType: ''
    returnType: int
    signature: int fuzzy_img_file(char *filename)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:419,1
    - Dst: fuzzy_img_file
      Src: /src/clamav/sigtool/sigtool.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 435
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 435
    functionName: fuzzy_img
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - fuzzy_img_file
    - mprintf
    linkageType: ''
    returnType: int
    signature: int fuzzy_img(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_new
      Src: /src/clamav/sigtool/sigtool.c:445,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:447,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/sigtool/sigtool.c:451,1
    - Dst: cli_initroots
      Src: /src/clamav/sigtool/sigtool.c:453,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:454,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/sigtool/sigtool.c:458,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:459,1
    - Dst: cl_engine_compile
      Src: /src/clamav/sigtool/sigtool.c:463,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:464,1
    - Dst: fmap
      Src: /src/clamav/sigtool/sigtool.c:469,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:471,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:476,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:478,1
    - Dst: evidence_new
      Src: /src/clamav/sigtool/sigtool.c:484,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:489,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:502,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:504,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:515,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:519,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:522,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:524,1
    - Dst: cl_engine_free
      Src: /src/clamav/sigtool/sigtool.c:528,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 533
      start: 437
    functionDepth: 8
    functionLinenumber: 437
    functionLinenumberEnd: 533
    functionName: convenience_ctx
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - fmap
    - cli_add_content_match_pattern
    - calloc
    - funmap
    - cl_engine_compile
    - cl_engine_free
    - cl_engine_set_num
    - printf
    - evidence_new
    - cl_engine_new
    - cli_initroots
    - free
    linkageType: ''
    returnType: cli_ctx
    signature: cli_ctx *convenience_ctx(int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:542,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:548,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:552,1
    - Dst: cl_engine_free
      Src: /src/clamav/sigtool/sigtool.c:557,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:562,1
    - Dst: evidence_free
      Src: /src/clamav/sigtool/sigtool.c:567,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - cli_ctx*
    constantsTouched: []
    func_position:
      end: 572
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 572
    functionName: destroy_ctx
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - free
    - cl_engine_free
    - funmap
    - evidence_free
    linkageType: ''
    returnType: void
    signature: void destroy_ctx(cli_ctx *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:579,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:579,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:580,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:580,1
    - Dst: convenience_ctx
      Src: /src/clamav/sigtool/sigtool.c:584,1
    - Dst: html_normalise_map
      Src: /src/clamav/sigtool/sigtool.c:585,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:586,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:588,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:590,1
    - Dst: destroy_ctx
      Src: /src/clamav/sigtool/sigtool.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 595
      start: 574
    functionDepth: 9
    functionLinenumber: 574
    functionLinenumberEnd: 595
    functionName: htmlnorm
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - close
    - funmap
    - convenience_ctx
    - open
    - destroy_ctx
    - optget
    - html_normalise_map
    - mprintf
    linkageType: ''
    returnType: int
    signature: int htmlnorm(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:606,1
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:607,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:610,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:614,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:615,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:616,1
    - Dst: fmap
      Src: /src/clamav/sigtool/sigtool.c:620,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:621,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:622,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:623,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:628,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:629,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:630,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:631,1
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:635,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:637,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:638,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:639,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:640,1
    - Dst: text_normalize_init
      Src: /src/clamav/sigtool/sigtool.c:644,1
    - Dst: text_normalize_map
      Src: /src/clamav/sigtool/sigtool.c:649,1
    - Dst: write
      Src: /src/clamav/sigtool/sigtool.c:652,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:653,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:654,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:655,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:656,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:657,1
    - Dst: text_normalize_reset
      Src: /src/clamav/sigtool/sigtool.c:660,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:663,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:664,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:665,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:666,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 668
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 668
    functionName: asciinorm
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - fmap
    - close
    - text_normalize_init
    - funmap
    - text_normalize_map
    - open
    - write
    - optget
    - malloc
    - text_normalize_reset
    - free
    - mprintf
    linkageType: ''
    returnType: int
    signature: int asciinorm(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:676,1
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:677,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:678,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:682,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:682,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:684,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:685,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:688,1
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:690,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:691,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:692,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:693,1
    - Dst: read
      Src: /src/clamav/sigtool/sigtool.c:697,1
    - Dst: cli_utf16toascii
      Src: /src/clamav/sigtool/sigtool.c:698,1
    - Dst: write
      Src: /src/clamav/sigtool/sigtool.c:700,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:700,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:701,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:702,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:703,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:704,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:705,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:706,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:709,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:713,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:714,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:715,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 718
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 718
    functionName: utf16decode
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - close
    - strlen
    - unlink
    - open
    - cli_utf16toascii
    - write
    - optget
    - read
    - malloc
    - free
    - sprintf
    - mprintf
    linkageType: ''
    returnType: int
    signature: int utf16decode(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_hash_init
      Src: /src/clamav/sigtool/sigtool.c:728,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:732,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:733,1
    - Dst: cl_hash_destroy
      Src: /src/clamav/sigtool/sigtool.c:734,1
    - Dst: fread
      Src: /src/clamav/sigtool/sigtool.c:739,1
    - Dst: cl_update_hash
      Src: /src/clamav/sigtool/sigtool.c:740,1
    - Dst: cl_finish_hash
      Src: /src/clamav/sigtool/sigtool.c:744,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:745,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:747,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:751,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:753,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - file
    - size
    argTypes:
    - char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 755
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 755
    functionName: sha256file
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - fread
    - cl_finish_hash
    - fclose
    - fopen
    - cl_hash_destroy
    - malloc
    - cl_hash_init
    - cl_update_hash
    - sprintf
    - mprintf
    linkageType: ''
    returnType: char
    signature: char *sha256file(const char *file, unsigned int *size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:765,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:766,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:767,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:768,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:773,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:774,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:778,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:779,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:780,1
    - Dst: sha256file
      Src: /src/clamav/sigtool/sigtool.c:786,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:787,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:788,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:791,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:792,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:793,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:794,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:797,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:800,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:802,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:803,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:803,1
    - Dst: sha256file
      Src: /src/clamav/sigtool/sigtool.c:804,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:805,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:806,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:809,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:810,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:811,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:812,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:815,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:819,1
    - Dst: rewind
      Src: /src/clamav/sigtool/sigtool.c:820,1
    - Dst: cl_hash_init
      Src: /src/clamav/sigtool/sigtool.c:821,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:823,1
    - Dst: fread
      Src: /src/clamav/sigtool/sigtool.c:827,1
    - Dst: cl_update_hash
      Src: /src/clamav/sigtool/sigtool.c:828,1
    - Dst: cl_finish_hash
      Src: /src/clamav/sigtool/sigtool.c:829,1
    - Dst: cli_getdsig
      Src: /src/clamav/sigtool/sigtool.c:830,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:830,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:831,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:832,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:835,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:836,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:838,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 6
    argNames:
    - dbname
    - builder
    - header
    - opts
    - dblist2
    - dblist2cnt
    argTypes:
    - char*
    - char*
    - char*
    - struct optstruct*
    - char**
    - unsigned int
    constantsTouched: []
    func_position:
      end: 840
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 840
    functionName: writeinfo
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - snprintf
    - sha256file
    - strcmp
    - rewind
    - access
    - unlink
    - fread
    - cl_finish_hash
    - cli_getdsig
    - cl_hash_init
    - fprintf
    - mprintf
    - optget
    - fclose
    - cl_update_hash
    - free
    - fopen
    linkageType: ''
    returnType: int
    signature: int writeinfo(const char *dbname, const char *builder, const char *header,
      const struct optstruct *opts, char *const *dblist2, unsigned int dblist2cnt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: qcompare
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int qcompare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:853,1
    - Dst: cli_rmdirs
      Src: /src/clamav/sigtool/sigtool.c:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - opts
    - dir
    argTypes:
    - struct optstruct*
    - char*
    constantsTouched: []
    func_position:
      end: 856
      start: 851
    functionDepth: 4
    functionLinenumber: 851
    functionLinenumberEnd: 856
    functionName: removeTempDir
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - optget
    - cli_rmdirs
    linkageType: ''
    returnType: void
    signature: void removeTempDir(const struct optstruct *opts, char *dir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:891,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:894,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:897,1
    - Dst: cvd_open
      Src: /src/clamav/sigtool/sigtool.c:904,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:906,1
    - Dst: ffierror_fmt
      Src: /src/clamav/sigtool/sigtool.c:906,1
    - Dst: cvd_get_version
      Src: /src/clamav/sigtool/sigtool.c:910,1
    - Dst: cvd_get_name
      Src: /src/clamav/sigtool/sigtool.c:911,1
    - Dst: strdup
      Src: /src/clamav/sigtool/sigtool.c:914,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:916,1
    - Dst: dirname
      Src: /src/clamav/sigtool/sigtool.c:919,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:921,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:925,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:925,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:925,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:925,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:925,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:927,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:931,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:934,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:934,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:934,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:936,1
    - Dst: strcpy
      Src: /src/clamav/sigtool/sigtool.c:939,1
    - Dst: strcat
      Src: /src/clamav/sigtool/sigtool.c:940,1
    - Dst: ffi_cstring_free
      Src: /src/clamav/sigtool/sigtool.c:946,1
    - Dst: cvd_free
      Src: /src/clamav/sigtool/sigtool.c:949,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:952,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:955,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 1
    argNames:
    - target
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 959
      start: 876
    functionDepth: 3
    functionLinenumber: 876
    functionLinenumberEnd: 959
    functionName: get_sign_file_name
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - cvd_get_name
    - dirname
    - calloc
    - strcat
    - strlen
    - strcpy
    - cvd_get_version
    - strdup
    - cli_strbcasestr
    - ffi_cstring_free
    - cvd_free
    - mprintf
    - ffierror_free
    - cvd_open
    - malloc
    - free
    - sprintf
    - ffierror_fmt
    linkageType: ''
    returnType: char
    signature: char *get_sign_file_name(char *target)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:979,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:981,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:982,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:983,1
    - Dst: get_sign_file_name
      Src: /src/clamav/sigtool/sigtool.c:987,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:989,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:993,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:995,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:996,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:997,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1001,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1003,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1004,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1005,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1011,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1012,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1013,1
    - Dst: realloc
      Src: /src/clamav/sigtool/sigtool.c:1019,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1021,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1030,1
    - Dst: codesign_sign_file
      Src: /src/clamav/sigtool/sigtool.c:1034,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1044,1
    - Dst: ffierror_fmt
      Src: /src/clamav/sigtool/sigtool.c:1044,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1048,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1054,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1057,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:1060,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1064
      start: 961
    functionDepth: 4
    functionLinenumber: 961
    functionLinenumberEnd: 1064
    functionName: sign
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 2
    functionsReached:
    - ffierror_fmt
    - codesign_sign_file
    - realloc
    - ffierror_free
    - optget
    - free
    - get_sign_file_name
    - mprintf
    linkageType: ''
    returnType: int
    signature: int sign(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1081,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1083,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1084,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1085,1
    - Dst: get_sign_file_name
      Src: /src/clamav/sigtool/sigtool.c:1089,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1091,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1095,1
    - Dst: getenv
      Src: /src/clamav/sigtool/sigtool.c:1098,1
    - Dst: codesign_verifier_new
      Src: /src/clamav/sigtool/sigtool.c:1106,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1107,1
    - Dst: ffierror_fmt
      Src: /src/clamav/sigtool/sigtool.c:1107,1
    - Dst: codesign_verify_file
      Src: /src/clamav/sigtool/sigtool.c:1111,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1118,1
    - Dst: ffierror_fmt
      Src: /src/clamav/sigtool/sigtool.c:1118,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1122,1
    - Dst: ffi_cstring_free
      Src: /src/clamav/sigtool/sigtool.c:1128,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1131,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:1134,1
    - Dst: codesign_verifier_free
      Src: /src/clamav/sigtool/sigtool.c:1137,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:1140,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1144
      start: 1066
    functionDepth: 4
    functionLinenumber: 1066
    functionLinenumberEnd: 1144
    functionName: verify
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 10
    functionsReached:
    - getenv
    - codesign_verifier_free
    - ffierror_fmt
    - ffierror_free
    - ffi_cstring_free
    - optget
    - free
    - codesign_verifier_new
    - codesign_verify_file
    - get_sign_file_name
    - mprintf
    linkageType: ''
    returnType: int
    signature: int verify(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1172,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1172,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1173,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1177,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1178,1
    - Dst: CLAMSTAT
      Src: /src/clamav/sigtool/sigtool.c:1180,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1181,1
    - Dst: getdbname
      Src: /src/clamav/sigtool/sigtool.c:1185,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1185,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:1186,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1189,1
    - Dst: cl_engine_new
      Src: /src/clamav/sigtool/sigtool.c:1192,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1193,1
    - Dst: cl_load
      Src: /src/clamav/sigtool/sigtool.c:1197,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1198,1
    - Dst: cl_strerror
      Src: /src/clamav/sigtool/sigtool.c:1198,1
    - Dst: cl_engine_free
      Src: /src/clamav/sigtool/sigtool.c:1199,1
    - Dst: cl_engine_free
      Src: /src/clamav/sigtool/sigtool.c:1202,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1205,1
    - Dst: opendir
      Src: /src/clamav/sigtool/sigtool.c:1208,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1209,1
    - Dst: readdir
      Src: /src/clamav/sigtool/sigtool.c:1212,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1214,1
    - Dst: realloc
      Src: /src/clamav/sigtool/sigtool.c:1215,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1217,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:1218,1
    - Dst: strdup
      Src: /src/clamav/sigtool/sigtool.c:1221,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1223,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1224,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:1231,1
    - Dst: qsort
      Src: /src/clamav/sigtool/sigtool.c:1234,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1237,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1239,1
    - Dst: realloc
      Src: /src/clamav/sigtool/sigtool.c:1242,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1244,1
    - Dst: strdup
      Src: /src/clamav/sigtool/sigtool.c:1247,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1249,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1250,1
    - Dst: countlines
      Src: /src/clamav/sigtool/sigtool.c:1254,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1259,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1260,1
    - Dst: countlines
      Src: /src/clamav/sigtool/sigtool.c:1261,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1266,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1268,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1272,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1273,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1281,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1281,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1281,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:1282,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1285,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1286,1
    - Dst: freshdbdir
      Src: /src/clamav/sigtool/sigtool.c:1291,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1292,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1293,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1294,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1295,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1296,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1297,1
    - Dst: cl_cvdhead
      Src: /src/clamav/sigtool/sigtool.c:1300,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1300,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1301,1
    - Dst: sleep
      Src: /src/clamav/sigtool/sigtool.c:1302,1
    - Dst: cl_cvdfree
      Src: /src/clamav/sigtool/sigtool.c:1308,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1309,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1310,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1312,1
    - Dst: scanf
      Src: /src/clamav/sigtool/sigtool.c:1313,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1314,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1315,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1320,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1322,1
    - Dst: strcpy
      Src: /src/clamav/sigtool/sigtool.c:1324,1
    - Dst: time
      Src: /src/clamav/sigtool/sigtool.c:1327,1
    - Dst: localtime
      Src: /src/clamav/sigtool/sigtool.c:1328,1
    - Dst: setlocale
      Src: /src/clamav/sigtool/sigtool.c:1329,1
    - Dst: strftime
      Src: /src/clamav/sigtool/sigtool.c:1330,1
    - Dst: strcat
      Src: /src/clamav/sigtool/sigtool.c:1331,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1334,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1334,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1337,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1337,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1340,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1341,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1341,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1343,1
    - Dst: strcat
      Src: /src/clamav/sigtool/sigtool.c:1346,1
    - Dst: getenv
      Src: /src/clamav/sigtool/sigtool.c:1348,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:1349,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1352,1
    - Dst: scanf
      Src: /src/clamav/sigtool/sigtool.c:1353,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1354,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1355,1
    - Dst: strcat
      Src: /src/clamav/sigtool/sigtool.c:1361,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1364,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1364,1
    - Dst: writeinfo
      Src: /src/clamav/sigtool/sigtool.c:1366,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1367,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1368,1
    - Dst: cli_gentemp
      Src: /src/clamav/sigtool/sigtool.c:1374,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1375,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1376,1
    - Dst: gzopen
      Src: /src/clamav/sigtool/sigtool.c:1380,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1381,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1382,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1383,1
    - Dst: tar_addfile
      Src: /src/clamav/sigtool/sigtool.c:1387,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1388,1
    - Dst: gzclose
      Src: /src/clamav/sigtool/sigtool.c:1389,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1390,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1391,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1392,1
    - Dst: tar_addfile
      Src: /src/clamav/sigtool/sigtool.c:1397,1
    - Dst: gzclose
      Src: /src/clamav/sigtool/sigtool.c:1398,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1399,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1400,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1401,1
    - Dst: tar_addfile
      Src: /src/clamav/sigtool/sigtool.c:1405,1
    - Dst: gzclose
      Src: /src/clamav/sigtool/sigtool.c:1406,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1407,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1408,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1409,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1416,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1417,1
    - Dst: tar_addfile
      Src: /src/clamav/sigtool/sigtool.c:1418,1
    - Dst: gzclose
      Src: /src/clamav/sigtool/sigtool.c:1419,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1420,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1421,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1422,1
    - Dst: gzclose
      Src: /src/clamav/sigtool/sigtool.c:1428,1
    - Dst: FREE_LS
      Src: /src/clamav/sigtool/sigtool.c:1429,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:1432,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1433,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1434,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1435,1
    - Dst: cli_hashstream
      Src: /src/clamav/sigtool/sigtool.c:1439,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1440,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1441,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1442,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1443,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1452,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1453,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1454,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1455,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1456,1
    - Dst: rewind
      Src: /src/clamav/sigtool/sigtool.c:1460,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1461,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1461,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1462,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1464,1
    - Dst: cli_getdsig
      Src: /src/clamav/sigtool/sigtool.c:1465,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1465,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1466,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1467,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1468,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1469,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1472,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1472,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1473,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1475,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1475,1
    - Dst: strcat
      Src: /src/clamav/sigtool/sigtool.c:1479,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1482,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1482,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1485,1
    - Dst: strcat
      Src: /src/clamav/sigtool/sigtool.c:1486,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1489,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:1490,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1491,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1492,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1493,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1494,1
    - Dst: fwrite
      Src: /src/clamav/sigtool/sigtool.c:1498,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1499,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1500,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1501,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1502,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1503,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1504,1
    - Dst: fread
      Src: /src/clamav/sigtool/sigtool.c:1508,1
    - Dst: fwrite
      Src: /src/clamav/sigtool/sigtool.c:1509,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1510,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1511,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1512,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1513,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1514,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1515,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1520,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1521,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1523,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1524,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1525,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1526,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1527,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1530,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1532,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1534,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1537,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1538,1
    - Dst: createTempDir
      Src: /src/clamav/sigtool/sigtool.c:1543,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/sigtool/sigtool.c:1547,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1548,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:1549,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1550,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1551,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:1554,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1556,1
    - Dst: createTempDir
      Src: /src/clamav/sigtool/sigtool.c:1558,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/sigtool/sigtool.c:1562,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1563,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:1564,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1565,1
    - Dst: cli_rmdirs
      Src: /src/clamav/sigtool/sigtool.c:1566,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1567,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1571,1
    - Dst: diffdirs
      Src: /src/clamav/sigtool/sigtool.c:1572,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:1573,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1574,1
    - Dst: cli_rmdirs
      Src: /src/clamav/sigtool/sigtool.c:1577,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1578,1
    - Dst: verifydiff
      Src: /src/clamav/sigtool/sigtool.c:1582,1
    - Dst: cli_rmdirs
      Src: /src/clamav/sigtool/sigtool.c:1583,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1586,1
    - Dst: rename
      Src: /src/clamav/sigtool/sigtool.c:1587,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:1588,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1589,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1591,1
    - Dst: script2cdiff
      Src: /src/clamav/sigtool/sigtool.c:1594,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1594,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 357
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1602
      start: 1146
    functionDepth: 12
    functionLinenumber: 1146
    functionLinenumberEnd: 1602
    functionName: build
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 7
    functionsReached:
    - script2cdiff
    - snprintf
    - strcat
    - rename
    - removeTempDir
    - getdbname
    - cl_engine_free
    - writeinfo
    - cli_strbcasestr
    - cli_getdsig
    - gzclose
    - readdir
    - verifydiff
    - cl_engine_new
    - diffdirs
    - cl_cvdhead
    - sprintf
    - scanf
    - strcmp
    - sleep
    - FREE_LS
    - access
    - gzopen
    - strncpy
    - unlink
    - countlines
    - setlocale
    - tar_addfile
    - optget
    - time
    - localtime
    - cli_rmdirs
    - mprintf
    - cl_strerror
    - closedir
    - cli_hashstream
    - fread
    - createTempDir
    - fwrite
    - realloc
    - cl_cvdfree
    - strcpy
    - fclose
    - free
    - cl_cvdunpack_ex
    - getenv
    - rewind
    - strlen
    - cl_load
    - strdup
    - CLAMSTAT
    - cli_gentemp
    - opendir
    - qsort
    - strftime
    - freshdbdir
    - fopen
    linkageType: ''
    returnType: int
    signature: int build(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1610,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1611,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1613,1
    - Dst: freshdbdir
      Src: /src/clamav/sigtool/sigtool.c:1614,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1615,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1615,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1616,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:1617,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1617,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1618,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1619,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1619,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1620,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1624,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:1627,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1627,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1631,1
    - Dst: getenv
      Src: /src/clamav/sigtool/sigtool.c:1634,1
    - Dst: cl_cvdverify_ex
      Src: /src/clamav/sigtool/sigtool.c:1642,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1643,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/sigtool/sigtool.c:1647,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1648,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1653
      start: 1604
    functionDepth: 4
    functionLinenumber: 1604
    functionLinenumberEnd: 1653
    functionName: unpack
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 6
    functionsReached:
    - snprintf
    - getenv
    - access
    - cl_cvdunpack_ex
    - strncpy
    - optget
    - freshdbdir
    - cl_cvdverify_ex
    - free
    - mprintf
    linkageType: ''
    returnType: int
    signature: int unpack(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1661,1
    - Dst: cl_cvdhead
      Src: /src/clamav/sigtool/sigtool.c:1662,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1663,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1666,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:1668,1
    - Dst: cl_cvdfree
      Src: /src/clamav/sigtool/sigtool.c:1670,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1674,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1675,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1676,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1677,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1678,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1680,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1681,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1682,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1683,1
    - Dst: cl_cvdfree
      Src: /src/clamav/sigtool/sigtool.c:1685,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1686,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1687,1
    - Dst: cl_cvdverify
      Src: /src/clamav/sigtool/sigtool.c:1688,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1689,1
    - Dst: cl_strerror
      Src: /src/clamav/sigtool/sigtool.c:1689,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1695
      start: 1655
    functionDepth: 4
    functionLinenumber: 1655
    functionLinenumberEnd: 1695
    functionName: cvdinfo
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - strchr
    - cli_strbcasestr
    - optget
    - cl_cvdverify
    - cl_cvdfree
    - cl_cvdhead
    - mprintf
    linkageType: ''
    returnType: int
    signature: int cvdinfo(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/clamav/sigtool/sigtool.c:1705,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1706,1
    - Dst: readdir
      Src: /src/clamav/sigtool/sigtool.c:1710,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:1712,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:1712,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1713,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1714,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1715,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1716,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1717,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1718,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1719,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1720,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1721,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1722,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1723,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1724,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1725,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1726,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1727,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1728,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1729,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1730,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1731,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1732,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1733,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1734,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:1736,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1736,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:1736,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1738,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:1739,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:1742,1
    - Dst: listdb
      Src: /src/clamav/sigtool/sigtool.c:1744,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1745,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1746,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:1747,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1750,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:1755,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 27
    argCount: 3
    argNames:
    - opts
    - dirname
    - regex
    argTypes:
    - struct optstruct*
    - char*
    - regex_t*
    constantsTouched: []
    func_position:
      end: 1757
      start: 1699
    functionDepth: 3
    functionLinenumber: 1699
    functionLinenumberEnd: 1757
    functionName: listdir
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - closedir
    - listdb
    - strcmp
    - strlen
    - cli_strbcasestr
    - opendir
    - readdir
    - malloc
    - free
    - sprintf
    - mprintf
    linkageType: ''
    returnType: int
    signature: int listdir(const struct optstruct *opts, const char *dirname, const
      regex_t *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:1766,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1767,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:1771,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1772,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1773,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:1778,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1779,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1780,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1781,1
    - Dst: rewind
      Src: /src/clamav/sigtool/sigtool.c:1784,1
    - Dst: strncmp
      Src: /src/clamav/sigtool/sigtool.c:1786,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1787,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1788,1
    - Dst: createTempDir
      Src: /src/clamav/sigtool/sigtool.c:1790,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/sigtool/sigtool.c:1794,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1795,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:1796,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1797,1
    - Dst: listdir
      Src: /src/clamav/sigtool/sigtool.c:1802,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1803,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:1804,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1805,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:1809,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1810,1
    - Dst: strrchr
      Src: /src/clamav/sigtool/sigtool.c:1815,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1816,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1817,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1818,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1823,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:1825,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:1827,1
    - Dst: cli_regexec
      Src: /src/clamav/sigtool/sigtool.c:1828,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1829,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:1837,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1839,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1840,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1841,1
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:1848,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1851,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1854,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:1855,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:1856,1
    - Dst: cli_regexec
      Src: /src/clamav/sigtool/sigtool.c:1862,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1863,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1868,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1870,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:1872,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:1873,1
    - Dst: cli_regexec
      Src: /src/clamav/sigtool/sigtool.c:1875,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1876,1
    - Dst: cli_strtok
      Src: /src/clamav/sigtool/sigtool.c:1884,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1887,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1888,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1889,1
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:1893,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1896,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1897,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1900,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:1902,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:1903,1
    - Dst: cli_regexec
      Src: /src/clamav/sigtool/sigtool.c:1905,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1906,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1914,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1914,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:1915,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:1917,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1920,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1921,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1922,1
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:1927,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1930,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/sigtool/sigtool.c:1933,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:1934,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:1934,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:1935,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1937,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1938,1
    - Dst: cli_regexec
      Src: /src/clamav/sigtool/sigtool.c:1942,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1943,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1947,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:1951,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1952,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 156
    argCount: 3
    argNames:
    - opts
    - filename
    - regex
    argTypes:
    - struct optstruct*
    - char*
    - regex_t*
    constantsTouched: []
    func_position:
      end: 1954
      start: 1759
    functionDepth: 5
    functionLinenumber: 1759
    functionLinenumberEnd: 1954
    functionName: listdb
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 1
    functionsReached:
    - cli_strtok
    - removeTempDir
    - listdir
    - cli_strbcasestr
    - strstr
    - strrchr
    - mprintf
    - cli_chomp
    - createTempDir
    - cli_regexec
    - malloc
    - fclose
    - cl_cvdunpack_ex
    - free
    - fgets
    - rewind
    - strchr
    - strncmp
    - fopen
    linkageType: ''
    returnType: int
    signature: int listdb(const struct optstruct *opts, const char *filename, const
      regex_t *regex)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1965,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1966,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1969,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:1970,1
    - Dst: CLAMSTAT
      Src: /src/clamav/sigtool/sigtool.c:1972,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1973,1
    - Dst: S_ISDIR
      Src: /src/clamav/sigtool/sigtool.c:1978,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:1979,1
    - Dst: freshdbdir
      Src: /src/clamav/sigtool/sigtool.c:1980,1
    - Dst: listdir
      Src: /src/clamav/sigtool/sigtool.c:1981,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1982,1
    - Dst: listdir
      Src: /src/clamav/sigtool/sigtool.c:1984,1
    - Dst: listdb
      Src: /src/clamav/sigtool/sigtool.c:1987,1
    - Dst: cli_regcomp
      Src: /src/clamav/sigtool/sigtool.c:1991,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:1991,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:1992,1
    - Dst: freshdbdir
      Src: /src/clamav/sigtool/sigtool.c:1996,1
    - Dst: listdir
      Src: /src/clamav/sigtool/sigtool.c:1997,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:1998,1
    - Dst: cli_regfree
      Src: /src/clamav/sigtool/sigtool.c:1999,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - opts
    - mode
    argTypes:
    - struct optstruct*
    - int
    constantsTouched: []
    func_position:
      end: 2003
      start: 1956
    functionDepth: 6
    functionLinenumber: 1956
    functionLinenumberEnd: 2003
    functionName: listsigs
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - listdb
    - cli_regcomp
    - strcmp
    - access
    - S_ISDIR
    - CLAMSTAT
    - listdir
    - optget
    - cli_regfree
    - freshdbdir
    - free
    - mprintf
    linkageType: ''
    returnType: int
    signature: int listsigs(const struct optstruct *opts, int mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:2011,1
    - Dst: cli_gettmpdir
      Src: /src/clamav/sigtool/sigtool.c:2014,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/sigtool/sigtool.c:2017,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2019,1
    - Dst: mkdir
      Src: /src/clamav/sigtool/sigtool.c:2023,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2024,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2025,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 2032
      start: 2005
    functionDepth: 6
    functionLinenumber: 2005
    functionLinenumberEnd: 2032
    functionName: createTempDir
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 2
    functionsReached:
    - cli_gentemp_with_prefix
    - mkdir
    - optget
    - logg
    - free
    - cli_gettmpdir
    linkageType: ''
    returnType: char
    signature: char *createTempDir(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cl_engine_set_str
      Src: /src/clamav/sigtool/sigtool.c:2043,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2044,1
    - Dst: cl_strerror
      Src: /src/clamav/sigtool/sigtool.c:2044,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - engine
    - opts
    argTypes:
    - struct cl_engine*
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 2054
      start: 2034
    functionDepth: 3
    functionLinenumber: 2034
    functionLinenumberEnd: 2054
    functionName: setTempDir
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - free
    - cl_engine_set_str
    - cl_strerror
    - logg
    linkageType: ''
    returnType: bool
    signature: bool setTempDir(struct cl_engine *engine, const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2065,1
    - Dst: cli_realpath
      Src: /src/clamav/sigtool/sigtool.c:2070,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2072,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2073,1
    - Dst: safe_open
      Src: /src/clamav/sigtool/sigtool.c:2078,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2079,1
    - Dst: strerror
      Src: /src/clamav/sigtool/sigtool.c:2079,1
    - Dst: cl_scandesc_callback
      Src: /src/clamav/sigtool/sigtool.c:2083,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2084,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2090,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - filename
    - engine
    - opts
    - options
    argTypes:
    - char*
    - struct cl_engine*
    - struct optstruct*
    - struct cl_scan_options*
    constantsTouched: []
    func_position:
      end: 2093
      start: 2056
    functionDepth: 7
    functionLinenumber: 2056
    functionLinenumberEnd: 2093
    functionName: scanfile
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 9
    functionsReached:
    - strerror
    - safe_open
    - cli_realpath
    - logg
    - cl_scandesc_callback
    - free
    linkageType: ''
    returnType: void
    signature: void scanfile(const char *filename, struct cl_engine *engine, const
      struct optstruct *opts, struct cl_scan_options *options)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/sigtool/sigtool.c:2100,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:2112,1
    - Dst: printf
      Src: /src/clamav/sigtool/sigtool.c:2114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - metaString
    - metaStringLen
    - context
    argTypes:
    - unsigned char*
    - size_t
    - void*
    constantsTouched: []
    func_position:
      end: 2117
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2117
    functionName: vba_callback
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - printf
    linkageType: ''
    returnType: int
    signature: int vba_callback(const unsigned char *const metaString, const size_t
      metaStringLen, void *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/sigtool/sigtool.c:2133,1
    - Dst: cl_init
      Src: /src/clamav/sigtool/sigtool.c:2135,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2136,1
    - Dst: cl_strerror
      Src: /src/clamav/sigtool/sigtool.c:2136,1
    - Dst: cl_engine_new
      Src: /src/clamav/sigtool/sigtool.c:2141,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2142,1
    - Dst: cl_engine_set_clcb_vba
      Src: /src/clamav/sigtool/sigtool.c:2147,1
    - Dst: setTempDir
      Src: /src/clamav/sigtool/sigtool.c:2149,1
    - Dst: cl_engine_compile
      Src: /src/clamav/sigtool/sigtool.c:2154,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2155,1
    - Dst: cl_strerror
      Src: /src/clamav/sigtool/sigtool.c:2155,1
    - Dst: getrlimit
      Src: /src/clamav/sigtool/sigtool.c:2161,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/sigtool/sigtool.c:2162,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2163,1
    - Dst: cl_engine_get_num
      Src: /src/clamav/sigtool/sigtool.c:2164,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2165,1
    - Dst: logg
      Src: /src/clamav/sigtool/sigtool.c:2167,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/sigtool/sigtool.c:2179,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:2181,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:2183,1
    - Dst: scanfile
      Src: /src/clamav/sigtool/sigtool.c:2185,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:2187,1
    - Dst: cl_engine_free
      Src: /src/clamav/sigtool/sigtool.c:2193,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 2196
      start: 2119
    functionDepth: 5
    functionLinenumber: 2119
    functionLinenumberEnd: 2196
    functionName: vbadump
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - cl_strerror
    - memset
    - cl_init
    - cl_engine_get_num
    - cl_engine_compile
    - removeTempDir
    - cl_engine_free
    - cl_engine_set_num
    - optget
    - cl_engine_new
    - logg
    - getrlimit
    - scanfile
    - cl_engine_set_clcb_vba
    - setTempDir
    linkageType: ''
    returnType: int
    signature: int vbadump(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/sigtool/sigtool.c:2205,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2207,1
    - Dst: strrchr
      Src: /src/clamav/sigtool/sigtool.c:2210,1
    - Dst: isdigit
      Src: /src/clamav/sigtool/sigtool.c:2210,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2211,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2212,1
    - Dst: strrchr
      Src: /src/clamav/sigtool/sigtool.c:2216,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:2221,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2222,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:2224,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2225,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2229,1
    - Dst: strncmp
      Src: /src/clamav/sigtool/sigtool.c:2229,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2230,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:2231,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2235,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:2236,1
    - Dst: cli_strtokenize
      Src: /src/clamav/sigtool/sigtool.c:2237,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2239,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2241,1
    - Dst: sha256file
      Src: /src/clamav/sigtool/sigtool.c:2245,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2246,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2250,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2251,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2253,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2256,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:2259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - diff
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2261
      start: 2198
    functionDepth: 2
    functionLinenumber: 2198
    functionLinenumberEnd: 2261
    functionName: comparesha
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - snprintf
    - sha256file
    - strcmp
    - fopen
    - strdup
    - mprintf
    - strncmp
    - cli_strtokenize
    - strrchr
    - fclose
    - free
    - fgets
    - isdigit
    linkageType: ''
    returnType: int
    signature: int comparesha(const char *diff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:2273,1
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:2274,1
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:2276,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2279,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:2283,1
    - Dst: getenv
      Src: /src/clamav/sigtool/sigtool.c:2286,1
    - Dst: codesign_verifier_new
      Src: /src/clamav/sigtool/sigtool.c:2294,1
    - Dst: cli_errmsg
      Src: /src/clamav/sigtool/sigtool.c:2295,1
    - Dst: ffierror_fmt
      Src: /src/clamav/sigtool/sigtool.c:2295,1
    - Dst: cdiff_apply
      Src: /src/clamav/sigtool/sigtool.c:2300,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2306,1
    - Dst: ffierror_fmt
      Src: /src/clamav/sigtool/sigtool.c:2307,1
    - Dst: comparesha
      Src: /src/clamav/sigtool/sigtool.c:2313,1
    - Dst: codesign_verifier_free
      Src: /src/clamav/sigtool/sigtool.c:2318,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:2321,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:2324,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 2328
      start: 2263
    functionDepth: 3
    functionLinenumber: 2263
    functionLinenumberEnd: 2328
    functionName: rundiff
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - getenv
    - codesign_verifier_free
    - cdiff_apply
    - strstr
    - comparesha
    - ffierror_fmt
    - ffierror_free
    - optget
    - codesign_verifier_new
    - cli_errmsg
    - mprintf
    linkageType: ''
    returnType: int
    signature: int rundiff(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:2335,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2336,1
    - Dst: read
      Src: /src/clamav/sigtool/sigtool.c:2340,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2351,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:2352,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:2356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2358
      start: 2330
    functionDepth: 0
    functionLinenumber: 2330
    functionLinenumberEnd: 2358
    functionName: maxlinelen
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - close
    - open
    - read
    - mprintf
    linkageType: ''
    returnType: int
    signature: int maxlinelen(const char *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:2368,1
    - Dst: cli_hashfile
      Src: /src/clamav/sigtool/sigtool.c:2368,1
    - Dst: cli_hashfile
      Src: /src/clamav/sigtool/sigtool.c:2369,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2370,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2371,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2374,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2375,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2376,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2379,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2380,1
    - Dst: maxlinelen
      Src: /src/clamav/sigtool/sigtool.c:2381,1
    - Dst: maxlinelen
      Src: /src/clamav/sigtool/sigtool.c:2384,1
    - Dst: MAX
      Src: /src/clamav/sigtool/sigtool.c:2387,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:2389,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2391,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:2394,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2396,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2397,1
    - Dst: malloc
      Src: /src/clamav/sigtool/sigtool.c:2400,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2402,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2403,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2404,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2409,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2411,1
    - Dst: fopen::fopen
      Src: /src/clamav/sigtool/sigtool.c:2413,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2414,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2415,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2416,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2417,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:2420,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2422,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:2423,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2425,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:2427,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2429,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2430,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2431,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:2434,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2436,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2438,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:2440,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2441,1
    - Dst: ftell
      Src: /src/clamav/sigtool/sigtool.c:2446,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2447,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:2449,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2454,1
    - Dst: fseek
      Src: /src/clamav/sigtool/sigtool.c:2459,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:2462,1
    - Dst: MIN
      Src: /src/clamav/sigtool/sigtool.c:2465,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:2466,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2468,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2469,1
    - Dst: MIN
      Src: /src/clamav/sigtool/sigtool.c:2479,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:2480,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2482,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:2486,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2488,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2495,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:2497,1
    - Dst: MIN
      Src: /src/clamav/sigtool/sigtool.c:2498,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:2499,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2501,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:2504,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2506,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2507,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2508,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2510,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2511,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:2513,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:2514,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2515,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:2517,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2519,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 141
    argCount: 3
    argNames:
    - oldpath
    - newpath
    - diff
    argTypes:
    - char*
    - char*
    - FILE*
    constantsTouched: []
    func_position:
      end: 2522
      start: 2360
    functionDepth: 3
    functionLinenumber: 2360
    functionLinenumberEnd: 2522
    functionName: compare
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 3
    functionsReached:
    - MAX
    - fseek
    - maxlinelen
    - ftell
    - strcmp
    - access
    - strncpy
    - MIN
    - mprintf
    - cli_chomp
    - fprintf
    - fopen::fopen
    - malloc
    - fclose
    - free
    - fgets
    - strlen
    - strchr
    - cli_hashfile
    - fopen
    linkageType: ''
    returnType: int
    signature: int compare(const char *oldpath, const char *newpath, FILE *diff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2527,1
    - Dst: compare
      Src: /src/clamav/sigtool/sigtool.c:2530,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:2530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 2531
      start: 2524
    functionDepth: 1
    functionLinenumber: 2524
    functionLinenumberEnd: 2531
    functionName: compareone
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - optget
    - compare
    - mprintf
    linkageType: ''
    returnType: int
    signature: int compareone(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CLAMSTAT
      Src: /src/clamav/sigtool/sigtool.c:2540,1
    - Dst: mkdir
      Src: /src/clamav/sigtool/sigtool.c:2541,1
    - Dst: opendir
      Src: /src/clamav/sigtool/sigtool.c:2547,1
    - Dst: readdir
      Src: /src/clamav/sigtool/sigtool.c:2552,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2554,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2554,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:2557,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:2558,1
    - Dst: filecopy
      Src: /src/clamav/sigtool/sigtool.c:2560,1
    - Dst: cli_rmdirs
      Src: /src/clamav/sigtool/sigtool.c:2562,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:2563,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:2569,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2571
      start: 2533
    functionDepth: 4
    functionLinenumber: 2533
    functionLinenumberEnd: 2571
    functionName: dircopy
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - closedir
    - snprintf
    - mkdir
    - strcmp
    - CLAMSTAT
    - opendir
    - readdir
    - filecopy
    - cli_rmdirs
    linkageType: ''
    returnType: int
    signature: int dircopy(const char *src, const char *dest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:2583,1
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:2585,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2588,1
    - Dst: createTempDir
      Src: /src/clamav/sigtool/sigtool.c:2592,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/sigtool/sigtool.c:2598,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2599,1
    - Dst: dircopy
      Src: /src/clamav/sigtool/sigtool.c:2603,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2604,1
    - Dst: getcwd
      Src: /src/clamav/sigtool/sigtool.c:2609,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2610,1
    - Dst: chdir
      Src: /src/clamav/sigtool/sigtool.c:2614,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2615,1
    - Dst: cdiff_apply
      Src: /src/clamav/sigtool/sigtool.c:2619,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2624,1
    - Dst: chdir
      Src: /src/clamav/sigtool/sigtool.c:2625,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2626,1
    - Dst: comparesha
      Src: /src/clamav/sigtool/sigtool.c:2631,1
    - Dst: chdir
      Src: /src/clamav/sigtool/sigtool.c:2633,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2634,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2639,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2641,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:2647,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2650,1
    - Dst: ffierror_free
      Src: /src/clamav/sigtool/sigtool.c:2653,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 4
    argNames:
    - opts
    - diff
    - cvd
    - incdir
    argTypes:
    - struct optstruct*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2657
      start: 2573
    functionDepth: 7
    functionLinenumber: 2573
    functionLinenumberEnd: 2657
    functionName: verifydiff
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 1
    functionsReached:
    - createTempDir
    - getcwd
    - chdir
    - cdiff_apply
    - strstr
    - dircopy
    - comparesha
    - removeTempDir
    - ffierror_free
    - free
    - cl_cvdunpack_ex
    - mprintf
    linkageType: ''
    returnType: int
    signature: int verifydiff(const struct optstruct *opts, const char *diff, const
      char *cvd, const char *incdir)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2680,1
    - Dst: lseek
      Src: /src/clamav/sigtool/sigtool.c:2683,1
    - Dst: FSTAT
      Src: /src/clamav/sigtool/sigtool.c:2684,1
    - Dst: fmap
      Src: /src/clamav/sigtool/sigtool.c:2686,1
    - Dst: cl_engine_new
      Src: /src/clamav/sigtool/sigtool.c:2692,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2693,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/sigtool/sigtool.c:2696,1
    - Dst: cli_initroots
      Src: /src/clamav/sigtool/sigtool.c:2698,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2699,1
    - Dst: readdb_parse_ldb_subsignature
      Src: /src/clamav/sigtool/sigtool.c:2703,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2704,1
    - Dst: cl_engine_compile
      Src: /src/clamav/sigtool/sigtool.c:2708,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2709,1
    - Dst: evidence_new
      Src: /src/clamav/sigtool/sigtool.c:2715,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:2722,1
    - Dst: cli_scan_fmap
      Src: /src/clamav/sigtool/sigtool.c:2734,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2744,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2747,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2750,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2752,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2760,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:2763,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2766,1
    - Dst: evidence_free
      Src: /src/clamav/sigtool/sigtool.c:2769,1
    - Dst: cl_engine_free
      Src: /src/clamav/sigtool/sigtool.c:2772,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 3
    argNames:
    - sig
    - offset
    - fd
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 2774
      start: 2669
    functionDepth: 7
    functionLinenumber: 2669
    functionLinenumberEnd: 2774
    functionName: matchsig
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - fmap
    - lseek
    - calloc
    - funmap
    - evidence_free
    - cl_engine_compile
    - readdb_parse_ldb_subsignature
    - cl_engine_set_num
    - FSTAT
    - evidence_new
    - cl_engine_free
    - cl_engine_new
    - cli_initroots
    - cli_scan_fmap
    - free
    - mprintf
    linkageType: ''
    returnType: void
    signature: void matchsig(char *sig, const char *offset, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cli_hex2ui
      Src: /src/clamav/sigtool/sigtool.c:2782,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:2790,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2792,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2793,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2801,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2805,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2809,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2813,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2814,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2815,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2826,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - hex
    - dlen
    argTypes:
    - char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 2828
      start: 2776
    functionDepth: 3
    functionLinenumber: 2776
    functionLinenumberEnd: 2828
    functionName: decodehexstr
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - calloc
    - cli_hex2ui
    - free
    - sprintf
    - mprintf
    linkageType: ''
    returnType: char
    signature: char *decodehexstr(const char *hex, unsigned int *dlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - hexstr
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2847
      start: 2830
    functionDepth: 0
    functionLinenumber: 2830
    functionLinenumberEnd: 2847
    functionName: get_paren_end
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_paren_end(char *hexstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/clamav/sigtool/sigtool.c:2859,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2861,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:2864,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2866,1
    - Dst: decodehexstr
      Src: /src/clamav/sigtool/sigtool.c:2867,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:2869,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:2869,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2871,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2872,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2880,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2881,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2882,1
    - Dst: decodehexstr
      Src: /src/clamav/sigtool/sigtool.c:2891,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2892,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2893,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2894,1
    - Dst: memcpy
      Src: /src/clamav/sigtool/sigtool.c:2897,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2899,1
    - Dst: get_paren_end
      Src: /src/clamav/sigtool/sigtool.c:2901,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2902,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2903,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2904,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:2909,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2910,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2911,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2912,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2916,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2919,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2921,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2925,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2927,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2930,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2933,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2935,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2939,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2941,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:2944,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2947,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2949,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2953,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2955,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:2959,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2960,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2961,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2962,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2968,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:2970,1
    - Dst: strpbrk
      Src: /src/clamav/sigtool/sigtool.c:2975,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:2980,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2981,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2982,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2983,1
    - Dst: cli_hex2str
      Src: /src/clamav/sigtool/sigtool.c:2988,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:2989,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2990,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2991,1
    - Dst: memcpy
      Src: /src/clamav/sigtool/sigtool.c:2994,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:2994,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:2995,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:2996,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:3010,1
    - Dst: sprintf
      Src: /src/clamav/sigtool/sigtool.c:3012,1
    - Dst: cli_hex2str
      Src: /src/clamav/sigtool/sigtool.c:3029,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3030,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3031,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3032,1
    - Dst: memcpy
      Src: /src/clamav/sigtool/sigtool.c:3035,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3035,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3036,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3037,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3041,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3042,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3043,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3047,1
    - Dst: decodehexstr
      Src: /src/clamav/sigtool/sigtool.c:3050,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3051,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3052,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3053,1
    - Dst: memcpy
      Src: /src/clamav/sigtool/sigtool.c:3056,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3058,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3061,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 190
    argCount: 2
    argNames:
    - hex
    - dlen
    argTypes:
    - char*
    - unsigned int*
    constantsTouched: []
    func_position:
      end: 3065
      start: 2849
    functionDepth: 4
    functionLinenumber: 2849
    functionLinenumberEnd: 3065
    functionName: decodehexspecial
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - calloc
    - strcmp
    - strpbrk
    - strlen
    - decodehexstr
    - strdup
    - strchr
    - get_paren_end
    - memcpy
    - cli_hex2str
    - free
    - sprintf
    - mprintf
    linkageType: ''
    returnType: char
    signature: char *decodehexspecial(const char *hex, unsigned int *dlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3075,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3076,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3083,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3088,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3089,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3101,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:3108,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3110,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:3113,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:3117,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3119,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3120,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:3123,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:3128,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3130,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3131,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3132,1
    - Dst: strncpy
      Src: /src/clamav/sigtool/sigtool.c:3135,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3142,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3143,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3144,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3146,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3147,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3149,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3152,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3152,1
    - Dst: strdup
      Src: /src/clamav/sigtool/sigtool.c:3153,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3166,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3183,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3185,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3187,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3189,1
    - Dst: decodehexspecial
      Src: /src/clamav/sigtool/sigtool.c:3191,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3192,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3193,1
    - Dst: write
      Src: /src/clamav/sigtool/sigtool.c:3196,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3198,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3200,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3206,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3215,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3215,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3226,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3227,1
    - Dst: atoi
      Src: /src/clamav/sigtool/sigtool.c:3227,1
    - Dst: cli_strtok
      Src: /src/clamav/sigtool/sigtool.c:3232,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3233,1
    - Dst: atoi
      Src: /src/clamav/sigtool/sigtool.c:3233,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3235,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3238,1
    - Dst: cli_strtok
      Src: /src/clamav/sigtool/sigtool.c:3241,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3242,1
    - Dst: atoi
      Src: /src/clamav/sigtool/sigtool.c:3242,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3244,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3247,1
    - Dst: cli_strtok
      Src: /src/clamav/sigtool/sigtool.c:3250,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3252,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3258,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3262,1
    - Dst: cli_strtok
      Src: /src/clamav/sigtool/sigtool.c:3271,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3272,1
    - Dst: decodehexspecial
      Src: /src/clamav/sigtool/sigtool.c:3275,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3276,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3277,1
    - Dst: write
      Src: /src/clamav/sigtool/sigtool.c:3280,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3282,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3284,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3286,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3287,1
    - Dst: decodehexspecial
      Src: /src/clamav/sigtool/sigtool.c:3291,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3292,1
    - Dst: write
      Src: /src/clamav/sigtool/sigtool.c:3295,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3297,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3299,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3302,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 192
    argCount: 1
    argNames:
    - hexsig
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3304
      start: 3067
    functionDepth: 5
    functionLinenumber: 3067
    functionLinenumberEnd: 3304
    functionName: decodehex
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - cli_strtok
    - calloc
    - strlen
    - strncpy
    - strdup
    - write
    - strchr
    - decodehexspecial
    - cli_isnumber
    - free
    - atoi
    - mprintf
    linkageType: ''
    returnType: int
    signature: int decodehex(const char *hexsig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3310,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3311,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3315,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3318,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3321,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3324,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3327,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - sigmod
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 3334
      start: 3306
    functionDepth: 1
    functionLinenumber: 3306
    functionLinenumberEnd: 3334
    functionName: decodesigmod
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - strlen
    - mprintf
    linkageType: ''
    returnType: int
    signature: int decodesigmod(const char *sigmod)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3344,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3345,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3345,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3346,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3347,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3348,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3349,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3351,1
    - Dst: cli_strtokenize
      Src: /src/clamav/sigtool/sigtool.c:3352,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3353,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3353,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3354,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3357,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3360,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3364,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3366,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3367,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3368,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3369,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3370,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3372,1
    - Dst: cli_strtokenize
      Src: /src/clamav/sigtool/sigtool.c:3373,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3374,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3374,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3375,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3378,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3381,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3385,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3387,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3388,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3389,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3390,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3392,1
    - Dst: cli_strtokenize
      Src: /src/clamav/sigtool/sigtool.c:3393,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3394,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3394,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3395,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3398,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3401,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3405,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3408,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3409,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3410,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3411,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3413,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3417,1
    - Dst: atoi
      Src: /src/clamav/sigtool/sigtool.c:3417,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3420,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3421,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3422,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3423,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3425,1
    - Dst: cli_strtokenize
      Src: /src/clamav/sigtool/sigtool.c:3426,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3427,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3427,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3428,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3431,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3434,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3438,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3441,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3441,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3442,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3443,1
    - Dst: strtol
      Src: /src/clamav/sigtool/sigtool.c:3447,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3449,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3452,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 108
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - char**
    constantsTouched: []
    func_position:
      end: 3458
      start: 3336
    functionDepth: 1
    functionLinenumber: 3336
    functionLinenumberEnd: 3458
    functionName: decodecdb
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strchr
    - cli_strtokenize
    - cli_isnumber
    - strtol
    - atoi
    - mprintf
    linkageType: ''
    returnType: int
    signature: int decodecdb(char **tokens)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3462,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3463,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3464,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3465,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3466,1
    - Dst: decodehex
      Src: /src/clamav/sigtool/sigtool.c:3467,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3468,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3469,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3471,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - tokens
    - tokens_count
    argTypes:
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 3475
      start: 3460
    functionDepth: 6
    functionLinenumber: 3460
    functionLinenumberEnd: 3475
    functionName: decodeftm
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - decodehex
    - mprintf
    linkageType: ''
    returnType: int
    signature: int decodeftm(char **tokens, int tokens_count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3484,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3485,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3491,1
    - Dst: cli_ldbtokenize
      Src: /src/clamav/sigtool/sigtool.c:3492,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3494,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3497,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3498,1
    - Dst: strstr
      Src: /src/clamav/sigtool/sigtool.c:3498,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3498,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3500,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3501,1
    - Dst: cli_ac_chklsig
      Src: /src/clamav/sigtool/sigtool.c:3502,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3502,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3504,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3509,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3513,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3518,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3520,1
    - Dst: cli_ldbtokenize
      Src: /src/clamav/sigtool/sigtool.c:3522,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3524,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3528,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3530,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3533,1
    - Dst: decodesigmod
      Src: /src/clamav/sigtool/sigtool.c:3534,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3536,1
    - Dst: decodesigmod
      Src: /src/clamav/sigtool/sigtool.c:3537,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3539,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3544,1
    - Dst: decodehex
      Src: /src/clamav/sigtool/sigtool.c:3545,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3547,1
    - Dst: matchsig
      Src: /src/clamav/sigtool/sigtool.c:3548,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3551,1
    - Dst: cli_strtokenize
      Src: /src/clamav/sigtool/sigtool.c:3552,1
    - Dst: decodecdb
      Src: /src/clamav/sigtool/sigtool.c:3555,1
    - Dst: strtol
      Src: /src/clamav/sigtool/sigtool.c:3561,1
    - Dst: decodeftm
      Src: /src/clamav/sigtool/sigtool.c:3563,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3567,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3568,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3571,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3573,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3575,1
    - Dst: cli_isnumber
      Src: /src/clamav/sigtool/sigtool.c:3577,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3578,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3581,1
    - Dst: atoi
      Src: /src/clamav/sigtool/sigtool.c:3582,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3584,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3587,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3590,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3593,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3596,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3599,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3602,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3605,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3608,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3611,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3614,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3617,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3620,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3623,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3626,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3628,1
    - Dst: decodehex
      Src: /src/clamav/sigtool/sigtool.c:3629,1
    - Dst: matchsig
      Src: /src/clamav/sigtool/sigtool.c:3631,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3631,1
    - Dst: strchr
      Src: /src/clamav/sigtool/sigtool.c:3633,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3635,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3637,1
    - Dst: decodehex
      Src: /src/clamav/sigtool/sigtool.c:3638,1
    - Dst: matchsig
      Src: /src/clamav/sigtool/sigtool.c:3640,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3643,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 156
    argCount: 2
    argNames:
    - sig
    - fd
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 3648
      start: 3477
    functionDepth: 8
    functionLinenumber: 3477
    functionLinenumberEnd: 3648
    functionName: decodesig
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 2
    functionsReached:
    - decodecdb
    - strcmp
    - strstr
    - strlen
    - strchr
    - decodehex
    - matchsig
    - cli_strtokenize
    - decodeftm
    - cli_isnumber
    - cli_ldbtokenize
    - strtol
    - decodesigmod
    - cli_ac_chklsig
    - atoi
    - mprintf
    linkageType: ''
    returnType: int
    signature: int decodesig(char *sig, int fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/clamav/sigtool/sigtool.c:3654,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:3655,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:3656,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3657,1
    - Dst: decodesig
      Src: /src/clamav/sigtool/sigtool.c:3659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3650
    functionDepth: 9
    functionLinenumber: 3650
    functionLinenumberEnd: 3663
    functionName: decodesigs
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - decodesig
    - strlen
    - fflush
    - fgets
    linkageType: ''
    returnType: int
    signature: int decodesigs(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3672,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:3676,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3676,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3678,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3678,1
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:3682,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3684,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3684,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:3685,1
    - Dst: fgets
      Src: /src/clamav/sigtool/sigtool.c:3689,1
    - Dst: cli_chomp
      Src: /src/clamav/sigtool/sigtool.c:3690,1
    - Dst: strlen
      Src: /src/clamav/sigtool/sigtool.c:3691,1
    - Dst: decodesig
      Src: /src/clamav/sigtool/sigtool.c:3693,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:3699,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:3700,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 3702
      start: 3665
    functionDepth: 9
    functionLinenumber: 3665
    functionLinenumberEnd: 3702
    functionName: testsigs
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - cli_chomp
    - close
    - decodesig
    - strlen
    - open
    - mprintf
    - optget
    - fclose
    - fgets
    - fopen
    linkageType: ''
    returnType: int
    signature: int testsigs(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getcwd
      Src: /src/clamav/sigtool/sigtool.c:3711,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3712,1
    - Dst: fopen
      Src: /src/clamav/sigtool/sigtool.c:3716,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3717,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3722,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:3723,1
    - Dst: opendir
      Src: /src/clamav/sigtool/sigtool.c:3727,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3728,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:3729,1
    - Dst: readdir
      Src: /src/clamav/sigtool/sigtool.c:3733,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3735,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3735,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:3738,1
    - Dst: compare
      Src: /src/clamav/sigtool/sigtool.c:3739,1
    - Dst: chdir
      Src: /src/clamav/sigtool/sigtool.c:3740,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3741,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:3742,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:3743,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:3744,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:3749,1
    - Dst: opendir
      Src: /src/clamav/sigtool/sigtool.c:3752,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3753,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:3754,1
    - Dst: readdir
      Src: /src/clamav/sigtool/sigtool.c:3758,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3760,1
    - Dst: strcmp
      Src: /src/clamav/sigtool/sigtool.c:3760,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:3763,1
    - Dst: dent::dent
      Src: /src/clamav/sigtool/sigtool.c:3763,1
    - Dst: access
      Src: /src/clamav/sigtool/sigtool.c:3764,1
    - Dst: fprintf
      Src: /src/clamav/sigtool/sigtool.c:3765,1
    - Dst: closedir
      Src: /src/clamav/sigtool/sigtool.c:3768,1
    - Dst: fclose
      Src: /src/clamav/sigtool/sigtool.c:3770,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3771,1
    - Dst: chdir
      Src: /src/clamav/sigtool/sigtool.c:3772,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3773,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - old
    - new
    - patch
    argTypes:
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3776
      start: 3704
    functionDepth: 3
    functionLinenumber: 3704
    functionLinenumberEnd: 3776
    functionName: diffdirs
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 1
    functionsReached:
    - getcwd
    - snprintf
    - chdir
    - strcmp
    - closedir
    - access
    - unlink
    - compare
    - dent::dent
    - opendir
    - mprintf
    - readdir
    - fprintf
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int diffdirs(const char *old, const char *new, const char *patch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3786,1
    - Dst: cl_cvdhead
      Src: /src/clamav/sigtool/sigtool.c:3790,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3791,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3795,1
    - Dst: cl_cvdhead
      Src: /src/clamav/sigtool/sigtool.c:3797,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3797,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3798,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3798,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3802,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3805,1
    - Dst: createTempDir
      Src: /src/clamav/sigtool/sigtool.c:3809,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/sigtool/sigtool.c:3813,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3813,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3814,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3814,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:3815,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3816,1
    - Dst: createTempDir
      Src: /src/clamav/sigtool/sigtool.c:3820,1
    - Dst: cl_cvdunpack_ex
      Src: /src/clamav/sigtool/sigtool.c:3824,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3825,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:3826,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:3827,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3828,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3829,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:3833,1
    - Dst: getdbname
      Src: /src/clamav/sigtool/sigtool.c:3833,1
    - Dst: diffdirs
      Src: /src/clamav/sigtool/sigtool.c:3834,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:3836,1
    - Dst: removeTempDir
      Src: /src/clamav/sigtool/sigtool.c:3837,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3838,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3839,1
    - Dst: verifydiff
      Src: /src/clamav/sigtool/sigtool.c:3844,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3844,1
    - Dst: snprintf
      Src: /src/clamav/sigtool/sigtool.c:3845,1
    - Dst: rename
      Src: /src/clamav/sigtool/sigtool.c:3846,1
    - Dst: unlink
      Src: /src/clamav/sigtool/sigtool.c:3847,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3848,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3850,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 3856
      start: 3778
    functionDepth: 8
    functionLinenumber: 3778
    functionLinenumberEnd: 3856
    functionName: makediff
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - createTempDir
    - snprintf
    - cl_cvdunpack_ex
    - rename
    - removeTempDir
    - getdbname
    - unlink
    - verifydiff
    - optget
    - cl_cvdhead
    - diffdirs
    - free
    - mprintf
    linkageType: ''
    returnType: int
    signature: int makediff(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:3872,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3874,1
    - Dst: open
      Src: /src/clamav/sigtool/sigtool.c:3879,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3881,1
    - Dst: lseek
      Src: /src/clamav/sigtool/sigtool.c:3885,1
    - Dst: FSTAT
      Src: /src/clamav/sigtool/sigtool.c:3886,1
    - Dst: fmap
      Src: /src/clamav/sigtool/sigtool.c:3888,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3890,1
    - Dst: cl_engine_new
      Src: /src/clamav/sigtool/sigtool.c:3895,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3896,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/sigtool/sigtool.c:3899,1
    - Dst: cli_initroots
      Src: /src/clamav/sigtool/sigtool.c:3901,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3902,1
    - Dst: cli_add_content_match_pattern
      Src: /src/clamav/sigtool/sigtool.c:3906,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3907,1
    - Dst: cl_engine_compile
      Src: /src/clamav/sigtool/sigtool.c:3911,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3912,1
    - Dst: cl_engine_set_num
      Src: /src/clamav/sigtool/sigtool.c:3916,1
    - Dst: cl_debug
      Src: /src/clamav/sigtool/sigtool.c:3917,1
    - Dst: evidence_new
      Src: /src/clamav/sigtool/sigtool.c:3922,1
    - Dst: calloc
      Src: /src/clamav/sigtool/sigtool.c:3929,1
    - Dst: cli_check_auth_header
      Src: /src/clamav/sigtool/sigtool.c:3941,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3953,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3956,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3959,1
    - Dst: funmap
      Src: /src/clamav/sigtool/sigtool.c:3968,1
    - Dst: free
      Src: /src/clamav/sigtool/sigtool.c:3971,1
    - Dst: evidence_free
      Src: /src/clamav/sigtool/sigtool.c:3974,1
    - Dst: cl_engine_free
      Src: /src/clamav/sigtool/sigtool.c:3977,1
    - Dst: close
      Src: /src/clamav/sigtool/sigtool.c:3980,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 96
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 3983
      start: 3858
    functionDepth: 8
    functionLinenumber: 3858
    functionLinenumberEnd: 3983
    functionName: dumpcerts
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 0
    functionsReached:
    - fmap
    - cl_engine_free
    - cl_engine_new
    - cli_initroots
    - cli_check_auth_header
    - lseek
    - cli_add_content_match_pattern
    - funmap
    - cl_engine_compile
    - cl_engine_set_num
    - evidence_new
    - optget
    - mprintf
    - close
    - calloc
    - open
    - FSTAT
    - free
    - evidence_free
    - cl_debug
    linkageType: ''
    returnType: int
    signature: int dumpcerts(const struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3987,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3988,1
    - Dst: get_version
      Src: /src/clamav/sigtool/sigtool.c:3988,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3989,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3990,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3991,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3992,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3993,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3994,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3995,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3996,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3997,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3998,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:3999,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4000,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4001,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4002,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4003,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4004,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4005,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4006,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4007,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4008,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4009,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4010,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4011,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4012,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4013,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4014,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4015,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4016,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4017,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4018,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4019,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4020,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4021,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4022,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4023,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4024,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4025,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4026,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4027,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4028,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4029,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4030,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4031,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4032,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4033,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4034,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4035,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4036,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4037,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4038,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4039,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4040,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4041,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4042,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4043,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4044,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4045,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4046,1
    - Dst: cl_retflevel
      Src: /src/clamav/sigtool/sigtool.c:4046,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4047,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4048,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4049,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4050,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4051,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4052,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4053,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4054,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4055,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4056,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4057,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4058,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4059,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4060,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4061,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4062,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4063,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4064,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4065,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4066,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4067,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4068,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4069,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4070,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4071,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4072,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4073,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4074,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4075,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4076,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4077,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4078,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4079,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4080,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4081,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4082,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4083,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4084,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4085,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4086,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4087,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4088,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4089,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4090,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4091,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4092,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4093,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4094,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4095,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4096,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4097,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4098,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4099,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4100,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4101,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4102,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4103,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4104,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4105,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4106,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4107,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4108,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4109,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4110,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4111,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4112,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4113,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4117
      start: 3985
    functionDepth: 1
    functionLinenumber: 3985
    functionLinenumberEnd: 4117
    functionName: help
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 6
    functionsReached:
    - cl_retflevel
    - get_version
    - mprintf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_flevel
      Src: /src/clamav/sigtool/sigtool.c:4125,1
    - Dst: exit
      Src: /src/clamav/sigtool/sigtool.c:4126,1
    - Dst: cl_init
      Src: /src/clamav/sigtool/sigtool.c:4128,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4129,1
    - Dst: cl_strerror
      Src: /src/clamav/sigtool/sigtool.c:4129,1
    - Dst: clrs_log_init
      Src: /src/clamav/sigtool/sigtool.c:4135,1
    - Dst: cli_dbgmsg
      Src: /src/clamav/sigtool/sigtool.c:4136,1
    - Dst: optparse
      Src: /src/clamav/sigtool/sigtool.c:4140,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4142,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4146,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4149,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4152,1
    - Dst: cl_debug
      Src: /src/clamav/sigtool/sigtool.c:4153,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4155,1
    - Dst: print_version
      Src: /src/clamav/sigtool/sigtool.c:4156,1
    - Dst: optfree
      Src: /src/clamav/sigtool/sigtool.c:4157,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4161,1
    - Dst: optfree
      Src: /src/clamav/sigtool/sigtool.c:4162,1
    - Dst: help
      Src: /src/clamav/sigtool/sigtool.c:4163,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4167,1
    - Dst: hexdump
      Src: /src/clamav/sigtool/sigtool.c:4168,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4169,1
    - Dst: hashsig
      Src: /src/clamav/sigtool/sigtool.c:4170,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4171,1
    - Dst: hashsig
      Src: /src/clamav/sigtool/sigtool.c:4172,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4173,1
    - Dst: hashsig
      Src: /src/clamav/sigtool/sigtool.c:4174,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4175,1
    - Dst: hashsig
      Src: /src/clamav/sigtool/sigtool.c:4176,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4177,1
    - Dst: hashsig
      Src: /src/clamav/sigtool/sigtool.c:4178,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4179,1
    - Dst: fuzzy_img
      Src: /src/clamav/sigtool/sigtool.c:4180,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4181,1
    - Dst: htmlnorm
      Src: /src/clamav/sigtool/sigtool.c:4182,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4183,1
    - Dst: asciinorm
      Src: /src/clamav/sigtool/sigtool.c:4184,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4185,1
    - Dst: utf16decode
      Src: /src/clamav/sigtool/sigtool.c:4186,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4187,1
    - Dst: build
      Src: /src/clamav/sigtool/sigtool.c:4188,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4192,1
    - Dst: build
      Src: /src/clamav/sigtool/sigtool.c:4193,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4195,1
    - Dst: sign
      Src: /src/clamav/sigtool/sigtool.c:4196,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4197,1
    - Dst: verify
      Src: /src/clamav/sigtool/sigtool.c:4198,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4199,1
    - Dst: unpack
      Src: /src/clamav/sigtool/sigtool.c:4200,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4201,1
    - Dst: unpack
      Src: /src/clamav/sigtool/sigtool.c:4202,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4203,1
    - Dst: cvdinfo
      Src: /src/clamav/sigtool/sigtool.c:4204,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4205,1
    - Dst: listsigs
      Src: /src/clamav/sigtool/sigtool.c:4206,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4207,1
    - Dst: listsigs
      Src: /src/clamav/sigtool/sigtool.c:4208,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4209,1
    - Dst: decodesigs
      Src: /src/clamav/sigtool/sigtool.c:4210,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4211,1
    - Dst: testsigs
      Src: /src/clamav/sigtool/sigtool.c:4212,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4213,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4213,1
    - Dst: vbadump
      Src: /src/clamav/sigtool/sigtool.c:4214,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4215,1
    - Dst: makediff
      Src: /src/clamav/sigtool/sigtool.c:4216,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4217,1
    - Dst: compareone
      Src: /src/clamav/sigtool/sigtool.c:4218,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4219,1
    - Dst: dumpcerts
      Src: /src/clamav/sigtool/sigtool.c:4220,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4221,1
    - Dst: rundiff
      Src: /src/clamav/sigtool/sigtool.c:4222,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4223,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4225,1
    - Dst: CLAMSTAT
      Src: /src/clamav/sigtool/sigtool.c:4228,1
    - Dst: mprintf
      Src: /src/clamav/sigtool/sigtool.c:4229,1
    - Dst: S_ISDIR
      Src: /src/clamav/sigtool/sigtool.c:4232,1
    - Dst: verifydiff
      Src: /src/clamav/sigtool/sigtool.c:4233,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4233,1
    - Dst: verifydiff
      Src: /src/clamav/sigtool/sigtool.c:4235,1
    - Dst: optget
      Src: /src/clamav/sigtool/sigtool.c:4235,1
    - Dst: help
      Src: /src/clamav/sigtool/sigtool.c:4239,1
    - Dst: optfree
      Src: /src/clamav/sigtool/sigtool.c:4241,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 105
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 4244
      start: 4119
    functionDepth: 13
    functionLinenumber: 4119
    functionLinenumberEnd: 4244
    functionName: main
    functionSourceFile: /src/clamav/sigtool/sigtool.c
    functionUses: 4
    functionsReached:
    - htmlnorm
    - help
    - cl_init
    - clrs_log_init
    - utf16decode
    - S_ISDIR
    - verifydiff
    - print_version
    - optfree
    - dumpcerts
    - rundiff
    - compareone
    - optget
    - cli_dbgmsg
    - fuzzy_img
    - cvdinfo
    - hexdump
    - mprintf
    - cl_strerror
    - check_flevel
    - hashsig
    - verify
    - makediff
    - optparse
    - listsigs
    - build
    - asciinorm
    - unpack
    - exit
    - sign
    - decodesigs
    - vbadump
    - CLAMSTAT
    - testsigs
    - cl_debug
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/clamav/freshclam/execute.c:45,1
    - Dst: logg
      Src: /src/clamav/freshclam/execute.c:46,1
    - Dst: exit
      Src: /src/clamav/freshclam/execute.c:47,1
    - Dst: system
      Src: /src/clamav/freshclam/execute.c:49,1
    - Dst: logg
      Src: /src/clamav/freshclam/execute.c:50,1
    - Dst: system
      Src: /src/clamav/freshclam/execute.c:56,1
    - Dst: logg
      Src: /src/clamav/freshclam/execute.c:57,1
    - Dst: fork
      Src: /src/clamav/freshclam/execute.c:63,1
    - Dst: system
      Src: /src/clamav/freshclam/execute.c:65,1
    - Dst: logg
      Src: /src/clamav/freshclam/execute.c:66,1
    - Dst: exit
      Src: /src/clamav/freshclam/execute.c:68,1
    - Dst: logg
      Src: /src/clamav/freshclam/execute.c:70,1
    - Dst: strerror
      Src: /src/clamav/freshclam/execute.c:70,1
    - Dst: logg
      Src: /src/clamav/freshclam/execute.c:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - type
    - text
    - bDaemonized
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 79
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 79
    functionName: execute
    functionSourceFile: /src/clamav/freshclam/execute.c
    functionUses: 2
    functionsReached:
    - sscanf
    - strerror
    - exit
    - fork
    - system
    - logg
    linkageType: ''
    returnType: void
    signature: void execute(const char *type, const char *text, int bDaemonized)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/clamav/freshclam/freshclam.c:93,1
    - Dst: cli_rmdirs
      Src: /src/clamav/freshclam/freshclam.c:119,1
    - Dst: unlink
      Src: /src/clamav/freshclam/freshclam.c:121,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:122,1
    - Dst: exit
      Src: /src/clamav/freshclam/freshclam.c:123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 127
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 127
    functionName: sighandler
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - waitpid
    - unlink
    - exit
    - logg
    - cli_rmdirs
    linkageType: ''
    returnType: void
    signature: void sighandler(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/clamav/freshclam/freshclam.c:133,1
    - Dst: fopen
      Src: /src/clamav/freshclam/freshclam.c:134,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:135,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:135,1
    - Dst: fprintf
      Src: /src/clamav/freshclam/freshclam.c:138,1
    - Dst: getpid
      Src: /src/clamav/freshclam/freshclam.c:138,1
    - Dst: fclose
      Src: /src/clamav/freshclam/freshclam.c:139,1
    - Dst: umask
      Src: /src/clamav/freshclam/freshclam.c:141,1
    - Dst: geteuid
      Src: /src/clamav/freshclam/freshclam.c:147,1
    - Dst: getpwuid
      Src: /src/clamav/freshclam/freshclam.c:148,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:151,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - pidfile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: writepid
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - geteuid
    - getpid
    - getpwuid
    - strerror
    - fprintf
    - logg
    - fclose
    - umask
    - fopen
    linkageType: ''
    returnType: int
    signature: int writepid(const char *pidfile)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:162,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:163,1
    - Dst: get_version
      Src: /src/clamav/freshclam/freshclam.c:163,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:164,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:165,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:166,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:167,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:168,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:169,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:170,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:171,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:172,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:173,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:174,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:175,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:176,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:177,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:178,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:179,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:180,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:182,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:183,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:185,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:186,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:188,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:189,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:191,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:192,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:193,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:194,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:195,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:196,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:197,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:198,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:199,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:200,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:201,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:202,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:203,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:204,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:205,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:206,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:207,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:208,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:210,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:211,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:212,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:213,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:215,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:216,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:217,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:218,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:219,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:220,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:221,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:222,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:223,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:224,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:225,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:226,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:227,1
    - Dst: printf
      Src: /src/clamav/freshclam/freshclam.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 229
    functionName: help
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 7
    functionsReached:
    - get_version
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/freshclam/freshclam.c:233,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/freshclam/freshclam.c:234,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:238,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:241,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - severity
    - fullmsg
    - msg
    - ctx
    argTypes:
    - enum cl_msg
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 247
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 247
    functionName: libclamav_msg_callback
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - logg
    linkageType: ''
    returnType: void
    signature: void libclamav_msg_callback(enum cl_msg severity, const char *fullmsg,
      const char *msg, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNUSEDPARAM
      Src: /src/clamav/freshclam/freshclam.c:251,1
    - Dst: UNUSEDPARAM
      Src: /src/clamav/freshclam/freshclam.c:252,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - severity
    - fullmsg
    - msg
    - ctx
    argTypes:
    - enum cl_msg
    - char*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: libclamav_msg_callback_quiet
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - UNUSEDPARAM
    - logg
    linkageType: ''
    returnType: void
    signature: void libclamav_msg_callback_quiet(enum cl_msg severity, const char
      *fullmsg, const char *msg, void *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:279,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:283,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:284,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:285,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:287,1
    - Dst: fc_test_database
      Src: /src/clamav/freshclam/freshclam.c:293,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:294,1
    - Dst: GetExceptionCode
      Src: /src/clamav/freshclam/freshclam.c:295,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:300,1
    - Dst: fc_strerror
      Src: /src/clamav/freshclam/freshclam.c:300,1
    - Dst: pipe
      Src: /src/clamav/freshclam/freshclam.c:307,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:312,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:312,1
    - Dst: fc_test_database
      Src: /src/clamav/freshclam/freshclam.c:313,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:315,1
    - Dst: fc_strerror
      Src: /src/clamav/freshclam/freshclam.c:315,1
    - Dst: fork
      Src: /src/clamav/freshclam/freshclam.c:328,1
    - Dst: close
      Src: /src/clamav/freshclam/freshclam.c:334,1
    - Dst: close
      Src: /src/clamav/freshclam/freshclam.c:335,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:336,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:336,1
    - Dst: fc_test_database
      Src: /src/clamav/freshclam/freshclam.c:339,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:341,1
    - Dst: fc_strerror
      Src: /src/clamav/freshclam/freshclam.c:341,1
    - Dst: close
      Src: /src/clamav/freshclam/freshclam.c:351,1
    - Dst: dup2
      Src: /src/clamav/freshclam/freshclam.c:354,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:355,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:355,1
    - Dst: fc_test_database
      Src: /src/clamav/freshclam/freshclam.c:359,1
    - Dst: exit
      Src: /src/clamav/freshclam/freshclam.c:360,1
    - Dst: close
      Src: /src/clamav/freshclam/freshclam.c:369,1
    - Dst: fdopen
      Src: /src/clamav/freshclam/freshclam.c:370,1
    - Dst: fgets
      Src: /src/clamav/freshclam/freshclam.c:374,1
    - Dst: strncmp
      Src: /src/clamav/freshclam/freshclam.c:378,1
    - Dst: fgets
      Src: /src/clamav/freshclam/freshclam.c:380,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:382,1
    - Dst: fclose
      Src: /src/clamav/freshclam/freshclam.c:384,1
    - Dst: waitpid
      Src: /src/clamav/freshclam/freshclam.c:387,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:392,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:392,1
    - Dst: cli_chomp
      Src: /src/clamav/freshclam/freshclam.c:395,1
    - Dst: cli_chomp
      Src: /src/clamav/freshclam/freshclam.c:396,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:400,1
    - Dst: WIFEXITED
      Src: /src/clamav/freshclam/freshclam.c:403,1
    - Dst: WEXITSTATUS
      Src: /src/clamav/freshclam/freshclam.c:404,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:406,1
    - Dst: fc_strerror
      Src: /src/clamav/freshclam/freshclam.c:406,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:412,1
    - Dst: WIFSIGNALED
      Src: /src/clamav/freshclam/freshclam.c:414,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:415,1
    - Dst: WTERMSIG
      Src: /src/clamav/freshclam/freshclam.c:415,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:419,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:434,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:436,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 115
    argCount: 2
    argNames:
    - dbFilename
    - context
    argTypes:
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 443
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 443
    functionName: download_complete_callback
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - fc_strerror
    - WIFSIGNALED
    - fork
    - WIFEXITED
    - fdopen
    - strerror
    - dup2
    - fc_test_database
    - cli_chomp
    - close
    - GetExceptionCode
    - pipe
    - waitpid
    - fclose
    - fgets
    - exit
    - WTERMSIG
    - WEXITSTATUS
    - logg
    - strncmp
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t download_complete_callback(const char *dbFilename, void
      *context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:478,1
    - Dst: strncmp
      Src: /src/clamav/freshclam/freshclam.c:487,1
    - Dst: strstr
      Src: /src/clamav/freshclam/freshclam.c:487,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/freshclam/freshclam.c:488,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:490,1
    - Dst: strstr
      Src: /src/clamav/freshclam/freshclam.c:494,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:495,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:495,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:495,1
    - Dst: malloc
      Src: /src/clamav/freshclam/freshclam.c:496,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:498,1
    - Dst: snprintf
      Src: /src/clamav/freshclam/freshclam.c:502,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:504,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/freshclam/freshclam.c:505,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:507,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - server
    - defaultProtocol
    - serverUrl
    argTypes:
    - char*
    - char*
    - char**
    constantsTouched: []
    func_position:
      end: 518
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 518
    functionName: get_server_node
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strstr
    - strlen
    - logg
    - malloc
    - cli_safer_strdup
    - strncmp
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t get_server_node(\n    const char *server,\n    char *defaultProtocol,\n
      \   char **serverUrl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:538,1
    - Dst: cli_safer_realloc
      Src: /src/clamav/freshclam/freshclam.c:543,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:545,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/freshclam/freshclam.c:552,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:554,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - item
    - stringList
    - nListItems
    argTypes:
    - char*
    - char***
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 565
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 565
    functionName: string_list_add
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - cli_safer_strdup
    - cli_safer_realloc
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t string_list_add(const char *item, char ***stringList, uint32_t
      *nListItems)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:582,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - stringList
    - nListItems
    argTypes:
    - char**
    - uint32_t
    constantsTouched: []
    func_position:
      end: 589
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 589
    functionName: free_string_list
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_string_list(char **stringList, uint32_t nListItems)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:613,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:621,1
    - Dst: cli_strbcasestr
      Src: /src/clamav/freshclam/freshclam.c:629,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:630,1
    - Dst: get_server_node
      Src: /src/clamav/freshclam/freshclam.c:635,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:636,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:641,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:642,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:644,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:648,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:652,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:654,1
    - Dst: get_server_node
      Src: /src/clamav/freshclam/freshclam.c:662,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:663,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:668,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:669,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:671,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:675,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:686,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 4
    argNames:
    - opts
    - serverList
    - nServers
    - bPrivate
    argTypes:
    - struct optstruct*
    - char***
    - uint32_t*
    - int*
    constantsTouched: []
    func_position:
      end: 690
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 690
    functionName: get_database_server_list
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - string_list_add
    - cli_strbcasestr
    - optget
    - logg
    - free_string_list
    - get_server_node
    - free
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t get_database_server_list(\n    struct optstruct *opts,\n
      \   char ***serverList,\n    uint32_t *nServers,\n    int *bPrivate)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:711,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:721,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:722,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:735,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - opt
    - stringList
    - nListItems
    argTypes:
    - struct optstruct*
    - char***
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 739
      start: 702
    functionDepth: 4
    functionLinenumber: 702
    functionLinenumberEnd: 739
    functionName: get_string_list
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - free_string_list
    - string_list_add
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t get_string_list(const struct optstruct *opt, char ***stringList,
      uint32_t *nListItems)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/clamav/freshclam/freshclam.c:752,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:755,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:762,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:773,1
    - Dst: LSTAT
      Src: /src/clamav/freshclam/freshclam.c:775,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:780,1
    - Dst: mkdir
      Src: /src/clamav/freshclam/freshclam.c:782,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:783,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:784,1
    - Dst: geteuid
      Src: /src/clamav/freshclam/freshclam.c:790,1
    - Dst: getpwnam
      Src: /src/clamav/freshclam/freshclam.c:793,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:793,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:794,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:795,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:797,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:798,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:799,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:801,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:802,1
    - Dst: chown
      Src: /src/clamav/freshclam/freshclam.c:808,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:809,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:809,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:809,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:814,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:814,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:823,1
    - Dst: getenv
      Src: /src/clamav/freshclam/freshclam.c:826,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:839,1
    - Dst: drop_privileges
      Src: /src/clamav/freshclam/freshclam.c:845,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:845,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:847,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:847,1
    - Dst: cl_init
      Src: /src/clamav/freshclam/freshclam.c:857,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:858,1
    - Dst: cl_strerror
      Src: /src/clamav/freshclam/freshclam.c:858,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:869,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:869,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:872,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:873,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:878,1
    - Dst: cl_set_clcb_msg
      Src: /src/clamav/freshclam/freshclam.c:881,1
    - Dst: cl_set_clcb_msg
      Src: /src/clamav/freshclam/freshclam.c:884,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:887,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:892,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:896,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:900,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:903,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:903,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:906,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:909,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:913,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:914,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:918,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:919,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:920,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:925,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:926,1
    - Dst: cli_gentemp_with_prefix
      Src: /src/clamav/freshclam/freshclam.c:929,1
    - Dst: strncpy
      Src: /src/clamav/freshclam/freshclam.c:933,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:942,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:946,1
    - Dst: CLAMSTAT
      Src: /src/clamav/freshclam/freshclam.c:947,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:948,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:953,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:961,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:962,1
    - Dst: strncasecmp
      Src: /src/clamav/freshclam/freshclam.c:963,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:963,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:964,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:966,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:967,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:968,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:969,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:971,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:976,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:977,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:978,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:981,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:983,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:984,1
    - Dst: strstr
      Src: /src/clamav/freshclam/freshclam.c:985,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:985,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:989,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:990,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:991,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:996,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1000,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1001,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1002,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1004,1
    - Dst: fc_initialize
      Src: /src/clamav/freshclam/freshclam.c:1009,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1010,1
    - Dst: fc_set_fccb_download_complete
      Src: /src/clamav/freshclam/freshclam.c:1018,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:1024,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 178
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct optstruct*
    constantsTouched: []
    func_position:
      end: 1028
      start: 741
    functionDepth: 6
    functionLinenumber: 741
    functionLinenumberEnd: 1028
    functionName: initialize
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 3
    functionsReached:
    - geteuid
    - cli_gentemp_with_prefix
    - cl_init
    - fc_initialize
    - strncasecmp
    - strerror
    - strstr
    - strncpy
    - fc_set_fccb_download_complete
    - optget
    - getpwnam
    - mprintf
    - cl_strerror
    - memset
    - cl_set_clcb_msg
    - chown
    - drop_privileges
    - free
    - getenv
    - mkdir
    - strlen
    - CLAMSTAT
    - LSTAT
    - logg
    linkageType: ''
    returnType: fc_error_t
    signature: fc_error_t initialize(struct optstruct *opts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1055,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:1065,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1066,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:1073,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1074,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1080,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1088,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1093,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 4
    argNames:
    - standardDatabases
    - nStandardDatabases
    - optionalDatabases
    - nOptionalDatabases
    argTypes:
    - char***
    - uint32_t*
    - char***
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1100
      start: 1041
    functionDepth: 4
    functionLinenumber: 1041
    functionLinenumberEnd: 1100
    functionName: get_official_database_lists
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - free_string_list
    - string_list_add
    - logg
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t get_official_database_lists(\n    char ***standardDatabases,\n
      \   uint32_t *nStandardDatabases,\n    char ***optionalDatabases,\n    uint32_t
      *nOptionalDatabases)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1139,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1147,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1152,1
    - Dst: get_official_database_lists
      Src: /src/clamav/freshclam/freshclam.c:1159,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1160,1
    - Dst: calloc
      Src: /src/clamav/freshclam/freshclam.c:1165,1
    - Dst: strcasecmp
      Src: /src/clamav/freshclam/freshclam.c:1175,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1181,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1185,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:1186,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1187,1
    - Dst: strcasecmp
      Src: /src/clamav/freshclam/freshclam.c:1201,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1207,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1211,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:1212,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1213,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1227,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1230,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1234,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 6
    argNames:
    - optInList
    - nOptIns
    - optOutList
    - nOptOuts
    - databaseList
    - nDatabases
    argTypes:
    - char**
    - uint32_t
    - char**
    - uint32_t
    - char***
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1239
      start: 1119
    functionDepth: 5
    functionLinenumber: 1119
    functionLinenumberEnd: 1239
    functionName: select_from_official_databases
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - get_official_database_lists
    - string_list_add
    - calloc
    - strcasecmp
    - logg
    - free_string_list
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t select_from_official_databases(\n    char **optInList,\n
      \   uint32_t nOptIns,\n    char **optOutList,\n    uint32_t nOptOuts,\n    char
      ***databaseList,\n    uint32_t *nDatabases)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1276,1
    - Dst: calloc
      Src: /src/clamav/freshclam/freshclam.c:1284,1
    - Dst: get_official_database_lists
      Src: /src/clamav/freshclam/freshclam.c:1289,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1290,1
    - Dst: strcmp
      Src: /src/clamav/freshclam/freshclam.c:1303,1
    - Dst: strcmp
      Src: /src/clamav/freshclam/freshclam.c:1310,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:1311,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1312,1
    - Dst: strcmp
      Src: /src/clamav/freshclam/freshclam.c:1323,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:1324,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1325,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1335,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1349,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1352,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1356,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 5
    argNames:
    - specificDatabaseList
    - nSpecificDatabases
    - databaseList
    - nDatabases
    - bCustom
    argTypes:
    - char**
    - uint32_t
    - char***
    - uint32_t*
    - int*
    constantsTouched: []
    func_position:
      end: 1361
      start: 1255
    functionDepth: 5
    functionLinenumber: 1255
    functionLinenumberEnd: 1361
    functionName: select_specific_databases
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - get_official_database_lists
    - string_list_add
    - calloc
    - strcmp
    - logg
    - free_string_list
    - mprintf
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t select_specific_databases(\n    char **specificDatabaseList,\n
      \   uint32_t nSpecificDatabases,\n    char ***databaseList,\n    uint32_t *nDatabases,\n
      \   int *bCustom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1374,1
    - Dst: strstr
      Src: /src/clamav/freshclam/freshclam.c:1379,1
    - Dst: execute
      Src: /src/clamav/freshclam/freshclam.c:1383,1
    - Dst: strchr
      Src: /src/clamav/freshclam/freshclam.c:1392,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1393,1
    - Dst: malloc
      Src: /src/clamav/freshclam/freshclam.c:1399,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:1399,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:1399,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1401,1
    - Dst: strncpy
      Src: /src/clamav/freshclam/freshclam.c:1407,1
    - Dst: strcat
      Src: /src/clamav/freshclam/freshclam.c:1411,1
    - Dst: strcat
      Src: /src/clamav/freshclam/freshclam.c:1415,1
    - Dst: execute
      Src: /src/clamav/freshclam/freshclam.c:1418,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:1426,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - command
    - newVersion
    - bDaemonized
    argTypes:
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1430
      start: 1363
    functionDepth: 4
    functionLinenumber: 1363
    functionLinenumberEnd: 1430
    functionName: executeIfNewVersion
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - strcat
    - strstr
    - strlen
    - strncpy
    - strchr
    - logg
    - malloc
    - execute
    - free
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t executeIfNewVersion(\n    const char *command,\n    char
      *newVersion,\n    int bDaemonized)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1485,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1490,1
    - Dst: time
      Src: /src/clamav/freshclam/freshclam.c:1494,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1495,1
    - Dst: ctime
      Src: /src/clamav/freshclam/freshclam.c:1495,1
    - Dst: malloc
      Src: /src/clamav/freshclam/freshclam.c:1504,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1506,1
    - Dst: strdup
      Src: /src/clamav/freshclam/freshclam.c:1512,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1514,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:1523,1
    - Dst: strcasecmp
      Src: /src/clamav/freshclam/freshclam.c:1523,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:1523,1
    - Dst: CLI_STRNDUP
      Src: /src/clamav/freshclam/freshclam.c:1527,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:1527,1
    - Dst: strlen
      Src: /src/clamav/freshclam/freshclam.c:1527,1
    - Dst: fc_prune_database_directory
      Src: /src/clamav/freshclam/freshclam.c:1533,1
    - Dst: fc_dns_query_update_info
      Src: /src/clamav/freshclam/freshclam.c:1539,1
    - Dst: LSTAT
      Src: /src/clamav/freshclam/freshclam.c:1544,1
    - Dst: mkdir
      Src: /src/clamav/freshclam/freshclam.c:1545,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1546,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1547,1
    - Dst: getuid
      Src: /src/clamav/freshclam/freshclam.c:1547,1
    - Dst: getgid
      Src: /src/clamav/freshclam/freshclam.c:1547,1
    - Dst: fc_update_databases
      Src: /src/clamav/freshclam/freshclam.c:1557,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1568,1
    - Dst: fc_strerror
      Src: /src/clamav/freshclam/freshclam.c:1568,1
    - Dst: fc_download_url_databases
      Src: /src/clamav/freshclam/freshclam.c:1579,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1585,1
    - Dst: fc_strerror
      Src: /src/clamav/freshclam/freshclam.c:1585,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1591,1
    - Dst: notify
      Src: /src/clamav/freshclam/freshclam.c:1596,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:1607,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:1610,1
    - Dst: LSTAT
      Src: /src/clamav/freshclam/freshclam.c:1614,1
    - Dst: cli_rmdirs
      Src: /src/clamav/freshclam/freshclam.c:1617,1
    - Dst: execute
      Src: /src/clamav/freshclam/freshclam.c:1626,1
    - Dst: executeIfNewVersion
      Src: /src/clamav/freshclam/freshclam.c:1630,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:1635,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:1638,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 110
    argCount: 15
    argNames:
    - databaseList
    - nDatabases
    - urlDatabaseList
    - nUrlDatabases
    - serverList
    - nServers
    - bPrivateMirror
    - dnsUpdateInfoServer
    - bScriptedUpdates
    - bPrune
    - onUpdateExecute
    - onOutdatedExecute
    - bDaemonized
    - notifyClamd
    - fc_context
    argTypes:
    - char**
    - uint32_t
    - char**
    - uint32_t
    - char**
    - uint32_t
    - int
    - char*
    - int
    - int
    - char*
    - char*
    - int
    - char*
    - fc_ctx*
    constantsTouched: []
    func_position:
      end: 1642
      start: 1453
    functionDepth: 5
    functionLinenumber: 1453
    functionLinenumberEnd: 1642
    functionName: perform_database_update
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 0
    functionsReached:
    - fc_strerror
    - fc_download_url_databases
    - strcasecmp
    - executeIfNewVersion
    - notify
    - CLI_STRNDUP
    - time
    - execute
    - cli_rmdirs
    - fc_update_databases
    - mprintf
    - getuid
    - getgid
    - malloc
    - free
    - fc_dns_query_update_info
    - mkdir
    - strlen
    - strdup
    - ctime
    - LSTAT
    - fc_prune_database_directory
    - logg
    linkageType: ''
    returnType: fc_error_t
    signature: "fc_error_t perform_database_update(\n    char **databaseList,\n    uint32_t
      nDatabases,\n    char **urlDatabaseList,\n    uint32_t nUrlDatabases,\n    char
      **serverList,\n    uint32_t nServers,\n    int bPrivateMirror,\n    const char
      *dnsUpdateInfoServer,\n    int bScriptedUpdates,\n    int bPrune,\n    const
      char *onUpdateExecute,\n    const char *onOutdatedExecute,\n    int bDaemonized,\n
      \   char *notifyClamd,\n    fc_ctx *fc_context)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/clamav/freshclam/freshclam.c:1678,1
    - Dst: check_flevel
      Src: /src/clamav/freshclam/freshclam.c:1680,1
    - Dst: exit
      Src: /src/clamav/freshclam/freshclam.c:1681,1
    - Dst: optparse
      Src: /src/clamav/freshclam/freshclam.c:1683,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1684,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1689,1
    - Dst: help
      Src: /src/clamav/freshclam/freshclam.c:1690,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1697,1
    - Dst: svc_install
      Src: /src/clamav/freshclam/freshclam.c:1698,1
    - Dst: optfree
      Src: /src/clamav/freshclam/freshclam.c:1700,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1704,1
    - Dst: svc_uninstall
      Src: /src/clamav/freshclam/freshclam.c:1705,1
    - Dst: optfree
      Src: /src/clamav/freshclam/freshclam.c:1706,1
    - Dst: memcmp
      Src: /src/clamav/freshclam/freshclam.c:1713,1
    - Dst: memcmp
      Src: /src/clamav/freshclam/freshclam.c:1713,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1721,1
    - Dst: cli_safer_strdup
      Src: /src/clamav/freshclam/freshclam.c:1731,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1731,1
    - Dst: optparse
      Src: /src/clamav/freshclam/freshclam.c:1732,1
    - Dst: fprintf
      Src: /src/clamav/freshclam/freshclam.c:1733,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1741,1
    - Dst: print_version
      Src: /src/clamav/freshclam/freshclam.c:1742,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1742,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1746,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1747,1
    - Dst: get_database_server_list
      Src: /src/clamav/freshclam/freshclam.c:1755,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1756,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1761,1
    - Dst: get_string_list
      Src: /src/clamav/freshclam/freshclam.c:1775,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1775,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1776,1
    - Dst: select_specific_databases
      Src: /src/clamav/freshclam/freshclam.c:1784,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1790,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1793,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1797,1
    - Dst: get_string_list
      Src: /src/clamav/freshclam/freshclam.c:1804,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1804,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1805,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1810,1
    - Dst: get_string_list
      Src: /src/clamav/freshclam/freshclam.c:1827,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1827,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1828,1
    - Dst: get_string_list
      Src: /src/clamav/freshclam/freshclam.c:1836,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1836,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1837,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1840,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1844,1
    - Dst: string_list_add
      Src: /src/clamav/freshclam/freshclam.c:1845,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1846,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1848,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1851,1
    - Dst: select_from_official_databases
      Src: /src/clamav/freshclam/freshclam.c:1860,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1867,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1869,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1872,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1876,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:1878,1
    - Dst: get_string_list
      Src: /src/clamav/freshclam/freshclam.c:1884,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1884,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1885,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1891,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1892,1
    - Dst: initialize
      Src: /src/clamav/freshclam/freshclam.c:1897,1
    - Dst: mprintf
      Src: /src/clamav/freshclam/freshclam.c:1898,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1903,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1903,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1904,1
    - Dst: signal
      Src: /src/clamav/freshclam/freshclam.c:1908,1
    - Dst: memset
      Src: /src/clamav/freshclam/freshclam.c:1910,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:1912,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:1913,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1915,1
    - Dst: perform_database_update
      Src: /src/clamav/freshclam/freshclam.c:1920,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1929,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1931,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1931,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1932,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1932,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1933,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1934,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1934,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1937,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:1951,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:1952,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:1953,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1961,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1964,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1969,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1969,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1971,1
    - Dst: daemonize_parent_wait
      Src: /src/clamav/freshclam/freshclam.c:1986,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:1987,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:1996,1
    - Dst: svc_register
      Src: /src/clamav/freshclam/freshclam.c:1998,1
    - Dst: svc_ready
      Src: /src/clamav/freshclam/freshclam.c:1999,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2004,1
    - Dst: writepid
      Src: /src/clamav/freshclam/freshclam.c:2006,1
    - Dst: getpid
      Src: /src/clamav/freshclam/freshclam.c:2017,1
    - Dst: daemonize_signal_parent
      Src: /src/clamav/freshclam/freshclam.c:2018,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2024,1
    - Dst: geteuid
      Src: /src/clamav/freshclam/freshclam.c:2034,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2034,1
    - Dst: getpwnam
      Src: /src/clamav/freshclam/freshclam.c:2038,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2038,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2039,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2039,1
    - Dst: fprintf
      Src: /src/clamav/freshclam/freshclam.c:2040,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2040,1
    - Dst: CLAMSTAT
      Src: /src/clamav/freshclam/freshclam.c:2046,1
    - Dst: fprintf
      Src: /src/clamav/freshclam/freshclam.c:2049,1
    - Dst: fprintf
      Src: /src/clamav/freshclam/freshclam.c:2050,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:2050,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2051,1
    - Dst: strerror
      Src: /src/clamav/freshclam/freshclam.c:2052,1
    - Dst: drop_privileges
      Src: /src/clamav/freshclam/freshclam.c:2063,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2063,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2065,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2065,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2073,1
    - Dst: get_version
      Src: /src/clamav/freshclam/freshclam.c:2073,1
    - Dst: perform_database_update
      Src: /src/clamav/freshclam/freshclam.c:2076,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2085,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2087,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2087,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2088,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2088,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2089,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2090,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2090,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2093,1
    - Dst: alarm
      Src: /src/clamav/freshclam/freshclam.c:2098,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2102,1
    - Dst: execute
      Src: /src/clamav/freshclam/freshclam.c:2106,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2106,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2112,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2113,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2119,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:2121,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:2124,1
    - Dst: sleep
      Src: /src/clamav/freshclam/freshclam.c:2128,1
    - Dst: time
      Src: /src/clamav/freshclam/freshclam.c:2131,1
    - Dst: alarm
      Src: /src/clamav/freshclam/freshclam.c:2133,1
    - Dst: pause
      Src: /src/clamav/freshclam/freshclam.c:2135,1
    - Dst: time
      Src: /src/clamav/freshclam/freshclam.c:2136,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2140,1
    - Dst: logg
      Src: /src/clamav/freshclam/freshclam.c:2143,1
    - Dst: logg_close
      Src: /src/clamav/freshclam/freshclam.c:2145,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:2150,1
    - Dst: sigaction
      Src: /src/clamav/freshclam/freshclam.c:2153,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2163,1
    - Dst: execute
      Src: /src/clamav/freshclam/freshclam.c:2164,1
    - Dst: optget
      Src: /src/clamav/freshclam/freshclam.c:2164,1
    - Dst: logg_close
      Src: /src/clamav/freshclam/freshclam.c:2167,1
    - Dst: unlink
      Src: /src/clamav/freshclam/freshclam.c:2170,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:2174,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:2177,1
    - Dst: free_string_list
      Src: /src/clamav/freshclam/freshclam.c:2180,1
    - Dst: optfree
      Src: /src/clamav/freshclam/freshclam.c:2183,1
    - Dst: free
      Src: /src/clamav/freshclam/freshclam.c:2186,1
    - Dst: fc_cleanup
      Src: /src/clamav/freshclam/freshclam.c:2190,1
    - Dst: cli_rmdirs
      Src: /src/clamav/freshclam/freshclam.c:2194,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 321
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 2202
      start: 1644
    functionDepth: 7
    functionLinenumber: 1644
    functionLinenumberEnd: 2202
    functionName: main
    functionSourceFile: /src/clamav/freshclam/freshclam.c
    functionUses: 4
    functionsReached:
    - geteuid
    - help
    - sigaction
    - print_version
    - get_string_list
    - memcmp
    - get_version
    - writepid
    - select_from_official_databases
    - string_list_add
    - fc_cleanup
    - optfree
    - strerror
    - perform_database_update
    - sleep
    - unlink
    - optget
    - signal
    - time
    - pause
    - initialize
    - svc_register
    - execute
    - getpwnam
    - svc_install
    - cli_rmdirs
    - mprintf
    - memset
    - check_flevel
    - fprintf
    - alarm
    - svc_uninstall
    - drop_privileges
    - logg_close
    - free_string_list
    - optparse
    - svc_ready
    - cli_safer_strdup
    - free
    - getpid
    - exit
    - select_specific_databases
    - daemonize_parent_wait
    - CLAMSTAT
    - logg
    - get_database_server_list
    - daemonize_signal_parent
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: optparse
      Src: /src/clamav/freshclam/notify.c:59,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:60,1
    - Dst: optget
      Src: /src/clamav/freshclam/notify.c:66,1
    - Dst: memset
      Src: /src/clamav/freshclam/notify.c:67,1
    - Dst: strncpy
      Src: /src/clamav/freshclam/notify.c:69,1
    - Dst: socket
      Src: /src/clamav/freshclam/notify.c:72,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:73,1
    - Dst: strerror
      Src: /src/clamav/freshclam/notify.c:74,1
    - Dst: optfree
      Src: /src/clamav/freshclam/notify.c:75,1
    - Dst: connect
      Src: /src/clamav/freshclam/notify.c:79,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:81,1
    - Dst: strerror
      Src: /src/clamav/freshclam/notify.c:82,1
    - Dst: closesocket
      Src: /src/clamav/freshclam/notify.c:83,1
    - Dst: optfree
      Src: /src/clamav/freshclam/notify.c:84,1
    - Dst: optget
      Src: /src/clamav/freshclam/notify.c:92,1
    - Dst: memset
      Src: /src/clamav/freshclam/notify.c:93,1
    - Dst: snprintf
      Src: /src/clamav/freshclam/notify.c:98,1
    - Dst: optget
      Src: /src/clamav/freshclam/notify.c:101,1
    - Dst: getaddrinfo
      Src: /src/clamav/freshclam/notify.c:103,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:106,1
    - Dst: strerror
      Src: /src/clamav/freshclam/notify.c:110,1
    - Dst: gai_strerror
      Src: /src/clamav/freshclam/notify.c:111,1
    - Dst: socket
      Src: /src/clamav/freshclam/notify.c:117,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:118,1
    - Dst: strerror
      Src: /src/clamav/freshclam/notify.c:119,1
    - Dst: connect
      Src: /src/clamav/freshclam/notify.c:123,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:124,1
    - Dst: strerror
      Src: /src/clamav/freshclam/notify.c:125,1
    - Dst: closesocket
      Src: /src/clamav/freshclam/notify.c:126,1
    - Dst: optfree
      Src: /src/clamav/freshclam/notify.c:130,1
    - Dst: freeaddrinfo
      Src: /src/clamav/freshclam/notify.c:131,1
    - Dst: freeaddrinfo
      Src: /src/clamav/freshclam/notify.c:136,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:140,1
    - Dst: optfree
      Src: /src/clamav/freshclam/notify.c:142,1
    - Dst: optfree
      Src: /src/clamav/freshclam/notify.c:146,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - cfgfile
    - option
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 148
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 148
    functionName: clamd_connect
    functionSourceFile: /src/clamav/freshclam/notify.c
    functionUses: 0
    functionsReached:
    - connect
    - memset
    - snprintf
    - strerror
    - optfree
    - strncpy
    - getaddrinfo
    - optget
    - logg
    - closesocket
    - optparse
    - socket
    - freeaddrinfo
    - gai_strerror
    linkageType: ''
    returnType: int
    signature: int clamd_connect(const char *cfgfile, const char *option)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clamd_connect
      Src: /src/clamav/freshclam/notify.c:155,1
    - Dst: sendln
      Src: /src/clamav/freshclam/notify.c:158,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:159,1
    - Dst: strerror
      Src: /src/clamav/freshclam/notify.c:159,1
    - Dst: closesocket
      Src: /src/clamav/freshclam/notify.c:160,1
    - Dst: memset
      Src: /src/clamav/freshclam/notify.c:164,1
    - Dst: recv
      Src: /src/clamav/freshclam/notify.c:165,1
    - Dst: strstr
      Src: /src/clamav/freshclam/notify.c:166,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:167,1
    - Dst: closesocket
      Src: /src/clamav/freshclam/notify.c:168,1
    - Dst: closesocket
      Src: /src/clamav/freshclam/notify.c:173,1
    - Dst: logg
      Src: /src/clamav/freshclam/notify.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - cfgfile
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 176
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 176
    functionName: notify
    functionSourceFile: /src/clamav/freshclam/notify.c
    functionUses: 1
    functionsReached:
    - sendln
    - memset
    - strerror
    - strstr
    - recv
    - logg
    - clamd_connect
    - closesocket
    linkageType: ''
    returnType: int
    signature: int notify(const char *cfgfile)
Fuzzer filename: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp
Fuzzing method: LLVMFuzzerTestOneInput
report: name
sources:
- function_names:
  - unrar_dbgmsg_internal
  - unrar_retcode
  - unrar_strnlen
  - unrar_strndup
  - unrar_open
  - unrar_peek_file_header
  - unrar_extract_file
  - unrar_skip_file
  - unrar_close
  - CallbackProc
  source_file: /src/clamav/libclamunrar_iface/unrar_iface.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar_iface/unrar_iface.h
- function_names:
  - main
  source_file: /src/clamav/cmake/CheckFileOffsetBits.c
- function_names:
  - main
  source_file: /src/clamav/cmake/CheckStructPacking_PRAGMA_PACK.c
- function_names:
  - main
  source_file: /src/clamav/cmake/CheckStructPacking_PRAGMA_PACK_HPPA.c
- function_names:
  - main
  source_file: /src/clamav/cmake/CheckUnamePosix.c
- function_names:
  - static_foo
  - foo
  - main
  source_file: /src/clamav/cmake/TestInline.c
- function_names:
  - send_fd
  - testfd
  - recv_fd
  - main
  source_file: /src/clamav/cmake/CheckFDPassing.c
- function_names:
  - main
  source_file: /src/clamav/cmake/CheckSignedRightShift.c
- function_names:
  - main
  source_file: /src/clamav/cmake/CheckMallinfo.c
- function_names: []
  source_file: /src/clamav/libfreshclam/libfreshclam.h
- function_names:
  - DllMain
  source_file: /src/clamav/libfreshclam/libfreshclam_main.c
- function_names: []
  source_file: /src/clamav/libfreshclam/dns.h
- function_names:
  - fc_strerror
  - fc_cleanup
  - fc_prune_database_directory
  - version_string_compare
  - fc_test_database
  - fc_dns_query_update_info
  - fc_update_database
  - fc_update_databases
  - fc_download_url_database
  - fc_download_url_databases
  - fc_set_fccb_download_complete
  source_file: /src/clamav/libfreshclam/libfreshclam.c
- function_names:
  - dnsquery
  - dnsquery
  source_file: /src/clamav/libfreshclam/dns.c
- function_names: []
  source_file: /src/clamav/libfreshclam/libfreshclam_internal.h
- function_names:
  - uuid_v4_gen
  - load_freshclam_dat
  - save_freshclam_dat
  - new_freshclam_dat
  - textrecordfield
  - printTime
  - printBytes
  - xferinfo
  - older_progress
  - create_curl_handle
  - WriteMemoryCallback
  - WriteFileCallback
  - HeaderCallback
  - remote_cvdhead
  - getcvd
  - mkdir_and_chdir_for_cdiff_tmp
  - downloadPatchAndApply
  - currentdb
  - buildcld
  - query_remote_database_version
  - check_for_new_database_version
  - updatedb
  - updatecustomdb
  source_file: /src/clamav/libfreshclam/libfreshclam_internal.c
- function_names:
  - w32_strerror
  - w32_strerror_r
  source_file: /src/clamav/win32/compat/w32_errno.c
- function_names:
  - gettimeofday
  source_file: /src/clamav/win32/compat/gettimeofday.c
- function_names:
  - w32_rand
  - w32_srand
  source_file: /src/clamav/win32/compat/random.c
- function_names:
  - is_abspath
  - uncpath
  - safe_open
  - FileTimeToUnixTime
  - w32_stat
  - w32_access
  - w32_rename
  source_file: /src/clamav/win32/compat/w32_stat.c
- function_names: []
  source_file: /src/clamav/win32/compat/random.h
- function_names:
  - glob_add
  - w32_glob
  source_file: /src/clamav/win32/compat/glob.c
- function_names: []
  source_file: /src/clamav/win32/compat/resolv.h
- function_names: []
  source_file: /src/clamav/win32/compat/snprintf.h
- function_names: []
  source_file: /src/clamav/win32/compat/w32_errno.h
- function_names: []
  source_file: /src/clamav/win32/compat/utf8_util.h
- function_names: []
  source_file: /src/clamav/win32/compat/dirent.h
- function_names:
  - splitpath
  - dirname
  - basename
  source_file: /src/clamav/win32/compat/libgen.c
- function_names:
  - day_of_the_week
  - day_of_the_year
  source_file: /src/clamav/win32/compat/strptime.c
- function_names:
  - snprintf
  source_file: /src/clamav/win32/compat/snprintf.c
- function_names:
  - cli_strdup_to_utf8
  - cli_to_utf8_maybe_alloc
  source_file: /src/clamav/win32/compat/utf8_util.c
- function_names: []
  source_file: /src/clamav/win32/compat/w32_stat.h
- function_names: []
  source_file: /src/clamav/win32/compat/libgen.h
- function_names: []
  source_file: /src/clamav/win32/compat/net.h
- function_names: []
  source_file: /src/clamav/win32/compat/w32_errno_defs.c
- function_names: []
  source_file: /src/clamav/win32/compat/gettimeofday.h
- function_names:
  - opendir
  - readdir
  - rewinddir
  - closedir
  source_file: /src/clamav/win32/compat/dirent.c
- function_names:
  - wsock2errno
  - w32_socket
  - w32_getsockopt
  - w32_setsockopt
  - w32_bind
  - w32_connect
  - w32_send
  - w32_recv
  - w32_getpeername
  - w32_inet_ntoa
  - w32_closesocket
  - w32_getservbyname
  - w32_getaddrinfo
  - w32_freeaddrinfo
  - w32_inet_ntop
  - w32_select
  - w32_accept
  - w32_listen
  - w32_shutdown
  - poll_cb
  - poll_with_event
  - fcntl
  source_file: /src/clamav/win32/compat/net.c
- function_names:
  - res_init
  - res_query
  - dn_expand
  source_file: /src/clamav/win32/compat/resolv.c
- function_names:
  - checkaccess
  - checkaccess
  - pre
  - print_chain
  - post
  - meta
  - clamscan_virus_found_cb
  - scanfile
  - scandirs
  - scanstdin
  - print_time
  - print_num_sigs
  - sigload_callback
  - engine_compile_callback
  - engine_free_callback
  - scan_memory
  - scan_files
  - scanmanager
  source_file: /src/clamav/clamscan/manager.c
- function_names:
  - help
  source_file: /src/clamav/clamscan/clamscan.c
- function_names: []
  source_file: /src/clamav/clamscan/manager.h
- function_names: []
  source_file: /src/clamav/clamscan/global.h
- function_names:
  - printopts
  - printconf
  - help
  - print_platform
  - print_build
  - print_dbs
  - main
  source_file: /src/clamav/clamconf/clamconf.c
- function_names:
  - usage
  - version
  - header_cb
  - write_cb
  - presigned_get_string
  - main
  - read_stream
  source_file: /src/clamav/clamsubmit/clamsubmit.c
- function_names:
  - cl_setup
  - cl_teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - skip_files
  - init_testfiles
  - free_testfiles
  - engine_setup
  - engine_teardown
  - get_test_file
  - pread_cb
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - fmap_api_tests
  - START_TEST
  - test_cl_suite
  - data_setup
  - data_teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - dsig_test
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - test_cli_suite
  - errmsg_expected
  - open_testfile
  - diff_file_mem
  - diff_files
  - dconf_setup
  - dconf_teardown
  - check_version_compatible
  - main
  source_file: /src/clamav/unit_tests/check_clamav.c
- function_names:
  - setup
  - teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - test_matchers_suite
  source_file: /src/clamav/unit_tests/check_matchers.c
- function_names:
  - conn_tcp
  - conn_setup_mayfail
  - conn_setup_mayfail
  - conn_setup
  - conn_teardown
  - commands_setup
  - commands_teardown
  - recvpartial
  - recvfull
  - test_command
  - START_TEST
  - START_TEST
  - START_TEST
  - prepare_instream
  - START_TEST
  - sendmsg_fd
  - tst_fildes
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - test_idsession_commands
  - START_TEST
  - test_clamd_suite
  - main
  source_file: /src/clamav/unit_tests/check_clamd.c
- function_names:
  - cb_fail
  - cb_expect_single
  - START_TEST
  - START_TEST
  - cb_expect_multi
  - START_TEST
  - setup
  - teardown
  - rsetup
  - rteardown
  - START_TEST
  - psetup_impl
  - psetup
  - psetup2
  - pteardown
  - do_phishing_test
  - do_phishing_test_allscan
  - START_TEST
  - START_TEST
  - struct
  - START_TEST
  - regex_test
  - START_TEST
  - START_TEST
  - START_TEST
  - test_regex_suite
  source_file: /src/clamav/unit_tests/check_regex.c
- function_names: []
  source_file: /src/clamav/unit_tests/checks.h
- function_names:
  - main
  source_file: /src/clamav/unit_tests/check_fpu_endian.c
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - buf_setup
  - buf_teardown
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - base64lines
  - START_TEST
  - struct
  - u16_len
  - START_TEST
  - test_str_suite
  source_file: /src/clamav/unit_tests/check_str.c
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - test_uniq_suite
  source_file: /src/clamav/unit_tests/check_uniq.c
- function_names:
  - htmlnorm_setup
  - htmlnorm_teardown
  - check_dir
  - START_TEST
  - START_TEST
  - test_htmlnorm_suite
  source_file: /src/clamav/unit_tests/check_htmlnorm.c
- function_names:
  - main
  source_file: /src/clamav/unit_tests/check_clamav_skip.c
- function_names:
  - START_TEST
  - test_disasm_suite
  source_file: /src/clamav/unit_tests/check_disasm.c
- function_names:
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - jstest_setup
  - jstest_teardown
  - tokenizer_test
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - prepare_s
  - prepare
  - test_jsnorm_suite
  source_file: /src/clamav/unit_tests/check_jsnorm.c
- function_names:
  - runtest
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - START_TEST
  - runload
  - START_TEST
  - START_TEST
  - thread
  - START_TEST
  - test_bytecode_suite
  source_file: /src/clamav/unit_tests/check_bytecode.c
- function_names:
  - main
  source_file: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/test.c
- function_names:
  - exec_in_new_process
  source_file: /src/clamav/unit_tests/input/pe_allmatch/test-exe-src/extract.h
- function_names:
  - chmd_open_test_01
  - chmd_open_test_02
  - chmd_open_test_03
  - chmd_search_test_01
  - read_xor
  - chmd_extract_test_01
  - main
  source_file: /src/clamav/libclammspack/test/chmd_test.c
- function_names:
  - kwajd_open_test_01
  - main
  source_file: /src/clamav/libclammspack/test/kwajd_test.c
- function_names:
  - find
  - main
  source_file: /src/clamav/libclammspack/test/chmd_find.c
- function_names:
  - sortfunc
  - main
  source_file: /src/clamav/libclammspack/test/chmd_md5.c
- function_names:
  - load_sys_data
  - guid
  - print_dir
  - main
  source_file: /src/clamav/libclammspack/test/chminfo.c
- function_names:
  - rol
  source_file: /src/clamav/libclammspack/test/md5.h
- function_names:
  - m_open
  - m_close
  - m_read
  - m_write
  - m_seek
  - m_tell
  - m_msg
  - m_alloc
  - m_free
  - m_copy
  source_file: /src/clamav/libclammspack/test/md5_fh.h
- function_names:
  - error_msg
  source_file: /src/clamav/libclammspack/test/error.h
- function_names:
  - sortfunc
  - main
  source_file: /src/clamav/libclammspack/test/chmd_order.c
- function_names:
  - find_cabinet_file
  - main
  source_file: /src/clamav/libclammspack/test/cabd_md5.c
- function_names:
  - cabd_open_test_01
  - cabd_open_test_02
  - cabd_open_test_03
  - cabd_open_test_04
  - cabd_open_test_05
  - cabd_open_test_06
  - readfail_read
  - cabd_open_test_07
  - cabd_search_test_01
  - cabd_search_test_02
  - cabd_search_test_03
  - cabd_merge_test_01
  - cabd_merge_test_02
  - cabd_extract_test_01
  - cabd_extract_test_02
  - cabd_extract_test_03
  - cabd_extract_test_04
  - main
  source_file: /src/clamav/libclammspack/test/cabd_test.c
- function_names:
  - md5_init_ctx
  - md5_read_ctx
  - md5_finish_ctx
  - md5_stream
  - md5_buffer
  - md5_process_bytes
  - md5_process_block
  source_file: /src/clamav/libclammspack/test/md5.c
- function_names:
  - mspack_create_hlp_decompressor
  - mspack_destroy_hlp_decompressor
  source_file: /src/clamav/libclammspack/mspack/hlpd.c
- function_names:
  - mspack_create_lit_decompressor
  - mspack_destroy_lit_decompressor
  source_file: /src/clamav/libclammspack/mspack/litd.c
- function_names:
  - mspack_create_szdd_decompressor
  - mspack_destroy_szdd_decompressor
  - szddd_open
  - szddd_close
  - szddd_read_headers
  - szddd_extract
  - szddd_decompress
  - szddd_error
  source_file: /src/clamav/libclammspack/mspack/szddd.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/des.h
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/oab.h
- function_names:
  - mspack_version
  - mspack_sys_selftest_internal
  - mspack_valid_system
  - mspack_sys_filelen
  - msp_open
  - msp_close
  - msp_read
  - msp_write
  - msp_seek
  - msp_tell
  - msp_msg
  - msp_alloc
  - msp_free
  - msp_copy
  source_file: /src/clamav/libclammspack/mspack/system.c
- function_names:
  - mspack_create_hlp_compressor
  - mspack_destroy_hlp_compressor
  source_file: /src/clamav/libclammspack/mspack/hlpc.c
- function_names:
  - mspack_create_kwaj_decompressor
  - mspack_destroy_kwaj_decompressor
  - kwajd_open
  - kwajd_close
  - kwajd_read_headers
  - kwajd_extract
  - kwajd_decompress
  - kwajd_error
  - lzh_init
  - lzh_decompress
  - lzh_free
  - lzh_read_lens
  - lzh_read_input
  source_file: /src/clamav/libclammspack/mspack/kwajd.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/lit.h
- function_names:
  - lzxd_read_lens
  - lzxd_reset_state
  - lzxd_init
  - lzxd_set_reference_data
  - lzxd_set_output_length
  - lzxd_decompress
  - lzxd_free
  source_file: /src/clamav/libclammspack/mspack/lzxd.c
- function_names:
  - lzss_decompress
  source_file: /src/clamav/libclammspack/mspack/lzssd.c
- function_names:
  - binary
  - cabinfo
  source_file: /src/clamav/libclammspack/mspack/debug.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/macros.h
- function_names:
  - memcmp
  - memset
  - strlen
  source_file: /src/clamav/libclammspack/mspack/system.h
- function_names:
  - crc32
  source_file: /src/clamav/libclammspack/mspack/crc32.h
- function_names:
  - qtmd_init_model
  - qtmd_init
  - qtmd_decompress
  - qtmd_free
  source_file: /src/clamav/libclammspack/mspack/qtmd.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/hlp.h
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/crc32.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/mspack.h
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/kwaj.h
- function_names:
  - mspack_create_kwaj_compressor
  - mspack_destroy_kwaj_compressor
  source_file: /src/clamav/libclammspack/mspack/kwajc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/qtmc.c
- function_names:
  - mspack_create_chm_compressor
  - mspack_destroy_chm_compressor
  source_file: /src/clamav/libclammspack/mspack/chmc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/szdd.h
- function_names:
  - mspack_create_oab_decompressor
  - mspack_destroy_oab_decompressor
  - oabd_sys_read
  - oabd_sys_write
  - oabd_decompress
  - oabd_decompress_incremental
  - copy_fh
  - oabd_param
  source_file: /src/clamav/libclammspack/mspack/oabd.c
- function_names:
  - mspack_create_szdd_compressor
  - mspack_destroy_szdd_compressor
  source_file: /src/clamav/libclammspack/mspack/szddc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/chm.h
- function_names:
  - mspack_create_cab_decompressor
  - mspack_destroy_cab_decompressor
  - cabd_open
  - cabd_close
  - cabd_read_headers
  - cabd_read_string
  - cabd_search
  - cabd_find
  - cabd_prepend
  - cabd_append
  - cabd_merge
  - cabd_can_merge_folders
  - cabd_extract
  - cabd_init_decomp
  - cabd_free_decomp
  - cabd_sys_read
  - cabd_sys_write
  - cabd_sys_read_block
  - cabd_checksum
  - noned_init
  - noned_decompress
  - noned_free
  - cabd_param
  - cabd_error
  source_file: /src/clamav/libclammspack/mspack/cabd.c
- function_names:
  - read_input
  source_file: /src/clamav/libclammspack/mspack/readbits.h
- function_names:
  - make_decode_table
  source_file: /src/clamav/libclammspack/mspack/readhuff.h
- function_names:
  - mspack_create_oab_compressor
  - mspack_destroy_oab_compressor
  source_file: /src/clamav/libclammspack/mspack/oabc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/lzx.h
- function_names:
  - mspack_create_lit_compressor
  - mspack_destroy_lit_compressor
  source_file: /src/clamav/libclammspack/mspack/litc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/qtm.h
- function_names:
  - mspack_create_cab_compressor
  - mspack_destroy_cab_compressor
  source_file: /src/clamav/libclammspack/mspack/cabc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/cab.h
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/lzxc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/sha.h
- function_names:
  - mspack_create_chm_decompressor
  - mspack_destroy_chm_decompressor
  - chmd_open
  - chmd_fast_open
  - chmd_real_open
  - chmd_close
  - chmd_read_headers
  - chmd_fast_find
  - read_chunk
  - search_chunk
  - compare
  - chmd_extract
  - chmd_sys_write
  - chmd_init_decomp
  - read_reset_table
  - read_spaninfo
  - find_sys_file
  - read_sys_file
  - chmd_error
  - read_off64
  - read_encint
  source_file: /src/clamav/libclammspack/mspack/chmd.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/mszipc.c
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/lzss.h
- function_names: []
  source_file: /src/clamav/libclammspack/mspack/mszip.h
- function_names:
  - zip_read_lens
  - inflate
  - mszipd_flush_window
  - mszipd_init
  - mszipd_decompress
  - mszipd_decompress_kwaj
  - mszipd_free
  source_file: /src/clamav/libclammspack/mspack/mszipd.c
- function_names:
  - mem_alloc
  - mem_free
  - mem_copy
  - mem_msg
  - mem_open
  - mem_close
  - mem_read
  - mem_write
  - mem_seek
  - mem_tell
  - main
  source_file: /src/clamav/libclammspack/examples/cabd_memory.c
- function_names:
  - main
  source_file: /src/clamav/libclammspack/examples/msexpand.c
- function_names:
  - main
  source_file: /src/clamav/libclammspack/examples/oabextract.c
- function_names:
  - m_alloc
  - m_free
  - m_copy
  - m_msg
  - m_open_mem
  - m_open_file
  - m_open
  - m_close
  - m_read
  - m_write
  - m_seek
  - m_tell
  - create_filename
  - create_filename_from_handle
  - create_filename_from_descriptor
  - create_filename_from_memory
  - set_filename_printable_name
  - free_filename
  - main
  source_file: /src/clamav/libclammspack/examples/multifh.c
- function_names:
  - rip
  - main
  source_file: /src/clamav/libclammspack/examples/cabrip.c
- function_names:
  - ensure_filepath
  - create_output_name
  - sortfunc
  - main
  source_file: /src/clamav/libclammspack/examples/chmextract.c
- function_names:
  - isremote
  - ping_clamd
  - makeabs
  - client_scan
  - get_clamd_version
  - reload_clamd_database
  - client
  source_file: /src/clamav/clamdscan/client.c
- function_names: []
  source_file: /src/clamav/clamdscan/proto.h
- function_names: []
  source_file: /src/clamav/clamdscan/client.h
- function_names:
  - print_server_version
  - help
  source_file: /src/clamav/clamdscan/clamdscan.c
- function_names:
  - ftw_chkpath
  - serial_callback
  - serial_client_scan
  - dspresult
  - parallel_callback
  - parallel_client_scan
  source_file: /src/clamav/clamdscan/proto.c
- function_names: []
  source_file: /src/clamav/common/exeScanner.h
- function_names: []
  source_file: /src/clamav/common/getopt.h
- function_names: []
  source_file: /src/clamav/common/output.h
- function_names: []
  source_file: /src/clamav/common/fdpassing.h
- function_names:
  - sigcmp
  - checksig
  - calc_entropy
  - is_packed
  source_file: /src/clamav/common/exeScanner.c
- function_names: []
  source_file: /src/clamav/common/service.h
- function_names:
  - get_version
  - freshdbdir
  - print_version
  - check_flevel
  - filelist
  - filecopy
  - close_std_descriptors
  - daemonize_all_return
  - daemonize
  - daemonize_child_initialized_handler
  - daemonize_parent_wait
  - daemonize_signal_parent
  - drop_privileges
  - match_regex
  - cli_is_abspath
  - countlines
  - check_if_cvd_outdated
  source_file: /src/clamav/common/misc.c
- function_names: []
  source_file: /src/clamav/common/idmef_logging.h
- function_names:
  - my_getopt
  - _getopt_internal
  - my_getopt_long
  - my_getopt_long_only
  source_file: /src/clamav/common/getopt.c
- function_names: []
  source_file: /src/clamav/common/cert_util_internal.h
- function_names:
  - fix_paths
  - optget
  - optget_i
  - optadd
  - optaddarg
  - optfree
  - optparse
  - optadditem
  source_file: /src/clamav/common/optparser.c
- function_names: []
  source_file: /src/clamav/common/tar.h
- function_names:
  - mdprintf
  - logg_open
  - logg_close
  - logg
  - mprintf
  - logg_facility
  source_file: /src/clamav/common/output.c
- function_names:
  - sendln
  - recvlninit
  - recvln
  - chkpath
  - send_fdpass
  - send_stream
  - dconnect
  - dsresult
  source_file: /src/clamav/common/clamdcom.c
- function_names:
  - tar_addfile
  source_file: /src/clamav/common/tar.c
- function_names: []
  source_file: /src/clamav/common/misc.h
- function_names: []
  source_file: /src/clamav/common/scanmem.h
- function_names: []
  source_file: /src/clamav/common/clamdcom.h
- function_names:
  - lookup_cache
  - insert_cache
  - free_cache
  - wc2mb
  - EnablePrivilege
  - getaltpath
  - walkmodules_th
  - walkmodules_psapi
  - kill_process
  - unload_module
  - align_pe
  - dump_pe
  - scanfile
  - scanmem_cb
  - scanmem
  source_file: /src/clamav/common/scanmem.c
- function_names:
  - svc_uninstall
  - svc_install
  - svc_getcpvalue
  - svc_register
  - svc_ready
  - svc_checkpoint
  - ServiceCtrlHandler
  - cw_stop_ctrl_handler
  - ServiceMain
  source_file: /src/clamav/common/service.c
- function_names:
  - _x509_to_pem
  - _x509_to_pem_append
  - cert_store_get_int
  - cert_store_unload_int
  - cert_store_free_cert_list_int
  - cert_store_unload
  - x509_cert_name_cmp
  - x509_get_cert_name
  - cert_store_export_pem
  - cert_store_set_trusted_int
  - cert_store_set_trusted
  - cert_store_remove_trusted
  - cert_fill_X509_store
  - cert_store_export_certs
  - sslctx_function
  - set_tls_client_certificate
  source_file: /src/clamav/common/cert_util.c
- function_names: []
  source_file: /src/clamav/common/actions.h
- function_names: []
  source_file: /src/clamav/common/optparser.h
- function_names: []
  source_file: /src/clamav/common/cert_util.h
- function_names:
  - getdest
  - win32_openat
  - traverse_to
  - traverse_rename
  - action_copy
  - action_remove
  - isdir
  - actsetup
  source_file: /src/clamav/common/actions.c
- function_names: []
  source_file: /src/clamav/common/hostid.h
- function_names:
  - prelude_logging
  - idmef_analyzer_setup
  - prelude_initialize_client
  - add_string_additional_data
  - add_int_additional_data
  - prelude_logging
  source_file: /src/clamav/common/idmef_logging.c
- function_names:
  - is_valid_hostid
  - get_hostid
  source_file: /src/clamav/common/hostid.c
- function_names:
  - cert_store_load
  source_file: /src/clamav/common/win/cert_util_win.c
- function_names:
  - set_tls_ca_bundle
  - cert_store_load
  source_file: /src/clamav/common/linux/cert_util_linux.c
- function_names:
  - ExtractUnixOwner30
  - SetUnixOwner
  source_file: /src/clamav/libclamunrar/uowners.cpp
- function_names:
  - Unpack::SafePPMDecodeChar
  - Unpack::Unpack29
  - Unpack::ReadEndOfBlock
  - Unpack::ReadVMCode
  - Unpack::ReadVMCodePPM
  - Unpack::AddVMCode
  - Unpack::UnpReadBuf30
  - Unpack::UnpWriteBuf30
  - Unpack::ExecuteCode
  - Unpack::ReadTables30
  - Unpack::UnpInitData30
  - Unpack::InitFilters30
  source_file: /src/clamav/libclamunrar/unpack30.cpp
- function_names:
  - WinNT
  - WMI_IsWindows10
  - IsWindows11OrGreater
  source_file: /src/clamav/libclamunrar/isnt.cpp
- function_names:
  - PointToName
  - PointToLastChar
  - ConvertPath
  - SetName
  - SetExt
  - SetSFXExt
  - GetExt
  - CmpExt
  - IsWildcard
  - IsPathDiv
  - IsDriveDiv
  - IsDriveLetter
  - GetPathDisk
  - AddEndSlash
  - MakeName
  - GetFilePath
  - RemoveNameFromPath
  - GetAppDataPath
  - GetRarDataPath
  - EnumConfigPaths
  - GetConfigName
  - GetVolNumPart
  - NextVolumeName
  - IsNameUsable
  - MakeNameUsable
  - UnixSlashToDos
  - DosSlashToUnix
  - UnixSlashToDos
  - DosSlashToUnix
  - ConvertNameToFull
  - IsFullPath
  - IsFullRootPath
  - GetPathRoot
  - ParseVersionFileName
  - VolNameToFirstName
  - GenArcName
  - GenerateArchiveName
  - GetWideName
  - GetWinLongPath
  - ConvertToPrecomposed
  - MakeNameCompatible
  source_file: /src/clamav/libclamunrar/pathfn.cpp
- function_names:
  - ComprDataIO::EnableShowProgress
  - ComprDataIO::SetPackedSizeToRead
  - ComprDataIO::SetTestMode
  - ComprDataIO::SetSkipUnpCRC
  - ComprDataIO::SetNoFileHeader
  - ComprDataIO::SetCommand
  - ComprDataIO::SetSubHeader
  - ComprDataIO::SetCurrentCommand
  source_file: /src/clamav/libclamunrar/rdwrfn.hpp
- function_names:
  - FragmentedWindow::FragmentedWindow
  - FragmentedWindow::~FragmentedWindow()
  - FragmentedWindow::Reset
  - FragmentedWindow::Init
  - '& FragmentedWindow::operator [](size_t Item)'
  - FragmentedWindow::CopyString
  - FragmentedWindow::CopyData
  - FragmentedWindow::GetBlockSize
  source_file: /src/clamav/libclamunrar/unpack50frag.cpp
- function_names:
  - CryptData::SetKey20
  - CryptData::EncryptBlock20
  - CryptData::DecryptBlock20
  - CryptData::UpdKeys20
  - CryptData::Swap20
  source_file: /src/clamav/libclamunrar/crypt2.cpp
- function_names:
  - RarTime::GetLocal
  - RarTime::SetLocal
  - RarTime::GetWinFT
  - RarTime::SetWinFT
  - RarTime::GetWin
  - RarTime::SetWin
  - RarTime::GetUnix
  - RarTime::SetUnix
  - RarTime::GetUnixNS
  - RarTime::SetUnixNS
  - RarTime::GetDos
  - RarTime::SetDos
  - RarTime::GetText
  - RarTime::SetIsoText
  - RarTime::SetAgeText
  - RarTime::SetCurrentTime
  - RarTime::Adjust
  - GetMonthName
  - IsLeapYear
  source_file: /src/clamav/libclamunrar/timefn.cpp
- function_names:
  - uiAskReplace
  - uiStartArchiveExtract
  - uiStartFileExtract
  - uiExtractProgress
  - uiProcessProgress
  - uiMsgStore::Msg
  - uiGetPassword
  - uiIsGlobalPasswordSet
  - uiAlarm
  - uiAskNextVolume
  - uiAskRepeatRead
  - uiAskRepeatWrite
  - uiGetMonthName
  - uiEolAfterMsg
  source_file: /src/clamav/libclamunrar/uiconsole.cpp
- function_names:
  - QuickOpen::QuickOpen
  - QuickOpen::~QuickOpen()
  - QuickOpen::Init
  - QuickOpen::Close
  - QuickOpen::Load
  - QuickOpen::Read
  - QuickOpen::Seek
  - QuickOpen::Tell
  - QuickOpen::ReadBuffer
  - QuickOpen::ReadRaw
  - QuickOpen::ReadNext
  source_file: /src/clamav/libclamunrar/qopen.cpp
- function_names:
  - CommandData::OutTitle
  - CmpMSGID
  - CommandData::OutHelp
  source_file: /src/clamav/libclamunrar/cmdmix.cpp
- function_names:
  - ThreadPool::SetPriority
  source_file: /src/clamav/libclamunrar/threadpool.hpp
- function_names:
  - ListArchive
  - ListFileHeader
  - ListFileAttr
  source_file: /src/clamav/libclamunrar/list.cpp
- function_names:
  - Unpack::Unpack5
  - Unpack::ReadFilterData
  - Unpack::ReadFilter
  - Unpack::AddFilter
  - Unpack::UnpReadBuf
  - Unpack::UnpWriteBuf
  - Unpack::ApplyFilter
  - Unpack::UnpWriteArea
  - Unpack::UnpWriteData
  - Unpack::UnpInitData50
  - Unpack::ReadBlockHeader
  - Unpack::ReadTables
  - Unpack::InitFilters
  source_file: /src/clamav/libclamunrar/unpack50.cpp
- function_names:
  - CryptData::KDF5CacheItem
  - ~KDF5CacheItem()
  - CryptData::Clean
  - CryptData::KDF3CacheItem
  - ~KDF3CacheItem()
  - CryptData::Clean
  - RarCheckPassword::RarCheckPassword
  - ~RarCheckPassword()
  - RarCheckPassword::Set
  - RarCheckPassword::IsSet
  - RarCheckPassword::GetConfidence
  - RarCheckPassword::Check
  source_file: /src/clamav/libclamunrar/crypt.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/isnt.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/raros.hpp
- function_names:
  - THREAD_PROC
  - Unpack::InitMT
  - Unpack::Unpack5MT
  - Unpack::UnpackDecode
  - Unpack::ProcessDecoded
  - Unpack::UnpackLargeBlock
  source_file: /src/clamav/libclamunrar/unpack50mt.cpp
- function_names:
  - ToPercent
  - ToPercentUnlim
  source_file: /src/clamav/libclamunrar/smallfn.cpp
- function_names:
  - ExtractACL20
  - ExtractACL
  - SetACLPrivileges
  - SetPrivilege
  source_file: /src/clamav/libclamunrar/win32acl.cpp
- function_names:
  - St
  - StF
  source_file: /src/clamav/libclamunrar/resource.cpp
- function_names:
  - charnext
  - IsDBCSMode
  source_file: /src/clamav/libclamunrar/unicode.hpp
- function_names:
  - RSEncode::Init
  - THREAD_PROC
  - THREAD_PROC
  - RecVolumes3::RecVolumes3
  - RecVolumes3::~RecVolumes3()
  - RSEncode::EncodeBuf
  - IsNewStyleRev
  - RecVolumes3::Restore
  - RSEncode::DecodeBuf
  - RecVolumes3::Test
  source_file: /src/clamav/libclamunrar/recvol3.cpp
- function_names:
  - CreateReparsePoint
  source_file: /src/clamav/libclamunrar/win32lnk.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/headers5.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/loclang.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/find.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/rs16.hpp
- function_names:
  - File::File
  - File::~File()
  - File::operator = (File &SrcFile)
  - File::Open
  - File::TOpen
  - File::WOpen
  - File::Create
  - File::TCreate
  - File::WCreate
  - File::Close
  - File::Delete
  - File::Rename
  - File::Write
  - File::Read
  - File::DirectRead
  - File::Seek
  - File::RawSeek
  - File::Tell
  - File::Prealloc
  - File::GetByte
  - File::PutByte
  - File::Truncate
  - File::Flush
  - File::SetOpenFileTime
  - File::SetCloseFileTime
  - File::SetCloseFileTimeByName
  - File::StatToRarTime
  - File::GetOpenFileTime
  - File::FileLength
  - File::IsDevice
  - File::Copy
  source_file: /src/clamav/libclamunrar/file.cpp
- function_names:
  - RecVolumesRestore
  - RecVolumesTest
  source_file: /src/clamav/libclamunrar/recvol.cpp
- function_names:
  - Rijndael::SetCBCMode
  source_file: /src/clamav/libclamunrar/rijndael.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/rarpch.cpp
- function_names:
  - StringList::StringList
  - StringList::Reset
  - StringList::AddStringA
  - StringList::AddString
  - StringList::GetStringA
  - StringList::GetString
  - StringList::GetString
  - StringList::GetString
  - StringList::GetString
  - StringList::Rewind
  - StringList::Search
  - StringList::SavePosition
  - StringList::RestorePosition
  source_file: /src/clamav/libclamunrar/strlist.cpp
- function_names:
  - RawRead::RawRead
  - RawRead::RawRead
  - RawRead::Reset
  - RawRead::Read
  - RawRead::Read
  - RawRead::Get1
  - RawRead::Get2
  - RawRead::Get4
  - RawRead::Get8
  - RawRead::GetV
  - RawRead::GetVSize
  - RawRead::GetB
  - RawRead::GetW
  - RawRead::GetCRC15
  - RawRead::GetCRC50
  - RawGetV
  source_file: /src/clamav/libclamunrar/rawread.cpp
- function_names:
  - hmac_sha256
  - pbkdf2
  - CryptData::SetKey50
  - ConvertHashToMAC
  - TestKDF
  - TestPBKDF2
  source_file: /src/clamav/libclamunrar/crypt5.cpp
- function_names:
  - InitCRC32
  - InitTables
  - CallInitCRC
  - CRC32
  - Checksum14
  - InitCRC64
  - InitTables64
  - CallInitCRC64
  - CRC64
  - TestCRCStruct
  - TestCRC
  source_file: /src/clamav/libclamunrar/crc.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/dll.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/system.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/crc.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/sha256.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/rs.hpp
- function_names:
  - IsNtfsReservedStream
  - ExtractStreams20
  - ExtractStreams
  - GetStreamNameNTFS
  source_file: /src/clamav/libclamunrar/win32stm.cpp
- function_names:
  - ReadTextFile
  - DetectTextEncoding
  source_file: /src/clamav/libclamunrar/filestr.cpp
- function_names:
  - FileCreate
  - GetAutoRenamedName
  - UpdateExistingShortName
  source_file: /src/clamav/libclamunrar/filcreat.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/coder.hpp
- function_names:
  - CryptData::SetKey30
  source_file: /src/clamav/libclamunrar/crypt3.cpp
- function_names:
  - RawGet2
  - RawGet4
  - RawGet8
  - RawPut2
  - RawPut4
  - RawPut8
  - RawGetBE4
  - RawPutBE4
  - ByteSwap32
  source_file: /src/clamav/libclamunrar/rawint.hpp
- function_names:
  - Reset
  - CmpName
  - Reset
  source_file: /src/clamav/libclamunrar/headers.hpp
- function_names:
  - uiMsgStore::uiMsgStore
  - '& operator << (const wchar *s)'
  - '& operator << (uint n)'
  - uiMsgBase
  - uiMsgBase
  - uiMsg
  source_file: /src/clamav/libclamunrar/ui.hpp
- function_names:
  - UnpackThreadData
  - ~UnpackThreadData()
  - Unpack::IsFileExtracted
  - Unpack::SetDestSize
  - Unpack::SetSuspended
  - Unpack::GetChar
  source_file: /src/clamav/libclamunrar/unpack.hpp
- function_names:
  - blake2s_state
  - blake2s_state
  - set_pointers
  - init
  - '& operator = (blake2s_state &st)'
  source_file: /src/clamav/libclamunrar/blake2s.hpp
- function_names:
  - CryptLoader::CryptLoader
  - ~CryptLoader()
  - CryptLoader::Load
  - SecPassword::SecPassword
  - SecPassword::~SecPassword()
  - SecPassword::Clean
  - cleandata
  - SecPassword::Process
  - SecPassword::Get
  - SecPassword::Set
  - SecPassword::Length
  - SecPassword::operator == (SecPassword &psw)
  - SecHideData
  source_file: /src/clamav/libclamunrar/secpassword.cpp
- function_names:
  - UnixSymlink
  - IsFullPath
  - SafeCharToWide
  - ExtractUnixLink30
  - ExtractUnixLink50
  source_file: /src/clamav/libclamunrar/ulinks.cpp
- function_names:
  - mprintf
  - eprintf
  - Alarm
  - Ask
  - getwstr
  source_file: /src/clamav/libclamunrar/consio.hpp
- function_names:
  - StringList::ItemsCount
  - StringList::GetCharCount
  source_file: /src/clamav/libclamunrar/strlist.hpp
- function_names:
  - QuickOpen::Unload
  source_file: /src/clamav/libclamunrar/qopen.hpp
- function_names:
  - BitInput::InitBitInput
  - BitInput::addbits
  - BitInput::getbits
  - BitInput::getbits32
  - BitInput::Overflow
  source_file: /src/clamav/libclamunrar/getbits.hpp
- function_names:
  - Archive::ReadHeader
  - Archive::SearchBlock
  - Archive::SearchSubBlock
  - Archive::SearchRR
  - Archive::UnexpEndArcMsg
  - Archive::BrokenHeaderMsg
  - Archive::UnkEncVerMsg
  - SafeAdd
  - Archive::ReadHeader15
  - Archive::ReadHeader50
  - Archive::RequestArcPassword
  - Archive::ProcessExtra50
  - Archive::ReadHeader14
  - Archive::ConvertNameCase
  - Archive::IsArcDir
  - Archive::ConvertAttributes
  - Archive::ConvertFileHeader
  - Archive::GetStartPos
  - Archive::ReadSubData
  source_file: /src/clamav/libclamunrar/arcread.cpp
- function_names:
  - SHA1Transform
  - sha1_init
  - sha1_process
  - sha1_process_rar29
  - sha1_done
  source_file: /src/clamav/libclamunrar/sha1.cpp
- function_names:
  - operator != (const HashValue &cmp) const
  - DataHash::Type
  source_file: /src/clamav/libclamunrar/hash.hpp
- function_names:
  - RAROptions::RAROptions
  - RAROptions::Init
  source_file: /src/clamav/libclamunrar/options.cpp
- function_names:
  - CryptData::SetKey13
  - CryptData::SetKey15
  - CryptData::SetAV15Encryption
  - CryptData::SetCmt13Encryption
  - CryptData::Decrypt13
  - CryptData::Crypt15
  source_file: /src/clamav/libclamunrar/crypt1.cpp
- function_names:
  - blake2s_init_sse
  - blake2s_compress_sse
  source_file: /src/clamav/libclamunrar/blake2s_sse.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/options.hpp
- function_names:
  - blake2s_set_lastnode
  - blake2s_set_lastblock
  - blake2s_increment_counter
  - blake2s_init_param
  - blake2s_compress
  - blake2s_update
  - blake2s_final
  source_file: /src/clamav/libclamunrar/blake2s.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/cmddata.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/global.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/compress.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/match.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/filcreat.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/resource.hpp
- function_names:
  - File::IsOpened
  - File::SetHandleType
  - File::SetLineInputMode
  - File::GetHandleType
  - File::IsSeekable
  - File::GetHandle
  - File::SetHandle
  - File::SetReadErrorMode
  - File::SetAllowDelete
  - File::SetExceptions
  - File::SetPreserveAtime
  - File::IsTruncatedAfterReadError
  - File::GetFD
  - File::CopyBufferSize
  source_file: /src/clamav/libclamunrar/file.hpp
- function_names:
  - Archive::Archive
  - Archive::~Archive()
  - Archive::CheckArc
  - Archive::CheckOpen
  - Archive::WCheckOpen
  - Archive::IsSignature
  - Archive::IsArchive
  - Archive::SeekToNext
  - Archive::FullHeaderSize
  - Archive::Open
  - Archive::Read
  - Archive::Seek
  - Archive::Tell
  source_file: /src/clamav/libclamunrar/archive.cpp
- function_names:
  - CriticalSectionCreate
  - CriticalSectionDelete
  - CriticalSectionStart
  - CriticalSectionEnd
  - ThreadCreate
  - ThreadClose
  - CWaitForSingleObject
  - cpthread_cond_wait
  - GetNumberOfCPU
  - GetNumberOfThreads
  source_file: /src/clamav/libclamunrar/threadmisc.cpp
- function_names:
  - blake2sp_init
  - Blake2ThreadData::Update
  - THREAD_PROC
  - blake2sp_update
  - blake2sp_final
  source_file: /src/clamav/libclamunrar/blake2sp.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/smallfn.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/volume.hpp
- function_names:
  - CommandData::CommandData
  - CommandData::Init
  - AllocCmdParam
  - CommandData::ParseCommandLine
  - CommandData::ParseArg
  - CommandData::ParseDone
  - CommandData::ParseEnvVar
  - CommandData::PreprocessArg
  - CommandData::ReadConfig
  - CommandData::ProcessSwitchesString
  - CommandData::ProcessSwitch
  - CommandData::BadSwitch
  - CommandData::ProcessCommand
  - CommandData::AddArcName
  - CommandData::GetArcName
  - CommandData::IsSwitch
  - CommandData::GetExclAttr
  - CommandData::CheckWinSize
  - CommandData::ReportWrongSwitches
  source_file: /src/clamav/libclamunrar/cmddata.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/extract.hpp
- function_names:
  - CmdExtract::CmdExtract
  - CmdExtract::~CmdExtract()
  - CmdExtract::FreeAnalyzeData
  - CmdExtract::DoExtract
  - CmdExtract::ExtractArchiveInit
  - CmdExtract::ExtractArchive
  - CmdExtract::ExtractCurrentFile
  - CmdExtract::UnstoreFile
  - CmdExtract::ExtractFileCopy
  - CmdExtract::ExtrPrepareName
  - CmdExtract::ExtrDllGetPassword
  - CmdExtract::ExtrGetPassword
  - CmdExtract::ConvertDosPassword
  - CmdExtract::ExtrCreateDir
  - CmdExtract::ExtrCreateFile
  - CmdExtract::CheckUnpVer
  - CmdExtract::AnalyzeArchive
  - CmdExtract::GetFirstVolIfFullSet
  source_file: /src/clamav/libclamunrar/extract.cpp
- function_names:
  - Log
  source_file: /src/clamav/libclamunrar/log.hpp
- function_names:
  - SubAllocator::SubAllocator
  - SubAllocator::Clean
  - SubAllocator::InsertNode
  - SubAllocator::RemoveNode
  - SubAllocator::U2B
  - SubAllocator::MBPtr
  - SubAllocator::SplitBlock
  - SubAllocator::StopSubAllocator
  - SubAllocator::StartSubAllocator
  - SubAllocator::InitSubAllocator
  - SubAllocator::GlueFreeBlocks
  - SubAllocator::AllocUnitsRare
  - SubAllocator::AllocUnits
  - SubAllocator::AllocContext
  - SubAllocator::ExpandUnits
  - SubAllocator::ShrinkUnits
  - SubAllocator::FreeUnits
  source_file: /src/clamav/libclamunrar/suballoc.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/filefn.hpp
- function_names:
  - main
  source_file: /src/clamav/libclamunrar/rar.cpp
- function_names:
  - ErrorHandler::ErrorHandler
  - ErrorHandler::Clean
  - ErrorHandler::MemoryError
  - ErrorHandler::OpenError
  - ErrorHandler::CloseError
  - ErrorHandler::ReadError
  - ErrorHandler::AskRepeatRead
  - ErrorHandler::WriteError
  - ErrorHandler::WriteErrorFAT
  - ErrorHandler::AskRepeatWrite
  - ErrorHandler::SeekError
  - ErrorHandler::GeneralErrMsg
  - ErrorHandler::MemoryErrorMsg
  - ErrorHandler::OpenErrorMsg
  - ErrorHandler::OpenErrorMsg
  - ErrorHandler::CreateErrorMsg
  - ErrorHandler::CreateErrorMsg
  - ErrorHandler::ReadErrorMsg
  - ErrorHandler::ReadErrorMsg
  - ErrorHandler::WriteErrorMsg
  - ErrorHandler::ArcBrokenMsg
  - ErrorHandler::ChecksumFailedMsg
  - ErrorHandler::UnknownMethodMsg
  - ErrorHandler::Exit
  - ErrorHandler::SetErrorCode
  - _stdfunction::ProcessSignal
  - ErrorHandler::SetSignalHandlers
  - ErrorHandler::Throw
  - ErrorHandler::GetSysErrMsg
  - ErrorHandler::SysErrMsg
  - ErrorHandler::GetSystemErrorCode
  - ErrorHandler::SetSystemErrorCode
  source_file: /src/clamav/libclamunrar/errhnd.cpp
- function_names:
  - InitSystemOptions
  - SetPriority
  - MonoClock
  - Wait
  - Shutdown
  - ShutdownCheckAnother
  - LoadSysLibrary
  - IsUserAdmin
  - GetSSEVersion
  source_file: /src/clamav/libclamunrar/system.cpp
- function_names:
  - RawRead::GetDataPtr
  - RawRead::Size
  - RawRead::PaddedSize
  - RawRead::DataLeft
  - RawRead::GetPos
  - RawRead::SetPos
  - RawRead::Skip
  - RawRead::Rewind
  - RawRead::SetCrypt
  source_file: /src/clamav/libclamunrar/rawread.hpp
- function_names:
  - ErrorHandler::GetErrorCode
  - ErrorHandler::GetErrorCount
  - ErrorHandler::SetSilent
  - ErrorHandler::SetDisableShutdown
  - ErrorHandler::IsShutdownEnabled
  source_file: /src/clamav/libclamunrar/errhnd.hpp
- function_names:
  - BitInput::BitInput
  - BitInput::~BitInput()
  - BitInput::faddbits
  - BitInput::fgetbits
  - BitInput::SetExternalBuffer
  source_file: /src/clamav/libclamunrar/getbits.cpp
- function_names:
  - _PPMD_SWAP
  - RARPPM_CONTEXT::createChild
  - ModelPPM::ModelPPM
  - ModelPPM::RestartModelRare
  - ModelPPM::StartModelRare
  - RARPPM_CONTEXT::rescale
  - ModelPPM::CreateSuccessors
  - ModelPPM::UpdateModel
  - RARPPM_CONTEXT::decodeBinSymbol
  - RARPPM_CONTEXT::update1
  - RARPPM_CONTEXT::decodeSymbol1
  - RARPPM_CONTEXT::update2
  - RARPPM_CONTEXT::makeEscFreq2
  - RARPPM_CONTEXT::decodeSymbol2
  - ModelPPM::ClearMask
  - ModelPPM::CleanUp
  - ModelPPM::DecodeInit
  - ModelPPM::DecodeChar
  source_file: /src/clamav/libclamunrar/model.cpp
- function_names:
  - FileHeader::Reset
  - '& FileHeader::operator = (FileHeader &hd)'
  - MainHeader::Reset
  source_file: /src/clamav/libclamunrar/headers.cpp
- function_names:
  - Archive::GetHeaderType
  - Archive::GetCommandData
  - Archive::SetSilentOpen
  - Archive::QOpenUnload
  - Archive::SetProhibitQOpen
  source_file: /src/clamav/libclamunrar/archive.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/recvol.hpp
- function_names:
  - IsRedirected
  - InitConsole
  - SetConsoleMsgStream
  - SetConsoleRedirectCharset
  - ProhibitConsoleInput
  - cvt_wprintf
  - mprintf
  - eprintf
  - QuitIfInputProhibited
  - GetPasswordText
  - GetConsolePassword
  - getwstr
  - Ask
  - IsCommentUnsafe
  - OutComment
  source_file: /src/clamav/libclamunrar/consio.cpp
- function_names:
  - NullToEmpty
  - NullToEmpty
  - IntToExt
  - ArcCharToWide
  - stricomp
  - strnicomp
  - RemoveEOL
  - RemoveLF
  - etoupper
  - etoupperw
  - IsDigit
  - IsSpace
  - IsAlpha
  - BinToHex
  - GetDigits
  - LowAscii
  - LowAscii
  - wcsicompc
  - wcsnicompc
  - strncpyz
  - wcsncpyz
  - strncatz
  - wcsncatz
  - itoa
  - itoa
  - fmtitoa
  - GetWide
  - GetCmdParam
  - PrintfPrepareFmt
  source_file: /src/clamav/libclamunrar/strfn.cpp
- function_names:
  - RarTime::RarTime
  - operator == (RarTime &rt)
  - operator != (RarTime &rt)
  - operator < (RarTime &rt)
  - operator <= (RarTime &rt)
  - operator > (RarTime &rt)
  - operator >= (RarTime &rt)
  - RarTime::Reset
  - RarTime::IsSet
  source_file: /src/clamav/libclamunrar/timefn.hpp
- function_names:
  - RecVolumes5::RecVolumes5
  - RecVolumes5::~RecVolumes5()
  - THREAD_PROC
  - RecVolumes5::ProcessRS
  - RecVolumes5::ProcessAreaRS
  - RecVolumes5::Restore
  - RecVolumes5::ReadHeader
  - RecVolumes5::Test
  source_file: /src/clamav/libclamunrar/recvol5.cpp
- function_names:
  - uiInit
  - uiAskReplaceEx
  source_file: /src/clamav/libclamunrar/uicommon.cpp
- function_names:
  - MergeArchive
  - DllVolChange
  - DllVolNotify
  source_file: /src/clamav/libclamunrar/volume.cpp
- function_names:
  - RangeCoder::GetChar
  - RangeCoder::InitDecoder
  - RangeCoder::GetCurrentCount
  - RangeCoder::GetCurrentShiftCount
  - RangeCoder::Decode
  source_file: /src/clamav/libclamunrar/coder.cpp
- function_names:
  - Unpack::Unpack
  - Unpack::~Unpack()
  - Unpack::SetThreads
  - Unpack::Init
  - Unpack::DoUnpack
  - Unpack::UnpInitData
  - Unpack::MakeDecodeTables
  source_file: /src/clamav/libclamunrar/unpack.cpp
- function_names:
  - Array::Addr
  - Array::SetMaxSize
  - Array::Begin
  - Array::End
  - Array<T>::CleanData
  - Array<T>::Array
  - Array<T>::Array
  - Array<T>::Array
  - Array<T>::~Array()
  - '& Array<T>::operator [](size_t Item) const'
  - '* Array<T>::operator +(size_t Pos)'
  - Array<T>::Size
  - Array<T>::Add
  - Array<T>::Alloc
  - Array<T>::Reset
  - Array<T>::SoftReset
  - '& Array<T>::operator =(const Array<T> &Src)'
  - Array<T>::Push
  - Array<T>::Append
  source_file: /src/clamav/libclamunrar/array.hpp
- function_names:
  - Archive::GetComment
  - Archive::DoGetComment
  - Archive::ReadCommentData
  - Archive::ViewComment
  source_file: /src/clamav/libclamunrar/arccmt.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/version.hpp
- function_names:
  - ExtractHardlink
  source_file: /src/clamav/libclamunrar/hardlinks.cpp
- function_names:
  - ThreadPool::ThreadPool
  - ThreadPool::~ThreadPool()
  - ThreadPool::CreateThreads
  - ThreadPool::PoolThread
  - ThreadPool::PoolThreadLoop
  - ThreadPool::GetQueuedTask
  - ThreadPool::AddTask
  - ThreadPool::WaitDone
  source_file: /src/clamav/libclamunrar/threadpool.cpp
- function_names:
  - RSCoder::Init
  - RSCoder::gfInit
  - RSCoder::gfMult
  - RSCoder::pnInit
  - RSCoder::pnMult
  - RSCoder::Encode
  - RSCoder::Decode
  source_file: /src/clamav/libclamunrar/rs.cpp
- function_names:
  - CommandData::ExclCheck
  - CommandData::CheckArgs
  - CommandData::ExclDirByAttr
  - CommandData::SetTimeFilters
  - CommandData::TimeCheck
  - CommandData::SizeCheck
  - CommandData::IsProcessFile
  - CommandData::SetStoreTimeMode
  source_file: /src/clamav/libclamunrar/cmdfilter.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/encname.hpp
- function_names:
  - DataSet
  - RAROpenArchive
  - RAROpenArchiveEx
  - RARCloseArchive
  - RARReadHeader
  - RARReadHeaderEx
  - ProcessFile
  - RARProcessFile
  - RARProcessFileW
  - RARSetChangeVolProc
  - RARSetCallback
  - RARSetProcessDataProc
  - RARSetPassword
  - RARGetDllVersion
  - RarErrorToDll
  source_file: /src/clamav/libclamunrar/dll.cpp
- function_names:
  - VM_PreparedProgram
  source_file: /src/clamav/libclamunrar/rarvm.hpp
- function_names:
  - CryptData::CryptData
  - CryptData::DecryptBlock
  - CryptData::SetCryptKeys
  - TimeRandomize
  - GetRnd
  source_file: /src/clamav/libclamunrar/crypt.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/filestr.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/rarlang.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/global.cpp
- function_names:
  - init
  - getMean
  - update
  source_file: /src/clamav/libclamunrar/model.hpp
- function_names:
  - insertAt
  - remove
  - ~SubAllocator()
  - SubAllocator::GetAllocatedMemory
  source_file: /src/clamav/libclamunrar/suballoc.hpp
- function_names:
  - SaveFilePos::SaveFilePos
  - ~SaveFilePos()
  source_file: /src/clamav/libclamunrar/savepos.hpp
- function_names:
  - Xor128
  - Xor128
  - Copy128
  - Rijndael::Rijndael
  - Rijndael::Init
  - Rijndael::blockEncrypt
  - Rijndael::blockEncryptSSE
  - Rijndael::blockEncryptNeon
  - Rijndael::blockDecrypt
  - Rijndael::blockDecryptSSE
  - Rijndael::blockDecryptNeon
  - Rijndael::keySched
  - Rijndael::keyEncToDec
  - gmul
  - Rijndael::GenerateTables
  - TestRij
  - TestRijndael
  source_file: /src/clamav/libclamunrar/rijndael.cpp
- function_names:
  - Unpack::Unpack15
  - Unpack::ShortLZ
  - Unpack::LongLZ
  - Unpack::HuffDecode
  - Unpack::GetFlagsBuf
  - Unpack::UnpInitData15
  - Unpack::InitHuff
  - Unpack::CorrHuff
  - Unpack::CopyString15
  - Unpack::DecodeNum
  source_file: /src/clamav/libclamunrar/unpack15.cpp
- function_names:
  - sha256_init
  - sha256_transform
  - sha256_process
  - sha256_done
  source_file: /src/clamav/libclamunrar/sha256.cpp
- function_names:
  - Unpack::CopyString20
  - Unpack::Unpack20
  - Unpack::UnpWriteBuf20
  - Unpack::ReadTables20
  - Unpack::ReadLastTables
  - Unpack::UnpInitData20
  - Unpack::DecodeAudio
  source_file: /src/clamav/libclamunrar/unpack20.cpp
- function_names:
  - Unpack::InsertOldDist
  - Unpack::CopyString
  - Unpack::DecodeNumber
  - Unpack::SlotToLength
  source_file: /src/clamav/libclamunrar/unpackinline.cpp
- function_names:
  - ComprDataIO::ComprDataIO
  - ComprDataIO::Init
  - ComprDataIO::~ComprDataIO()
  - ComprDataIO::UnpRead
  - ComprDataIO::UnpWrite
  - ComprDataIO::ShowUnpRead
  - ComprDataIO::ShowUnpWrite
  - ComprDataIO::SetFiles
  - ComprDataIO::GetUnpackedData
  - ComprDataIO::SetEncryption
  - ComprDataIO::SetAV15Encryption
  - ComprDataIO::SetCmt13Encryption
  - ComprDataIO::SetUnpackToMemory
  - ComprDataIO::AdjustTotalArcSize
  source_file: /src/clamav/libclamunrar/rdwrfn.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/ui.cpp
- function_names:
  - HashValue::Init
  - HashValue::operator == (const HashValue &cmp) const
  - DataHash::DataHash
  - DataHash::~DataHash()
  - DataHash::Init
  - DataHash::Update
  - DataHash::Result
  - DataHash::GetCRC32
  - DataHash::Cmp
  source_file: /src/clamav/libclamunrar/hash.cpp
- function_names:
  - EncodeFileName::EncodeFileName
  - EncodeFileName::Decode
  source_file: /src/clamav/libclamunrar/encname.cpp
- function_names:
  - InitLogOptions
  - Log
  source_file: /src/clamav/libclamunrar/log.cpp
- function_names:
  - RarVM::RarVM
  - RarVM::~RarVM()
  - RarVM::Init
  - RarVM::Execute
  - RarVM::Prepare
  - RarVM::ReadData
  - RarVM::SetMemory
  - RarVM::ExecuteStandardFilter
  - RarVM::FilterItanium_GetBits
  - RarVM::FilterItanium_SetBits
  source_file: /src/clamav/libclamunrar/rarvm.cpp
- function_names:
  - SlashToNative
  - SlashToNative
  source_file: /src/clamav/libclamunrar/pathfn.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/sha1.hpp
- function_names:
  - MakeDir
  - CreatePath
  - SetDirTime
  - IsRemovable
  - GetFreeDisk
  - IsFAT
  - FileExist
  - WildFileExist
  - IsDir
  - IsUnreadable
  - IsLink
  - IsDeleteAllowed
  - PrepareToDelete
  - GetFileAttr
  - SetFileAttr
  - MkTemp
  - CalcFileSum
  - RenameFile
  - DelFile
  - DelDir
  - SetFileCompression
  - ResetFileCache
  - LinksToDirs
  source_file: /src/clamav/libclamunrar/filefn.cpp
- function_names:
  - SetExtraInfo20
  - SetExtraInfo
  - SetFileHeaderExtra
  - CalcAllowedDepth
  - LinkInPath
  - IsRelativeSymlinkSafe
  - ExtractSymlink
  source_file: /src/clamav/libclamunrar/extinfo.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/os.hpp
- function_names:
  - FindFile::FindFile
  - FindFile::~FindFile()
  - FindFile::SetMask
  - FindFile::Next
  - FindFile::FastFind
  - FindFile::Win32Find
  source_file: /src/clamav/libclamunrar/find.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/strfn.hpp
- function_names:
  - ScanTree::GetSpecPathLength
  - ScanTree::GetErrors
  - ScanTree::SetErrArcName
  - ScanTree::SetCommandData
  - ScanTree::SetErrDirList
  source_file: /src/clamav/libclamunrar/scantree.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/rardefs.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/list.hpp
- function_names:
  - touppercw
  - CmpName
  - match
  - mwcsicompc
  - mwcsnicompc
  source_file: /src/clamav/libclamunrar/match.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/rartypes.hpp
- function_names: []
  source_file: /src/clamav/libclamunrar/rar.hpp
- function_names:
  - ScanTree::ScanTree
  - ScanTree::~ScanTree()
  - ScanTree::GetNext
  - ScanTree::ExpandFolderMask
  - ScanTree::GetFilteredMask
  - ScanTree::GetNextMask
  - ScanTree::FindProc
  - ScanTree::ScanError
  source_file: /src/clamav/libclamunrar/scantree.cpp
- function_names:
  - uiAskReplace
  - uiStartArchiveExtract
  - uiStartFileExtract
  - uiExtractProgress
  - uiProcessProgress
  - uiMsgStore::Msg
  - uiGetPassword
  - uiIsGlobalPasswordSet
  - uiAlarm
  - uiIsAborted
  - uiGiveTick
  - uiGetMonthName
  - uiEolAfterMsg
  source_file: /src/clamav/libclamunrar/uisilent.cpp
- function_names:
  - RSCoder16::RSCoder16
  - RSCoder16::~RSCoder16()
  - RSCoder16::gfInit
  - RSCoder16::gfAdd
  - RSCoder16::gfMul
  - RSCoder16::gfInv
  - RSCoder16::Init
  - RSCoder16::MakeEncoderMatrix
  - RSCoder16::MakeDecoderMatrix
  - RSCoder16::InvertDecoderMatrix
  - RSCoder16::Process
  - RSCoder16::UpdateECC
  - RSCoder16::SSE_UpdateECC
  source_file: /src/clamav/libclamunrar/rs16.cpp
- function_names:
  - SecPassword::IsSet
  source_file: /src/clamav/libclamunrar/secpassword.hpp
- function_names:
  - WideToChar
  - CharToWide
  - WideToCharMap
  - CharToWideMap
  - WideToRaw
  - RawToWide
  - WideToUtf
  - WideToUtfSize
  - UtfToWide
  - IsTextUtf8
  - IsTextUtf8
  - wcsicomp
  - wcsnicomp
  - wcscasestr
  - wcslower
  - wcsupper
  - toupperw
  - tolowerw
  - atoiw
  - atoilw
  - SupportDBCS::SupportDBCS
  - SupportDBCS::Init
  - SupportDBCS::charnext
  source_file: /src/clamav/libclamunrar/unicode.cpp
- function_names: []
  source_file: /src/clamav/libclamunrar/extinfo.hpp
- function_names: []
  source_file: /src/clamav/libclamav/htmlnorm.h
- function_names:
  - cli_scanishield_msi
  - cli_scanishield
  - is_dump_and_scan
  - is_parse_hdr
  - md5str
  - is_extract_cab
  source_file: /src/clamav/libclamav/ishield.c
- function_names: []
  source_file: /src/clamav/libclamav/filetypes.h
- function_names:
  - openioc_read
  - openioc_is_context_hash
  - openioc_parse_content
  - openioc_parse_indicatoritem
  - openioc_parse_indicator
  - openioc_parse
  source_file: /src/clamav/libclamav/openioc.c
- function_names: []
  source_file: /src/clamav/libclamav/untar.h
- function_names: []
  source_file: /src/clamav/libclamav/hostid_internal.h
- function_names: []
  source_file: /src/clamav/libclamav/mbr.h
- function_names:
  - is_tar
  - from_oct
  source_file: /src/clamav/libclamav/is_tar.c
- function_names: []
  source_file: /src/clamav/libclamav/unzip.h
- function_names:
  - map_raw
  - map_sha512
  - map_sha384
  - map_sha256
  - map_sha1
  - map_md5
  - map_hash
  - get_hash_ctx
  - asn1_get_obj
  - asn1_expect_objtype
  - asn1_expect_obj
  - asn1_expect_algo
  - asn1_expect_algo_multi
  - asn1_expect_hash_algo
  - asn1_expect_rsa
  - asn1_expect_list_member
  - asn1_getnum
  - asn1_get_time
  - asn1_get_rsa_pubkey
  - asn1_get_x509
  - asn1_parse_countersignature
  - asn1_parse_mscat
  - asn1_load_mscat
  - asn1_check_mscat
  source_file: /src/clamav/libclamav/asn1.c
- function_names:
  - cli_rawaddr32
  - cli_rawaddr64
  - cli_elf_fileheader
  - cli_elf_ph32
  - cli_elf_ph64
  - cli_elf_sh32
  - cli_elf_sh64
  - cli_elf_sectionlog
  - cli_scanelf
  - cli_elfheader
  - cli_unpackelf
  source_file: /src/clamav/libclamav/elf.c
- function_names: []
  source_file: /src/clamav/libclamav/pe.h
- function_names: []
  source_file: /src/clamav/libclamav/matcher.h
- function_names:
  - cctld_hash
  - in_cctld_set
  source_file: /src/clamav/libclamav/iana_cctld.h
- function_names:
  - get_hash
  - get_sample_names
  - print_sample
  - clamav_stats_add_sample
  - clamav_stats_flush
  - free_sample
  - clamav_stats_submit
  - clamav_stats_remove_sample
  - clamav_stats_decrement_count
  - clamav_stats_get_num
  - clamav_stats_get_size
  - clamav_stats_get_hostid
  - clamav_stats_get_hostid
  - clamav_stats_get_hostid
  - find_sample
  - cl_engine_set_clcb_stats_submit
  - cl_engine_set_stats_set_cbdata
  - cl_engine_set_clcb_stats_add_sample
  - cl_engine_set_clcb_stats_remove_sample
  - cl_engine_set_clcb_stats_decrement_count
  - cl_engine_set_clcb_stats_flush
  - cl_engine_set_clcb_stats_get_num
  - cl_engine_set_clcb_stats_get_size
  - cl_engine_set_clcb_stats_get_hostid
  - cl_engine_stats_enable
  source_file: /src/clamav/libclamav/stats.c
- function_names: []
  source_file: /src/clamav/libclamav/inflate64_priv.h
- function_names: []
  source_file: /src/clamav/libclamav/uuencode.h
- function_names:
  - cli_check_mydoom_log
  - riff_endian_convert_32
  - riff_read_chunk
  - cli_check_riff_exploit
  - swizz_j48
  - cli_detect_swizz_str
  - swizz_j48_global
  - cli_detect_swizz
  source_file: /src/clamav/libclamav/special.c
- function_names:
  - fatal_error
  - get_char_at_pos_with_skip
  - validate_subdomain
  - regex_list_match
  - init_regex_list
  - functionality_level_check
  - add_hash
  - load_regex_matcher
  - cli_build_regex_list
  - regex_list_done
  - is_regex_ok
  - add_newsuffix
  - list_add_tail
  - add_pattern_suffix
  - reverse_string
  - new_preg
  - add_static_pattern
  - regex_list_add_pattern
  source_file: /src/clamav/libclamav/regex_list.c
- function_names: []
  source_file: /src/clamav/libclamav/ishield.h
- function_names:
  - cli_bytecode_prepare_jit
  - cli_vm_execute_jit
  - cli_bytecode_init_jit
  - cli_bytecode_done_jit
  - cli_bytecode_debug
  - bytecode_init
  - cli_bytecode_debug_printsrc
  - cli_bytecode_printversion
  - have_clamjit
  - cli_printcxxver
  - cli_detect_env_jit
  source_file: /src/clamav/libclamav/bytecode_nojit.c
- function_names: []
  source_file: /src/clamav/libclamav/phishcheck.h
- function_names:
  - hm_addhash_str
  - hm_addhash_bin
  - hm_cmp
  - hm_sort
  - hm_flush
  - cli_hm_have_size
  - cli_hm_have_wild
  - cli_hm_have_any
  - hm_scan
  - cli_hm_scan
  - cli_hm_scan_wild
  - hm_free
  source_file: /src/clamav/libclamav/matcher-hash.c
- function_names:
  - cli_bm_addpatt
  - cli_bm_init
  - cli_bm_initoff
  - cli_bm_freeoff
  - cli_bm_free
  - cli_bm_scanbuff
  source_file: /src/clamav/libclamav/matcher-bm.c
- function_names:
  - cli_dconf_init
  - cli_dconf_print
  - chkflevel
  - cli_dconf_load
  source_file: /src/clamav/libclamav/dconf.c
- function_names:
  - wwunpack
  source_file: /src/clamav/libclamav/wwunpack.c
- function_names:
  - pcre_perf_events_init
  - sigelem_comp
  - cli_pcre_perf_print
  - cli_pcre_perf_events_destroy
  - cli_pcre_build
  - cli_pcre_recaloff
  - cli_pcre_freeoff
  - cli_pcre_qoff
  - cli_pcre_scanbuf
  - cli_pcre_freemeta
  - cli_pcre_freetable
  source_file: /src/clamav/libclamav/matcher-pcre.c
- function_names: []
  source_file: /src/clamav/libclamav/dmg.h
- function_names:
  - url_check_init
  - string_free
  - string_assign
  - string_init_c
  - string_assign_concatenated
  - string_assign_dup
  - string_assign_null
  - string_assign_ref
  - free_if_needed
  - build_regex
  - get_host
  - rfind
  - get_domain
  - isNumeric
  - isSSL
  - str_hex_to_char
  - str_strip
  - str_replace
  - str_make_lowercase
  - clear_msb
  - str_fixup_spaces
  - cleanupURL
  - phishingScan
  - hex2int
  - free_regex
  - phishing_init
  - phishing_done
  - validate_uri_xalphas_nodot
  - validate_uri_xpalphas_nodot
  - validate_uri_ialpha
  - isURL
  - isRealURL
  - isNumericURL
  - cleanupURLs
  - url_get_host
  - url_get_domain
  - phishy_map
  - allow_list_check
  - hash_match
  - cli_url_canon
  - url_hash_match
  - phishingCheck
  - phishing_ret_toString
  source_file: /src/clamav/libclamav/phishcheck.c
- function_names:
  - hash
  - yr_hash_table_create
  - yr_hash_table_destroy
  - yr_hash_table_lookup
  - yr_hash_table_add
  source_file: /src/clamav/libclamav/yara_hash.c
- function_names: []
  source_file: /src/clamav/libclamav/spin.h
- function_names:
  - cli_binhex
  source_file: /src/clamav/libclamav/binhex.c
- function_names: []
  source_file: /src/clamav/libclamav/disasm-common.h
- function_names: []
  source_file: /src/clamav/libclamav/matcher-hash-types.h
- function_names: []
  source_file: /src/clamav/libclamav/libmspack.h
- function_names: []
  source_file: /src/clamav/libclamav/phish_allow_list.h
- function_names: []
  source_file: /src/clamav/libclamav/vba_extract.h
- function_names: []
  source_file: /src/clamav/libclamav/yara_exec.h
- function_names: []
  source_file: /src/clamav/libclamav/matcher-ac.h
- function_names: []
  source_file: /src/clamav/libclamav/matcher-pcre.h
- function_names: []
  source_file: /src/clamav/libclamav/message.h
- function_names:
  - init_rtf_state
  - compare_state
  - push_state
  - pop_state
  - load_actions
  - rtf_object_begin
  - decode_and_scan
  - rtf_object_process
  - rtf_object_end
  - rtf_action
  - cleanup_stack
  - cli_scanrtf
  source_file: /src/clamav/libclamav/rtf.c
- function_names: []
  source_file: /src/clamav/libclamav/yara_parser.h
- function_names: []
  source_file: /src/clamav/libclamav/crtmgr.h
- function_names:
  - adc_decompressInit
  - adc_decompress
  - adc_decompressEnd
  source_file: /src/clamav/libclamav/adc.c
- function_names: []
  source_file: /src/clamav/libclamav/wwunpack.h
- function_names: []
  source_file: /src/clamav/libclamav/aspack.h
- function_names:
  - xar_cleanup_temp_file
  - xar_get_numeric_from_xml_element
  - xar_get_checksum_values
  - xar_get_toc_data_values
  - xar_scan_subdocuments
  - xar_hash_init
  - xar_hash_update
  - xar_hash_final
  - xar_hash_check
  - cli_scanxar
  source_file: /src/clamav/libclamav/xar.c
- function_names:
  - msxml_read_cb_new_window
  - msxml_read_cb
  - cli_scanmsxml
  source_file: /src/clamav/libclamav/msxml.c
- function_names:
  - cli_pcre_malloc
  - cli_pcre_free
  - cli_pcre_addoptions
  - cli_pcre_compile
  - cli_pcre_match
  - named_substr_print
  - cli_pcre_report
  - cli_pcre_results_reset
  - cli_pcre_results_free
  - cli_pcre_free_single
  source_file: /src/clamav/libclamav/regex_pcre.c
- function_names: []
  source_file: /src/clamav/libclamav/msdoc.h
- function_names: []
  source_file: /src/clamav/libclamav/regex_suffix.h
- function_names: []
  source_file: /src/clamav/libclamav/events.h
- function_names: []
  source_file: /src/clamav/libclamav/upack.h
- function_names:
  - cli_exe_info_init
  - cli_exe_info_destroy
  source_file: /src/clamav/libclamav/execs.c
- function_names:
  - msxml_check_key
  - msxml_error_handler
  - msxml_is_int
  - msxml_parse_value
  - msxml_parse_element
  - cli_msxml_parse_document
  source_file: /src/clamav/libclamav/msxml_parser.c
- function_names:
  - gpt_detect_size
  - cli_scangpt
  - gpt_scan_partitions
  - gpt_validate_header
  - gpt_check_mbr
  - gpt_printSectors
  - gpt_printGUID
  - gpt_partition_intersection
  source_file: /src/clamav/libclamav/gpt.c
- function_names: []
  source_file: /src/clamav/libclamav/default.h
- function_names: []
  source_file: /src/clamav/libclamav/stats_json.h
- function_names:
  - FileInStream_fmap_Read
  - FileInStream_fmap_Seek
  - cli_7unz
  source_file: /src/clamav/libclamav/7z_iface.c
- function_names:
  - u16_normalize
  - u16_normalize_tobuffer
  - entity_norm
  - encoding_bytes
  - iconv_open
  - iconv_close
  - iconv
  - detect_encoding
  - encoding_detect_bom
  - normalize_encoding
  - iconv_cache_init
  - iconv_cache_destroy
  - iconv_pool_tls_instance_destroy
  - iconv_cache_cleanup_main
  - iconv_pool_tls_key_alloc
  - init_iconv_pool_ifneeded
  - cache_get_tls_instance
  - iconv_cache_cleanup_main
  - init_iconv_pool_ifneeded
  - cache_get_tls_instance
  - iconv_open_cached
  - in_iconv_u16
  - encoding_normalize_toascii
  - cli_codepage_to_utf8
  - cli_utf16toascii
  - cli_utf16_to_utf8
  - cli_isutf8
  source_file: /src/clamav/libclamav/entconv.c
- function_names: []
  source_file: /src/clamav/libclamav/is_tar.h
- function_names: []
  source_file: /src/clamav/libclamav/mpool.h
- function_names:
  - dump_xdp
  - cli_scanxdp
  source_file: /src/clamav/libclamav/xdp.c
- function_names: []
  source_file: /src/clamav/libclamav/iso9660.h
- function_names: []
  source_file: /src/clamav/libclamav/ooxml.h
- function_names: []
  source_file: /src/clamav/libclamav/conv.h
- function_names:
  - yc_bounds_check
  - yc_poly_emulator
  - yc_decrypt
  source_file: /src/clamav/libclamav/yc.c
- function_names:
  - rewind_tospace
  - cli_readchunk
  - html_output_flush
  - html_output_c
  - html_output_str
  - html_tag_arg_value
  - html_tag_arg_set
  - html_tag_arg_add
  - html_output_tag
  - html_tag_arg_free
  - html_tag_contents_append
  - html_tag_contents_done
  - screnc_decode
  - js_process
  - html_insert_form_data
  - html_form_data_tag_free
  - cli_html_normalise
  - html_normalise_mem
  - html_normalise_mem_form_data
  - html_normalise_map
  - html_normalise_map_form_data
  - html_screnc_decode
  source_file: /src/clamav/libclamav/htmlnorm.c
- function_names:
  - cli_uuencode
  - uudecodeFile
  source_file: /src/clamav/libclamav/uuencode.c
- function_names:
  - funmap
  - fmap_need_off
  - fmap_need_off_once
  - fmap_ptr2off
  - fmap_need_ptr
  - fmap_need_ptr_once
  - fmap_unneed_off
  - fmap_unneed_ptr
  - fmap_readn
  - fmap_need_str
  - fmap_need_offstr
  - fmap_gets
  - fmap_need_off_once_len
  - fmap_need_ptr_once_len
  source_file: /src/clamav/libclamav/fmap.h
- function_names:
  - cli_rebuildpe
  - cli_rebuildpe_align
  source_file: /src/clamav/libclamav/rebuildpe.c
- function_names:
  - yy_symbol_value_print
  - yy_symbol_print
  - yy_stack_print
  - yy_reduce_print
  - yystrlen
  - yystpcpy
  - yytnamerr
  - yysyntax_error
  - yydestruct
  - yyparse
  source_file: /src/clamav/libclamav/yara_grammar.c
- function_names:
  - sanitname
  - cli_scancpio_old
  - cli_scancpio_odc
  - cli_scancpio_newc
  source_file: /src/clamav/libclamav/cpio.c
- function_names:
  - _yr_arena_new_page
  - _yr_arena_page_for_address
  - _yr_arena_make_relocatable
  - yr_arena_create
  - yr_arena_destroy
  - yr_arena_base_address
  - yr_arena_next_address
  - yr_arena_coalesce
  - yr_arena_reserve_memory
  - yr_arena_allocate_memory
  - yr_arena_allocate_struct
  - yr_arena_make_relocatable
  - yr_arena_write_data
  - yr_arena_write_string
  - yr_arena_append
  - yr_arena_duplicate
  - yr_arena_save
  - yr_arena_load
  source_file: /src/clamav/libclamav/yara_arena.c
- function_names: []
  source_file: /src/clamav/libclamav/clambc.h
- function_names: []
  source_file: /src/clamav/libclamav/bcfeatures.h
- function_names:
  - cli_parsegif
  source_file: /src/clamav/libclamav/gif.c
- function_names: []
  source_file: /src/clamav/libclamav/partition_intersection.h
- function_names:
  - lineCreate
  - lineLink
  - lineUnlink
  - lineGetData
  source_file: /src/clamav/libclamav/line.c
- function_names: []
  source_file: /src/clamav/libclamav/encoding_aliases.h
- function_names:
  - mspack_fmap_open
  - mspack_fmap_close
  - mspack_fmap_read
  - mspack_fmap_write
  - mspack_fmap_seek
  - mspack_fmap_tell
  - mspack_fmap_message
  - mspack_fmap_alloc
  - mspack_fmap_free
  - mspack_fmap_copy
  - cli_scanmscab
  - cli_scanmschm
  source_file: /src/clamav/libclamav/libmspack.c
- function_names: []
  source_file: /src/clamav/libclamav/type_desc.h
- function_names: []
  source_file: /src/clamav/libclamav/str.h
- function_names: []
  source_file: /src/clamav/libclamav/matcher-byte-comp.h
- function_names: []
  source_file: /src/clamav/libclamav/json_api.h
- function_names:
  - cli_print_environment
  - detect_PaX
  - detect_SELinux
  - detect_os_features
  - detect_os_features
  - cli_detect_environment
  source_file: /src/clamav/libclamav/bytecode_detect.c
- function_names:
  - cli_crt_init_fps
  - cli_crt_init
  - cli_crt_clear
  - crtmgr_trust_list_lookup
  - crtmgr_block_list_lookup
  - crtmgr_lookup
  - crtmgr_add
  - crtmgr_init
  - crtmgr_del
  - crtmgr_free
  - _padding_check_PKCS1_type_1
  - crtmgr_get_recov_data
  - crtmgr_rsa_verify
  - crtmgr_verify_crt
  - crtmgr_verify_pkcs7
  - crtmgr_add_roots
  source_file: /src/clamav/libclamav/crtmgr.c
- function_names:
  - tld_hash
  - in_tld_set
  source_file: /src/clamav/libclamav/iana_tld.h
- function_names: []
  source_file: /src/clamav/libclamav/inflate64.h
- function_names:
  - readstream
  - getdec
  - build_decrypt_array
  - getbits
  - build_decrypt_dictionaries
  - decrypt
  - decomp_block
  - unaspack
  source_file: /src/clamav/libclamav/aspack.c
- function_names:
  - doubledl
  - cli_unfsg
  - unmew
  source_file: /src/clamav/libclamav/packlibs.c
- function_names:
  - __lzma_wrap_alloc
  - __lzma_wrap_free
  - lzma_getbyte
  - cli_LzmaInit
  - cli_LzmaShutdown
  - cli_LzmaDecode
  source_file: /src/clamav/libclamav/lzma_iface.c
- function_names:
  - yr_compiler_create
  - yr_compiler_destroy
  - yr_compiler_set_callback
  - _yr_compiler_push_file
  - _yr_compiler_pop_file
  - _yr_compiler_push_file_name
  - _yr_compiler_pop_file_name
  - yr_compiler_get_current_file_name
  - _yr_compiler_set_namespace
  - yr_compiler_add_file
  - yr_compiler_add_string
  - _yr_compiler_compile_rules
  - yr_compiler_get_rules
  - yr_compiler_define_integer_variable
  - yr_compiler_define_boolean_variable
  - yr_compiler_define_string_variable
  - yr_compiler_get_error_message
  source_file: /src/clamav/libclamav/yara_compiler.c
- function_names: []
  source_file: /src/clamav/libclamav/regex_pcre.h
- function_names: []
  source_file: /src/clamav/libclamav/msexpand.h
- function_names: []
  source_file: /src/clamav/libclamav/tiff.h
- function_names:
  - perf_log_filter
  - perf_log_tries
  - perf_log_filter
  - perf_log_tries
  - matcher_run
  - cli_scan_buff
  - cli_caloff
  - cli_targetinfo_init
  - cli_targetinfo
  - cli_targetinfo_destroy
  - cli_check_fp
  - matchicon
  - cli_bcapi_matchicon
  - cli_scan_desc
  - intermediates_eval
  - lsig_eval
  - yara_eval
  - cli_exp_eval
  - cli_scan_fmap
  - cli_matchmeta
  source_file: /src/clamav/libclamav/matcher.c
- function_names: []
  source_file: /src/clamav/libclamav/adc.h
- function_names: []
  source_file: /src/clamav/libclamav/fsg.h
- function_names: []
  source_file: /src/clamav/libclamav/bytecode_api_impl.h
- function_names: []
  source_file: /src/clamav/libclamav/rebuildpe.h
- function_names: []
  source_file: /src/clamav/libclamav/text.h
- function_names:
  - getEncryptName
  - getMagicHeaderName
  - egg_free_encrypt
  - egg_parse_encrypt_header
  - egg_parse_comment_header
  - egg_free_egg_block
  - egg_parse_block_headers
  - egg_free_egg_file
  - egg_parse_archive_extra_field
  - print_posix_info_mode
  - egg_parse_file_extra_field
  - egg_parse_file_headers
  - egg_free_egg_handle
  - egg_parse_archive_headers
  - cli_egg_open
  - cli_egg_peek_file_header
  - cli_egg_deflate_decompress
  - cli_egg_bzip2_decompress
  - cli_egg_lzma_decompress
  - cli_egg_extract_file
  - cli_egg_skip_file
  - cli_egg_close
  source_file: /src/clamav/libclamav/egg.c
- function_names: []
  source_file: /src/clamav/libclamav/asn1.h
- function_names: []
  source_file: /src/clamav/libclamav/filetypes_int.h
- function_names: []
  source_file: /src/clamav/libclamav/table.h
- function_names:
  - spam_x86
  - disasm_x86
  - cli_disasm_one
  - disasmbuf
  source_file: /src/clamav/libclamav/disasm.c
- function_names:
  - load_module
  - load_module
  - get_module_function
  - get_module_function
  - rarload
  - cl_debug
  - cl_always_gen_section_hash
  - cl_retflevel
  - cl_strerror
  - cl_init
  - cl_engine_get_num
  - cl_engine_set_str
  - cl_engine_get_str
  - cl_engine_settings_copy
  - cl_engine_settings_apply
  - cl_engine_settings_free
  - cli_append_potentially_unwanted_if_heur_exceedsmax
  - cli_checklimits
  - cli_updatelimits
  - cli_checktimelimit
  - cli_hashstream
  - cli_hashfile
  - cli_unlink
  - cli_virus_found_cb
  - append_virus
  - cli_append_potentially_unwanted
  - cli_append_virus
  - cli_get_last_virus
  - cli_get_last_virus_str
  - cli_recursion_stack_push
  - cli_recursion_stack_pop
  - cli_recursion_stack_change_type
  - recursion_stack_get
  - cli_recursion_stack_get_type
  - cli_recursion_stack_get_size
  - cli_rmdirs
  - cli_rmdirs
  - nearest_power
  - cli_bitset_init
  - cli_bitset_free
  - bitset_realloc
  - cli_bitset_set
  - cli_bitset_test
  - cl_engine_set_clcb_pre_cache
  - cl_engine_set_clcb_file_inspection
  - cl_engine_set_clcb_pre_scan
  - cl_engine_set_clcb_post_scan
  - cl_engine_set_clcb_virus_found
  - cl_engine_set_clcb_sigload
  - cl_engine_set_clcb_sigload_progress
  - cl_engine_set_clcb_engine_compile_progress
  - cl_engine_set_clcb_engine_free_progress
  - cl_engine_set_clcb_hash
  - cl_engine_set_clcb_meta
  - cl_engine_set_clcb_file_props
  - cl_engine_set_clcb_vba
  - cli_get_debug_flag
  - cli_set_debug_flag
  source_file: /src/clamav/libclamav/others.c
- function_names:
  - cli_perf_enter
  - cli_perf_log_add
  - cli_perf_log_count2
  - cli_perf_log_count
  source_file: /src/clamav/libclamav/perflogging.h
- function_names:
  - text_normalize_init
  - text_normalize_reset
  - text_normalize_buffer
  - text_normalize_map
  source_file: /src/clamav/libclamav/textnorm.c
- function_names: []
  source_file: /src/clamav/libclamav/yara_compiler.h
- function_names: []
  source_file: /src/clamav/libclamav/yara_grammar.h
- function_names:
  - connect_host
  - encoded_size
  - encode_data
  - submit_post
  source_file: /src/clamav/libclamav/www.c
- function_names:
  - cli_strlcat
  source_file: /src/clamav/libclamav/strlcat.c
- function_names:
  - cli_mbr_check
  - cli_mbr_check2
  - cli_scanmbr
  - mbr_scanextprtn
  - mbr_convert_to_host
  - mbr_check_mbr
  - mbr_check_ebr
  - mbr_primary_partition_intersection
  - mbr_extended_partition_intersection
  source_file: /src/clamav/libclamav/mbr.c
- function_names:
  - cli_bcomp_addpatt
  - cli_bcomp_scanbuf
  - cli_bcomp_compare_check
  - cli_bcomp_chk_hex
  - cli_bcomp_normalize_buffer
  - cli_bcomp_freemeta
  source_file: /src/clamav/libclamav/matcher-byte-comp.c
- function_names: []
  source_file: /src/clamav/libclamav/autoit.h
- function_names: []
  source_file: /src/clamav/libclamav/gpt.h
- function_names:
  - uniq_init
  - uniq_free
  - uniq_add
  - uniq_get
  source_file: /src/clamav/libclamav/uniq.c
- function_names: []
  source_file: /src/clamav/libclamav/iowrap.h
- function_names: []
  source_file: /src/clamav/libclamav/sf_base64decode.h
- function_names: []
  source_file: /src/clamav/libclamav/cache.h
- function_names:
  - cli_mbox
  - cli_parse_mbox
  - appendReadStruct
  - getMallocedBufferFromList
  - freeList
  - doContinueMultipleEmptyOptions
  - hitLineFoldCnt
  - haveTooManyHeaderBytes
  - haveTooManyEmailHeaders
  - haveTooManyMIMEPartsPerMessage
  - haveTooManyMIMEArguments
  - parseEmailFile
  - parseEmailHeaders
  - parseEmailHeader
  - parseMHTMLComment
  - parseRootMHTML
  - parseEmailBody
  - boundaryStart
  - boundaryEnd
  - initialiseTables
  - getTextPart
  - strip
  - strstrip
  - parseMimeHeader
  - saveTextPart
  - rfc822comments
  - rfc2047
  - rfc1341
  - hrefs_done
  - extract_text_urls
  - getHrefs
  - checkURLs
  - sigsegv
  - print_trace
  - usefulHeader
  - getline_from_mbox
  - isBounceStart
  - exportBinhexMessage
  - exportBounceMessage
  - getMimeTypeStr
  - getEncTypeStr
  - do_multipart
  - count_quotes
  - next_is_folded_header
  - newline_in_header
  source_file: /src/clamav/libclamav/mbox.c
- function_names: []
  source_file: /src/clamav/libclamav/bytecode_hooks.h
- function_names: []
  source_file: /src/clamav/libclamav/tnef.h
- function_names: []
  source_file: /src/clamav/libclamav/uniq.h
- function_names:
  - groupicon_scan_cb
  - icon_scan_cb
  - cli_scanicon
  - cli_groupiconscan
  - lab
  - labdiff
  - lab2
  - labdiff2
  - makebmp
  - matchpoint
  - matchbwpoint
  - hsv
  - getmetrics
  - parseicon
  - cli_icongroupset_add
  source_file: /src/clamav/libclamav/pe_icons.c
- function_names: []
  source_file: /src/clamav/libclamav/xz_iface.h
- function_names:
  - spam
  - align_to_pagesize
  - to_bits
  - from_bits
  - alignof
  - alignto
  - mpool_create
  - mpool_destroy
  - mpool_flush
  - mpool_getstats
  - align_increase
  - allocate_aligned
  - allocbase_fromfrag
  - mpool_free
  - mpool_calloc
  - mpool_realloc
  - mpool_realloc2
  - cli_mpool_hex2str
  - cli_mpool_strdup
  - cli_mpool_strndup
  - cli_mpool_virname
  - cli_mpool_hex2ui
  - mpool_stats
  - check_all
  - mpool_free
  - mpool_create
  - mpool_destroy
  - mpool_getstats
  - mpool_calloc
  source_file: /src/clamav/libclamav/mpool.c
- function_names: []
  source_file: /src/clamav/libclamav/cvd.h
- function_names:
  - octal
  - getchecksum
  - testchecksum
  - cli_untar
  source_file: /src/clamav/libclamav/untar.c
- function_names:
  - pread_cb
  - fmap_check_empty
  - unmap_win32
  - fmap_check_empty
  - fmap_duplicate
  - free_duplicate_fmap
  - unmap_handle
  - cl_fmap_open_handle
  - fmap_aging
  - fmap_readpage
  - handle_need
  - fmap_unneed_page
  - handle_unneed_off
  - unmap_mmap
  - unmap_malloc
  - handle_need_offstr
  - handle_gets
  - fmap_open_memory
  - cl_fmap_open_memory
  - mem_need
  - mem_unneed_off
  - mem_need_offstr
  - mem_gets
  - fmap
  - fmap_align_items
  - fmap_align_to
  - fmap_which_page
  - fmap_dump_to_file
  - fmap_fd
  - cl_fmap_close
  - fmap_set_hash
  - fmap_get_hash
  source_file: /src/clamav/libclamav/fmap.c
- function_names: []
  source_file: /src/clamav/libclamav/macho.h
- function_names:
  - __xz_wrap_alloc
  - __xz_wrap_free
  - cli_XzInit
  - cli_XzShutdown
  - cli_XzDecode
  source_file: /src/clamav/libclamav/xz_iface.c
- function_names: []
  source_file: /src/clamav/libclamav/rijndael.h
- function_names: []
  source_file: /src/clamav/libclamav/pe_structs.h
- function_names:
  - nearest_power
  - PROFILE_INIT
  - PROFILE_CALC_HASH
  - PROFILE_FIND_ELEMENT
  - PROFILE_FIND_NOTFOUND
  - PROFILE_FIND_FOUND
  - PROFILE_HASH_EXHAUSTED
  - PROFILE_GROW_START
  - PROFILE_GROW_FOUND
  - PROFILE_GROW_DONE
  - PROFILE_DELETED_REUSE
  - PROFILE_INSERT
  - PROFILE_DATA_UPDATE
  - PROFILE_HASH_DELETE
  - PROFILE_HASH_CLEAR
  - PROFILE_REPORT
  - cli_hashtab_init
  - cli_htu32_init
  - hash32shift
  - hash
  - hash_htu32
  - cli_hashtab_find
  - cli_htu32_find
  - cli_htu32_next
  - cli_hashtab_grow
  - cli_htu32_grow
  - cli_hashtab_insert
  - cli_htu32_insert
  - cli_hashtab_delete
  - cli_htu32_delete
  - cli_hashtab_clear
  - cli_htu32_clear
  - cli_hashtab_free
  - cli_htu32_free
  - cli_htu32_numitems
  - cli_hashtab_store
  - cli_hashtab_generate_c
  - cli_hashtab_load
  - cli_hashset_init
  - cli_hashset_init_pool
  - cli_hashset_destroy
  - cli_hashset_search
  - cli_hashset_addkey_internal
  - cli_hashset_grow
  - cli_hashset_addkey
  - cli_hashset_removekey
  - cli_hashset_contains
  - cli_hashset_toarray
  - cli_hashset_init_noalloc
  - cli_hashset_contains_maybe_noalloc
  - cli_map_init
  - cli_map_addkey
  - cli_map_removekey
  - cli_map_setvalue
  - cli_map_find
  - cli_map_getvalue_size
  - cli_map_getvalue
  - cli_map_delete
  source_file: /src/clamav/libclamav/hashtab.c
- function_names: []
  source_file: /src/clamav/libclamav/yara_lexer.h
- function_names:
  - getFileIdentifierDescriptorPaddingLength
  - getFileIdentifierDescriptorSize
  - getFileEntryDescriptorSize
  source_file: /src/clamav/libclamav/udf.h
- function_names:
  - ole2_convert_utf
  - ole2_process_property
  - ole2_translate_docsummary_propid
  - ole2_translate_summary_propid
  - ole2_summary_propset_json
  - cli_ole2_summary_json_cleanup
  - cli_ole2_summary_json
  source_file: /src/clamav/libclamav/msdoc.c
- function_names: []
  source_file: /src/clamav/libclamav/7z_iface.h
- function_names: []
  source_file: /src/clamav/libclamav/disasm.h
- function_names: []
  source_file: /src/clamav/libclamav/dlp.h
- function_names: []
  source_file: /src/clamav/libclamav/entitylist.h
- function_names:
  - fill_buf
  - init_getbits
  - arj_getbits
  - decode_start
  - write_text
  - make_table
  - read_pt_len
  - read_c_len
  - decode_c
  - decode_p
  - decode
  - decode_ptr
  - decode_len
  - decode_f
  - arj_unstore
  - is_arj_archive
  - arj_read_main_header
  - arj_read_file_header
  - cli_unarj_open
  - cli_unarj_prepare_file
  - cli_unarj_extract_file
  source_file: /src/clamav/libclamav/unarj.c
- function_names: []
  source_file: /src/clamav/libclamav/mbox.h
- function_names:
  - rijndaelSetupEncrypt
  - rijndaelSetupDecrypt
  - rijndaelEncrypt
  - rijndaelDecrypt
  source_file: /src/clamav/libclamav/rijndael.c
- function_names: []
  source_file: /src/clamav/libclamav/png.h
- function_names: []
  source_file: /src/clamav/libclamav/msxml.h
- function_names: []
  source_file: /src/clamav/libclamav/clamav.h
- function_names:
  - cli_hex2int
  - cli_realhex2ui
  - cli_hex2ui
  - cli_hex2str
  - cli_hex2str_to
  - cli_hex2num
  - cli_xtoi
  - cli_str2hex
  - cli_strbcasestr
  - cli_chomp
  - cli_strtok
  - cli_strtokbuf
  - cli_memstr
  - cli_strrcpy
  - __cli_strcasestr
  - __cli_strndup
  - __cli_strnlen
  - __cli_strnstr
  - cli_strtokenize
  - cli_strntol
  - cli_strntoul
  - cli_strntol_wrap
  - cli_strntoul_wrap
  - cli_ldbtokenize
  - cli_isnumber
  - output_utf8
  - cli_unescape
  - cli_textbuffer_append_normalize
  - cli_hexnibbles
  - cli_basename
  source_file: /src/clamav/libclamav/str.c
- function_names: []
  source_file: /src/clamav/libclamav/dconf.h
- function_names: []
  source_file: /src/clamav/libclamav/xar.h
- function_names: []
  source_file: /src/clamav/libclamav/mew.h
- function_names: []
  source_file: /src/clamav/libclamav/yara_hash.h
- function_names: []
  source_file: /src/clamav/libclamav/binhex.h
- function_names:
  - cli_rawaddr
  - cli_scanmacho
  - cli_machoheader
  - cli_scanmacho_unibin
  - cli_unpackmacho
  source_file: /src/clamav/libclamav/macho.c
- function_names: []
  source_file: /src/clamav/libclamav/egg.h
- function_names:
  - headerrecord_to_host
  - headerrecord_print
  - nodedescriptor_to_host
  - nodedescriptor_print
  - forkdata_to_host
  - forkdata_print
  - hfsplus_volumeheader
  - hfsplus_readheader
  - hfsplus_scanfile
  - hfsplus_validate_catalog
  - hfsplus_check_attribute
  - hfsplus_fetch_node
  - hfsplus_seek_to_cmpf_resource
  - hfsplus_read_block_table
  - hfsplus_walk_catalog
  - cli_scanhfsplus
  source_file: /src/clamav/libclamav/hfsplus.c
- function_names:
  - jpeg_check_photoshop_8bim
  - cli_parsejpeg
  source_file: /src/clamav/libclamav/jpeg.c
- function_names: []
  source_file: /src/clamav/libclamav/jpeg.h
- function_names: []
  source_file: /src/clamav/libclamav/arc4.h
- function_names:
  - arc4_init
  - arc4_apply
  - main
  source_file: /src/clamav/libclamav/arc4.c
- function_names:
  - doubledl
  - petite_inflate2x_1to9
  source_file: /src/clamav/libclamav/petite.c
- function_names:
  - unfsg_200
  - unfsg_133
  source_file: /src/clamav/libclamav/fsg.c
- function_names:
  - needblock
  - iso_scan_file
  - iso_string
  - iso_parse_dir
  - cli_scaniso
  source_file: /src/clamav/libclamav/iso9660.c
- function_names:
  - tableCreate
  - tableDestroy
  - tableInsert
  - tableFind
  - tableUpdate
  - tableRemove
  - tableIterate
  source_file: /src/clamav/libclamav/table.c
- function_names: []
  source_file: /src/clamav/libclamav/bytecode_priv.h
- function_names: []
  source_file: /src/clamav/libclamav/hwp.h
- function_names: []
  source_file: /src/clamav/libclamav/unsp.h
- function_names:
  - cli_events_new
  - cli_events_free
  - cli_event_error_oom
  - cli_event_define
  - get_event
  - ev_chain
  - cli_event_get_name
  - cli_event_int
  - cli_event_time_start
  - cli_event_time_nested_start
  - cli_event_time_stop
  - cli_event_time_nested_stop
  - event_string
  - cli_event_error_str
  - cli_event_string
  - cli_event_data
  - cli_event_fastdata
  - cli_event_count
  - cli_event_get
  - ev_debug
  - evtype
  - cli_event_debug
  - cli_event_debug_all
  - ev_diff
  - cli_event_diff
  - cli_event_diff_all
  - cli_event_errors
  source_file: /src/clamav/libclamav/events.c
- function_names: []
  source_file: /src/clamav/libclamav/bytecode_detect.h
- function_names: []
  source_file: /src/clamav/libclamav/queue.h
- function_names:
  - cli_ctx_tls_key_alloc
  - cli_logg_setup
  - cli_logg_unsetup
  - cli_getctx
  - cli_logg_setup
  - cli_getctx
  - cli_logg_unsetup
  - clrs_eprint_callback
  - cl_set_clcb_msg
  - cli_warnmsg
  - cli_errmsg
  - cli_infomsg
  - cli_infomsg_simple
  - cli_dbgmsg
  - cli_dbgmsg_no_inline
  - cli_eprintf
  - cli_matchregex
  - cli_max_malloc
  - cli_max_calloc
  - cli_safer_realloc
  - cli_safer_realloc_or_free
  - cli_max_realloc
  - cli_max_realloc_or_free
  - cli_safer_strdup
  - cli_ctime
  - cli_readn
  - cli_writen
  - cli_filecopy
  - cli_gettmpdir
  - ftw_compare
  - ft_skipped
  - get_filetype
  - handle_filetype
  - handle_entry
  - cli_ftw
  - cli_ftw_dir
  - cli_strerror
  - cli_md5buff
  - cli_rndnum
  - cli_sanitize_filepath
  - cli_genfname
  - cli_newfilepath
  - cli_newfilepathfd
  - cli_gentemp_with_prefix
  - cli_gentemp
  - cli_gentempfd
  - cli_gentempfd_with_prefix
  - cli_regcomp
  - cli_get_filepath_from_handle
  - cli_get_filepath_from_filedesc
  - cli_realpath
  source_file: /src/clamav/libclamav/others_common.c
- function_names:
  - unupack
  - unupack399
  source_file: /src/clamav/libclamav/upack.c
- function_names:
  - cli_multifree
  - versioninfo_cb
  - cli_rawaddr
  - findres
  - cli_parseres_special
  - cli_hashsect
  - scan_pe_mdb
  - pe_ordinal
  - validate_impname
  - hash_impfns
  - hash_imptbl
  - scan_pe_imp
  - get_pe_property
  - pe_add_heuristic_property
  - get_section_json
  - add_section_info
  - cli_scanpe
  - cli_pe_targetinfo
  - cli_peheader
  - sort_sects
  - cli_check_auth_header
  - cli_genhash_pe
  source_file: /src/clamav/libclamav/pe.c
- function_names:
  - exec86
  - summit
  - unspin
  source_file: /src/clamav/libclamav/spin.c
- function_names: []
  source_file: /src/clamav/libclamav/textnorm.h
- function_names: []
  source_file: /src/clamav/libclamav/execs.h
- function_names: []
  source_file: /src/clamav/libclamav/dsig.h
- function_names: []
  source_file: /src/clamav/libclamav/unarj.h
- function_names: []
  source_file: /src/clamav/libclamav/elf.h
- function_names:
  - cli_qsort
  - cli_qsort_r
  source_file: /src/clamav/libclamav/qsort.c
- function_names: []
  source_file: /src/clamav/libclamav/line.h
- function_names:
  - allow_list_match
  - init_allow_list
  - is_allow_list_ok
  - allow_list_done
  source_file: /src/clamav/libclamav/phish_allow_list.c
- function_names: []
  source_file: /src/clamav/libclamav/filtering.h
- function_names:
  - entrypoint
  source_file: /src/clamav/libclamav/builtin_bytecodes.h
- function_names:
  - cli_msexpand
  source_file: /src/clamav/libclamav/msexpand.c
- function_names: []
  source_file: /src/clamav/libclamav/fpu.h
- function_names:
  - cli_tgzload_cleanup
  - cli_tgzload
  - cl_cvdparse
  - cl_cvdhead
  - cl_cvdfree
  - cl_cvdverify
  - cl_cvdverify_ex
  - cli_cvdload
  - cli_cvdunpack_and_verify
  - cl_cvdunpack_ex
  - cl_cvdunpack
  - cvdgetfileage
  - cl_cvdgetage
  source_file: /src/clamav/libclamav/cvd.c
- function_names: []
  source_file: /src/clamav/libclamav/readdb.h
- function_names:
  - messageCreate
  - messageDestroy
  - messageReset
  - messageSetMimeType
  - messageGetMimeType
  - messageSetMimeSubtype
  - messageGetMimeSubtype
  - messageSetDispositionType
  - messageGetDispositionType
  - messageAddArgument
  - messageAddArguments
  - messageGetArgument
  - messageFindArgument
  - messageGetFilename
  - messageHasArgument
  - messageHasFilename
  - messageSetEncoding
  - messageGetEncoding
  - messageAddLine
  - messageAddStr
  - messageMoveText
  - messageIsEncoding
  - messageGetBody
  - messageExport
  - base64Flush
  - messageSavePartial
  - messageToFileblob
  - messageToBlob
  - messageToText
  - yEncBegin
  - binhexBegin
  - binhexBegin
  - bounceBegin
  - bounceBegin
  - messageIsAllText
  - encodingLine
  - decodeLine
  - sanitiseBase64
  - decode
  - hex
  - base64
  - uudecode
  - usefulArg
  - messageSetCTX
  - messageContainsVirus
  - messageDedup
  - rfc2231
  - simil
  - compare
  - push
  - pop
  - isuuencodebegin
  source_file: /src/clamav/libclamav/message.c
- function_names:
  - insert_list
  - patt_cmp_fn
  - sort_list_fn
  - sort_heads_by_partno_fn
  - link_node_lists
  - link_lists
  - store_trans_node
  - free_trans_nodes
  - add_new_node
  - cli_ac_addpatt_recursive
  - cli_ac_addpatt
  - bfs_enqueue
  - bfs_dequeue
  - ac_maketrans
  - cli_ac_buildtrie
  - cli_ac_init
  - ac_free_special
  - cli_ac_free
  - cli_ac_chklsig
  - ac_special_altexpand
  - ac_special_altstr
  - cli_ac_addsig
  source_file: /src/clamav/libclamav/matcher-ac.c
- function_names:
  - cli_scansis
  - getsistring
  - spamsisnames
  - real_scansis
  - getd
  - getsize
  - getfield
  - skip
  - skipthis
  - seeknext
  - real_scansis9x
  source_file: /src/clamav/libclamav/sis.c
- function_names:
  - cli_scanapm
  - apm_partition_intersection
  source_file: /src/clamav/libclamav/apm.c
- function_names: []
  source_file: /src/clamav/libclamav/bytecode_api_decl.c
- function_names: []
  source_file: /src/clamav/libclamav/hashtab.h
- function_names:
  - lzma_bswap_4861dc
  - lzma_486248
  - lzma_48635C
  - lzma_4862e0
  - lzma_4863da
  - lzma_486204
  - lzma_48631a
  - mew_lzma
  - lzma_upack_esi_00
  - lzma_upack_esi_50
  - lzma_upack_esi_54
  - unmew11
  source_file: /src/clamav/libclamav/mew.c
- function_names:
  - wrap_inflateinit2
  - unz
  - zupdatekey
  - zinitkey
  - zdecryptbyte
  - zdecrypt
  - parse_local_file_header
  - parse_central_directory_file_header
  - sort_by_file_offset
  - index_the_central_directory
  - index_local_file_headers_within_bounds
  - index_local_file_headers
  - cli_unzip
  - unzip_single_internal
  - cli_unzip_single
  - unzip_search_add
  - unzip_search
  - unzip_search_single
  source_file: /src/clamav/libclamav/unzip.c
- function_names:
  - textDestroy
  - textCopy
  - textAdd
  - textAddMessage
  - textMove
  - textToBlob
  - textToFileblob
  - getLength
  - addToBlob
  - addToFileblob
  - textIterate
  source_file: /src/clamav/libclamav/text.c
- function_names: []
  source_file: /src/clamav/libclamav/apm.h
- function_names:
  - xrefCheck
  - findNextNonWSBack
  - findNextNonWS
  - find_stream_bounds
  - pdf_findobj_in_objstm
  - pdf_findobj
  - filter_writen
  - pdfobj_flag
  - find_obj
  - find_length
  - run_pdf_hooks
  - aes_256cbc_decrypt
  - aes_128cbc_encrypt
  - decrypt_any
  - get_enc_method
  - process
  - pdf_scan_contents
  - pdf_extract_obj
  - handle_pdfname
  - pdf_parse_encrypt
  - pdf_parse_trailer
  - pdf_parseobj
  - pdf_getdict
  - pdf_readstring
  - pdf_readval
  - pdf_readint
  - pdf_readbool
  - dbg_printhex
  - compute_hash_r6
  - check_owner_password
  - check_user_password
  - parse_enc_method
  - pdf_handle_enc
  - pdf_find_and_parse_objs_in_objstm
  - pdf_find_and_extract_objs
  - cli_pdf
  - pdf_nextlinestart
  - pdf_nextobject
  - ASCIIHexDecode_cb
  - ASCII85Decode_cb
  - EmbeddedFile_cb
  - FlateDecode_cb
  - Image_cb
  - LZWDecode_cb
  - RunLengthDecode_cb
  - CCITTFaxDecode_cb
  - JBIG2Decode_cb
  - DCTDecode_cb
  - JPXDecode_cb
  - Crypt_cb
  - Standard_cb
  - Sig_cb
  - JavaScript_cb
  - OpenAction_cb
  - Launch_cb
  - Page_cb
  - Author_cb
  - Creator_cb
  - ModificationDate_cb
  - CreationDate_cb
  - Producer_cb
  - Title_cb
  - Keywords_cb
  - Subject_cb
  - RichMedia_cb
  - AcroForm_cb
  - XFA_cb
  - Pages_cb
  - Colors_cb
  - URI_cb
  - pdf_free_stats
  - pdf_export_json
  source_file: /src/clamav/libclamav/pdf.c
- function_names:
  - filter_init
  - filter_isset
  - filter_set_atpos
  - filter_end_isset
  - filter_set_end
  - filter_add_static
  - spec_ith_char
  - get_score
  - add_choice
  - spec_iter
  - filter_add_acpatt
  - filter_search_ext
  - filter_search
  source_file: /src/clamav/libclamav/filtering.c
- function_names:
  - never_inline::bcfail
  - bcfail
  - jump
  - cli_stack_alloc
  - cli_stack_free
  - cli_stack_destroy
  - allocate_stack
  - pop_stack
  - ptr_compose
  - ptr_diff32
  - ptr_register_stack
  - ptr_register_glob_fixedid
  - ptr_register_glob
  - ptr_torealptr
  - check_sdivops
  - globaltypesize
  - cli_vm_execute
  source_file: /src/clamav/libclamav/bytecode_vm.c
- function_names:
  - cli_bcapi_test1
  - cli_bcapi_test2
  - cli_bcapi_read
  - cli_bcapi_seek
  - cli_bcapi_debug_print_str
  - cli_bcapi_debug_print_uint
  - cli_bcapi_setvirusname
  - cli_bcapi_disasm_x86
  - cli_bcapi_write
  - cli_bytecode_context_set_trace
  - cli_bcapi_trace_scope
  - cli_bcapi_trace_directory
  - cli_bcapi_trace_source
  - cli_bcapi_trace_op
  - cli_bcapi_trace_value
  - cli_bcapi_trace_ptr
  - cli_bcapi_pe_rawaddr
  - cli_memmem
  - cli_bcapi_file_find
  - cli_bcapi_file_find_limit
  - cli_bcapi_file_byteat
  - cli_bcapi_malloc
  - cli_bcapi_get_pe_section
  - cli_bcapi_fill_buffer
  - cli_bcapi_extract_new
  - cli_bcapi_read_number
  - cli_bcapi_hashset_new
  - get_hashset
  - cli_bcapi_hashset_add
  - cli_bcapi_hashset_remove
  - cli_bcapi_hashset_contains
  - cli_bcapi_hashset_empty
  - cli_bcapi_hashset_done
  - cli_bcapi_buffer_pipe_new
  - cli_bcapi_buffer_pipe_new_fromfile
  - get_buffer
  - cli_bcapi_buffer_pipe_read_avail
  - cli_bcapi_buffer_pipe_read_get
  - cli_bcapi_buffer_pipe_read_stopped
  - cli_bcapi_buffer_pipe_write_avail
  - cli_bcapi_buffer_pipe_write_get
  - cli_bcapi_buffer_pipe_write_stopped
  - cli_bcapi_buffer_pipe_done
  - cli_bcapi_inflate_init
  - get_inflate
  - cli_bcapi_inflate_process
  - cli_bcapi_inflate_done
  - cli_bcapi_lzma_init
  - get_lzma
  - cli_bcapi_lzma_process
  - cli_bcapi_lzma_done
  - cli_bcapi_bzip2_init
  - get_bzip2
  - cli_bcapi_bzip2_process
  - cli_bcapi_bzip2_done
  - cli_bcapi_bytecode_rt_error
  - cli_bcapi_jsnorm_init
  - get_jsnorm
  - cli_bcapi_jsnorm_process
  - cli_bcapi_jsnorm_done
  - myround
  - cli_bcapi_ilog2
  - cli_bcapi_ipow
  - cli_bcapi_iexp
  - cli_bcapi_isin
  - cli_bcapi_icos
  - cli_bcapi_memstr
  - cli_bcapi_hex2ui
  - cli_bcapi_atoi
  - cli_bcapi_debug_print_str_start
  - cli_bcapi_debug_print_str_nonl
  - cli_bcapi_entropy_buffer
  - cli_bcapi_map_new
  - get_hashtab
  - cli_bcapi_map_addkey
  - cli_bcapi_map_setvalue
  - cli_bcapi_map_remove
  - cli_bcapi_map_find
  - cli_bcapi_map_getvaluesize
  - cli_bcapi_map_getvalue
  - cli_bcapi_map_done
  - cli_bcapi_engine_functionality_level
  - cli_bcapi_engine_dconf_level
  - cli_bcapi_engine_scan_options
  - cli_bcapi_engine_scan_options_ex
  - cli_bcapi_engine_db_options
  - cli_bcapi_extract_set_container
  - cli_bcapi_input_switch
  - cli_bcapi_get_environment
  - cli_bcapi_disable_bytecode_if
  - cli_bcapi_disable_jit_if
  - cli_bcapi_version_compare
  - check_bits
  - cli_bcapi_check_platform
  - cli_bcapi_pdf_get_obj_num
  - cli_bcapi_pdf_get_flags
  - cli_bcapi_pdf_set_flags
  - cli_bcapi_pdf_lookupobj
  - cli_bcapi_pdf_getobjsize
  - cli_bcapi_pdf_getobj
  - cli_bcapi_pdf_getobjid
  - cli_bcapi_pdf_getobjflags
  - cli_bcapi_pdf_setobjflags
  - cli_bcapi_pdf_get_offset
  - cli_bcapi_pdf_get_phase
  - cli_bcapi_pdf_get_dumpedobjid
  - cli_bcapi_running_on_jit
  - cli_bcapi_get_file_reliability
  - cli_bcapi_json_is_active
  - cli_bcapi_json_objs_init
  - cli_bcapi_json_get_object
  - cli_bcapi_json_get_type
  - cli_bcapi_json_get_array_length
  - cli_bcapi_json_get_array_idx
  - cli_bcapi_json_get_string_length
  - cli_bcapi_json_get_string
  - cli_bcapi_json_get_boolean
  - cli_bcapi_json_get_int
  source_file: /src/clamav/libclamav/bytecode_api.c
- function_names: []
  source_file: /src/clamav/libclamav/gif.h
- function_names:
  - vba_endian_convert_16
  - vba_endian_convert_32
  - get_unicode_name
  - vba56_test_middle
  - vba_read_project_strings
  - vba_normalize
  - cli_vba_readdir_new
  - cli_vba_readdir
  - cli_vba_inflate
  - ole_copy_file_data
  - cli_scan_ole10
  - ppt_read_atom_header
  - ppt_unlzw
  - ppt_stream_iter
  - cli_ppt_vba_read
  - word_read_fib
  - word_read_macro_entry
  - word_read_macro_info
  - word_skip_oxo3
  - word_skip_menu_info
  - word_skip_macro_extnames
  - word_skip_macro_intnames
  - cli_wm_readdir
  - cli_wm_decrypt_macro
  - skip_past_nul
  - read_uint16
  - read_uint32
  - seekandread
  - create_vba_project
  - cli_free_vba_project
  source_file: /src/clamav/libclamav/vba_extract.c
- function_names:
  - cli_ftcode
  - cli_ftname
  - cli_ftfree
  - cli_compare_ftm_partition
  - cli_compare_ftm_file
  - cli_determine_fmap_type
  source_file: /src/clamav/libclamav/filetypes.c
- function_names:
  - cli_parsetiff
  source_file: /src/clamav/libclamav/tiff.c
- function_names:
  - scanzws
  - scancws
  - tagname
  - cli_scanswf
  source_file: /src/clamav/libclamav/swf.c
- function_names:
  - td_isascii
  - td_isutf8
  - td_isutf16
  - cli_texttype
  source_file: /src/clamav/libclamav/textdet.c
- function_names:
  - domain_list_match
  - init_domain_list
  - is_domain_list_ok
  - domain_list_done
  source_file: /src/clamav/libclamav/phish_domaincheck_db.c
- function_names:
  - cli_parsepng
  source_file: /src/clamav/libclamav/png.c
- function_names:
  - context_safe
  - bytecode_context_reset
  - bytecode_context_initialize
  - cli_bytecode_context_alloc
  - cli_bytecode_context_destroy
  - cli_bytecode_context_getresult_file
  - typesize
  - typealign
  - cli_bytecode_context_setfuncid
  - type_isint
  - cli_bytecode_context_setparam_int
  - cli_bytecode_context_setparam_ptr
  - readNumber
  - readFuncID
  - readAPIFuncID
  - readFixedNumber
  - readOperand
  - readData
  - readString
  - parseHeader
  - parseLSig
  - readTypeID
  - parseType
  - add_static_types
  - parseTypes
  - types_equal
  - parseApis
  - type_components
  - readConstant
  - parseGlobals
  - parseMD
  - parseFunctionHeader
  - readBBID
  - get_optype
  - parseBB
  - sigelem_comp
  - cli_sigperf_print
  - sigperf_events_init
  - cli_sigperf_events_destroy
  - cli_bytecode_load
  - register_events
  - cli_bytecode_run
  - cli_bytecode_context_getresult_int
  - cli_bytecode_destroy
  - ptr_compose
  - get_geptypesize
  - calc_gepz
  - cli_bytecode_prepare_interpreter
  - add_selfcheck
  - run_selfcheck
  - selfcheck
  - set_mode
  - run_builtin_or_loaded
  - cli_bytecode_prepare2
  - cli_bytecode_init
  - cli_bytecode_done
  - cli_bytecode_context_setfile
  - cli_bytecode_runlsig
  - cli_bytecode_runhook
  - cli_bytecode_context_setpe
  - cli_bytecode_context_setpdf
  - cli_bytecode_context_setctx
  - cli_bytecode_describe
  - cli_bytetype_helper
  - cli_bytetype_describe
  - cli_bytevalue_describe
  - cli_byteinst_describe
  - cli_bytefunc_describe
  source_file: /src/clamav/libclamav/bytecode.c
- function_names:
  - cli_tnef
  - tnef_message
  - tnef_attachment
  - tnef_header
  source_file: /src/clamav/libclamav/tnef.c
- function_names:
  - read_office_art_record_header
  - get_function_name
  - parse_formula
  - process_blip_record
  - process_blip_store_container
  - cli_extract_images_from_drawing_group
  - cli_extract_xlm_macros_and_images
  source_file: /src/clamav/libclamav/xlm_extract.c
- function_names: []
  source_file: /src/clamav/libclamav/bytecode_api.h
- function_names: []
  source_file: /src/clamav/libclamav/disasmpriv.h
- function_names: []
  source_file: /src/clamav/libclamav/pdf.h
- function_names:
  - base64_len
  - cl_base64_decode
  - cl_base64_encode
  - main
  source_file: /src/clamav/libclamav/conv.c
- function_names: []
  source_file: /src/clamav/libclamav/yara_arena.h
- function_names:
  - pdf_convert_utf
  - is_object_reference
  - pdf_decrypt_string
  - pdf_finalize_string
  - pdf_parse_string
  - pdf_parse_dict
  - pdf_parse_array
  - pdf_free_dict
  - pdf_free_array
  - pdf_print_array
  - pdf_print_dict
  source_file: /src/clamav/libclamav/pdfng.c
- function_names:
  - cli_readint64
  - cli_readint32
  - cli_readint16
  - cli_writeint32
  - cli_getpagesize
  - cli_getpagesize
  - cli_getpagesize
  source_file: /src/clamav/libclamav/others.h
- function_names:
  - pdf_decodestream
  - pdf_decodestream_internal
  - filter_ascii85decode
  - filter_rldecode
  - decode_nextlinestart
  - filter_flatedecode
  - filter_asciihexdecode
  - filter_decrypt
  - filter_lzwdecode
  source_file: /src/clamav/libclamav/pdfdecode.c
- function_names: []
  source_file: /src/clamav/libclamav/ole2_encryption.h
- function_names: []
  source_file: /src/clamav/libclamav/inflate64.c
- function_names: []
  source_file: /src/clamav/libclamav/entconv.h
- function_names:
  - timegm
  - cl_initialize_crypto
  - cl_cleanup_crypto
  - cl_hash_data
  - cl_hash_file_fd
  - if
  - cl_hash_file_fp
  - cl_sha512
  - cl_sha384
  - cl_sha256
  - cl_sha1
  - cl_verify_signature_hash
  - cl_verify_signature_fd
  - cl_verify_signature
  - cl_verify_signature_hash_x509_keyfile
  - cl_verify_signature_fd_x509_keyfile
  - cl_verify_signature_x509_keyfile
  - cl_verify_signature_hash_x509
  - cl_verify_signature_fd_x509
  - cl_verify_signature_x509
  - cl_sign_data_keyfile
  - cl_sign_data
  - cl_sign_file_fd
  - cl_sign_file_fp
  - cl_get_pkey_file
  - cl_get_x509_from_mem
  - cl_validate_certificate_chain_ts_dir
  - cl_validate_certificate_chain
  - cl_load_cert
  - cl_ASN1_GetTimeT
  - cl_load_crl
  - cl_hash_init
  - cl_update_hash
  - cl_finish_hash
  - cl_hash_destroy
  source_file: /src/clamav/libclamav/crypto.c
- function_names: []
  source_file: /src/clamav/libclamav/phish_domaincheck_db.h
- function_names:
  - ooxml_updatelimits
  - ooxml_parse_document
  - ooxml_core_cb
  - ooxml_extn_cb
  - ooxml_content_cb
  - ooxml_hwp_cb
  - cli_ooxml_filetype
  - cli_process_ooxml
  source_file: /src/clamav/libclamav/ooxml.c
- function_names:
  - blobCreate
  - blobDestroy
  - blobArrayDestroy
  - blobToMem
  - blobSetFilename
  - blobGetFilename
  - blobAddData
  - blobGetData
  - blobGetDataSize
  - blobClose
  - blobcmp
  - blobGrow
  - fileblobCreate
  - fileblobScanAndDestroy
  - fileblobDestructiveDestroy
  - fileblobDestroy
  - fileblobPartialSet
  - fileblobSetFilename
  - fileblobAddData
  - fileblobGetFilename
  - fileblobSetCTX
  - fileblobScan
  - fileblobInfected
  - sanitiseName
  source_file: /src/clamav/libclamav/blob.c
- function_names:
  - get_iin
  - dlp_is_valid_cc
  - contains_cc
  - dlp_get_cc_count
  - dlp_has_cc
  - dlp_is_valid_ssn
  - contains_ssn
  - dlp_get_stripped_ssn_count
  - dlp_get_normal_ssn_count
  - dlp_get_ssn_count
  - dlp_has_ssn
  - dlp_has_stripped_ssn
  - dlp_has_normal_ssn
  - is_bank_code_valid
  - cdn_ctn_is_valid
  - cdn_eft_is_valid
  - us_micr_is_valid
  source_file: /src/clamav/libclamav/dlp.c
- function_names:
  - make_node
  - dup_node
  - make_charclass
  - make_leaf
  - destroy_tree
  - parse_char_class
  - parse_regex
  - build_suffixtree_ascend
  - build_suffixtree_descend
  - cli_regex2suffix
  source_file: /src/clamav/libclamav/regex_suffix.c
- function_names: []
  source_file: /src/clamav/libclamav/yara_exec.c
- function_names:
  - hex_encode
  - ensure_bufsize
  - export_stats_to_json
  source_file: /src/clamav/libclamav/stats_json.c
- function_names: []
  source_file: /src/clamav/libclamav/pdfdecode.h
- function_names:
  - checkpe
  - pefromupx
  - doubleebx
  - upx_inflate2b
  - upx_inflate2d
  - upx_inflate2e
  - upx_inflatelzma
  source_file: /src/clamav/libclamav/upx.c
- function_names:
  - get_device_entry
  - get_devices
  - get_devices
  - internal_get_host_id
  source_file: /src/clamav/libclamav/hostid_internal.c
- function_names:
  - cli_ndecode
  - cli_decodesig
  - cli_getdsig
  - cli_versig
  - cli_versig2
  source_file: /src/clamav/libclamav/dsig.c
- function_names: []
  source_file: /src/clamav/libclamav/xdp.h
- function_names: []
  source_file: /src/clamav/libclamav/regex_list.h
- function_names: []
  source_file: /src/clamav/libclamav/lzma_iface.h
- function_names:
  - filter_memcpy
  - cli_memcpy
  source_file: /src/clamav/libclamav/iowrap.c
- function_names:
  - getDescriptorTagId
  - isDirectory
  - writeWholeFile
  - extractFile
  - parseFileEntryDescriptor
  - skipEmptyDescriptors
  - getPrimaryVolumeDescriptor
  - getImplementationUseVolumeDescriptor
  - getLogicalVolumeDescriptor
  - getPartitionDescriptor
  - getUnallocatedSpaceDescriptor
  - getTerminatingDescriptor
  - getLogicalVolumeIntegrityDescriptor
  - getAnchorVolumeDescriptorPointer
  - getFileSetDescriptor
  - freePointerList
  - initPointerList
  - insertPointer
  - findFileIdentifiers
  - findFileEntries
  - cli_scanudf
  source_file: /src/clamav/libclamav/udf.c
- function_names:
  - DllMain
  source_file: /src/clamav/libclamav/libclamav_main.c
- function_names: []
  source_file: /src/clamav/libclamav/stats.h
- function_names:
  - partition_intersection_list_is_empty
  - partition_intersection_list_init
  - partition_intersection_list_check
  - partition_intersection_list_free
  source_file: /src/clamav/libclamav/partition_intersection.c
- function_names: []
  source_file: /src/clamav/libclamav/petite.h
- function_names: []
  source_file: /src/clamav/libclamav/cpio.h
- function_names:
  - yr_parser_emit
  - yr_parser_emit_with_arg
  - yr_parser_emit_with_arg_reloc
  - yr_parser_emit_pushes_for_strings
  - yr_parser_check_types
  - yr_parser_lookup_string
  - yr_parser_lookup_loop_variable
  - _yr_parser_write_string
  - yr_parser_reduce_rule_declaration
  - yr_parser_reduce_string_identifier
  - yr_parser_reduce_meta_declaration
  - yr_parser_reduce_import
  source_file: /src/clamav/libclamav/yara_parser.c
- function_names: []
  source_file: /src/clamav/libclamav/msxml_parser.h
- function_names:
  - u2a
  - MT_getnext
  - MT_decrypt
  - getbits
  - ea05
  - LAME_fpusht
  - LAME_srand
  - LAME_getnext
  - LAME_decrypt
  - ea06
  - cli_scanautoit
  source_file: /src/clamav/libclamav/autoit.c
- function_names:
  - cli_perf_thread_exit
  - __cli_perf_init
  - __cli_perf_exit
  - cli_perf_register
  - cli_perf_print
  - cli_perf_flush
  source_file: /src/clamav/libclamav/perflogging.c
- function_names:
  - cli_scandmg
  - dmg_decode_mish
  - cmp_mish_stripes
  - dmg_track_sectors
  - dmg_stripe_zeroes
  - dmg_stripe_store
  - dmg_stripe_adc
  - dmg_stripe_inflate
  - dmg_stripe_bzip
  - dmg_handle_mish
  - dmg_extract_xml
  source_file: /src/clamav/libclamav/dmg.c
- function_names:
  - cl_retver
  source_file: /src/clamav/libclamav/version.c
- function_names: []
  source_file: /src/clamav/libclamav/yara_clam.h
- function_names: []
  source_file: /src/clamav/libclamav/matcher-hash.h
- function_names: []
  source_file: /src/clamav/libclamav/textdet.h
- function_names: []
  source_file: /src/clamav/libclamav/yc.h
- function_names: []
  source_file: /src/clamav/libclamav/upx.h
- function_names:
  - cli_magic_scan_dir
  - cli_unrar_scanmetadata
  - cli_egg_scanmetadata
  - cli_scanegg
  - cli_scanarj
  - cli_scangzip_with_zib_from_the_80s
  - cli_scangzip
  - cli_scanbzip
  - cli_scanxz
  - cli_scanszdd
  - vba_scandata
  - find_file
  - cli_ole2_tempdir_scan_vba_new
  - cli_ole2_tempdir_scan_summary
  - cli_ole2_tempdir_scan_embedded_ole10
  - cli_ole2_tempdir_scan_vba
  - cli_ole2_tempdir_scan_for_xlm_and_images
  - is_url
  - save_urls
  - cli_scanhtml
  - cli_scanscript
  - cli_scanhtml_utf16
  - cli_ole2_scan_tempdir
  - cli_scanole2
  - cli_scantar
  - cli_scanscrenc
  - cli_scanriff
  - cli_scancryptff
  - cli_scanpdf
  - cli_scantnef
  - cli_scanuuencoded
  - cli_scanmail
  - cli_scan_structured
  - cli_scanembpe
  - get_thread_times
  - perf_init
  - perf_done
  - perf_start
  - perf_stop
  - perf_nested_start
  - perf_nested_stop
  - perf_init
  - perf_start
  - perf_stop
  - perf_nested_start
  - perf_nested_stop
  - perf_done
  - scanraw
  - emax_reached
  - dispatch_file_inspection_callback
  - dispatch_prescan_callback
  - calculate_fuzzy_image_hash
  - result_should_goto_done
  - cli_magic_scan
  - cli_magic_scan_desc_type
  - cli_magic_scan_desc
  - cl_scandesc
  - magic_scan_nested_fmap_type
  - cli_magic_scan_nested_fmap_type
  - cli_magic_scan_buff
  - cl_scandesc_callback
  - cl_scanmap_callback
  - cli_magic_scan_file
  - cl_scanfile
  - cl_scanfile_callback
  source_file: /src/clamav/libclamav/scanners.c
- function_names: []
  source_file: /src/clamav/libclamav/matcher-bm.h
- function_names: []
  source_file: /src/clamav/libclamav/hfsplus.h
- function_names:
  - cli_icongroupset_init
  source_file: /src/clamav/libclamav/pe_icons.h
- function_names: []
  source_file: /src/clamav/libclamav/swf.h
- function_names: []
  source_file: /src/clamav/libclamav/scanners.h
- function_names: []
  source_file: /src/clamav/libclamav/explode.h
- function_names: []
  source_file: /src/clamav/libclamav/blob.h
- function_names: []
  source_file: /src/clamav/libclamav/bytecode.h
- function_names:
  - getkey
  - cacheset_init
  - cacheset_destroy
  - cmp
  - printtree
  - printnode
  - printchain
  - splay
  - cacheset_lookup
  - cacheset_add
  - cacheset_remove
  - cache_lookup_hash
  - clean_cache_init
  - clean_cache_destroy
  - clean_cache_add
  - clean_cache_remove
  - clean_cache_check
  source_file: /src/clamav/libclamav/cache.c
- function_names: []
  source_file: /src/clamav/libclamav/ole2_extract.h
- function_names:
  - get_fpu_endian
  source_file: /src/clamav/libclamav/fpu.c
- function_names:
  - cli_json_timeout_cycle_check
  - cli_json_parse_error
  - cli_jsonnull
  - cli_jsonstr
  - cli_jsonstrlen
  - cli_jsonint
  - cli_jsonint64
  - cli_jsonbool
  - cli_jsondouble
  - cli_jsonarray
  - cli_jsonint_array
  - cli_jsonobj
  - cli_json_delowner
  source_file: /src/clamav/libclamav/json_api.c
- function_names: []
  source_file: /src/clamav/libclamav/special.h
- function_names: []
  source_file: /src/clamav/libclamav/inffixed64.h
- function_names: []
  source_file: /src/clamav/libclamav/xlm_extract.h
- function_names: []
  source_file: /src/clamav/libclamav/packlibs.h
- function_names:
  - sf_base64decode
  source_file: /src/clamav/libclamav/sf_base64decode.c
- function_names:
  - unspack
  - very_real_unpack
  - get_byte
  - getbit_from_table
  - get_100_bits_from_tablesize
  - get_100_bits_from_table
  - get_n_bits_from_table
  - get_n_bits_from_tablesize
  - get_bb
  - get_bitmap
  source_file: /src/clamav/libclamav/unsp.c
- function_names: []
  source_file: /src/clamav/libclamav/openioc.h
- function_names:
  - decompress_and_callback
  - convert_hstr_to_utf8
  - cli_scanhwpole2
  - cli_hwp5header
  - hwp5_cb
  - cli_scanhwp5_stream
  - parsehwp3_docinfo
  - parsehwp3_docsummary
  - parsehwp3_paragraph
  - parsehwp3_infoblk_1
  - hwp3_cb
  - cli_scanhwp3
  - hwpml_scan_cb
  - hwpml_binary_cb
  - cli_scanhwpml
  source_file: /src/clamav/libclamav/hwp.c
- function_names: []
  source_file: /src/clamav/libclamav/sis.h
- function_names: []
  source_file: /src/clamav/libclamav/rtf.h
- function_names:
  - bs
  - unpack_tree
  - lookup_tree
  - explode_init
  source_file: /src/clamav/libclamav/explode.c
- function_names:
  - ole2_list_init
  - ole2_list_is_empty
  - ole2_list_size
  - ole2_list_push
  - ole2_list_pop
  - ole2_list_delete
  - cli_ole2_get_property_name2
  - get_property_name
  - print_ole2_property
  - print_ole2_header
  - ole2_read_block
  - ole2_get_next_bat_block
  - ole2_get_next_xbat_block
  - ole2_get_next_block_number
  - ole2_get_next_sbat_block
  - ole2_get_sbat_data_block
  - ole2_cmp_name
  - copy_fib_base
  - is_encrypted
  - is_obfuscated
  - get_stream_data_offset
  - test_for_encryption
  - read_uint16
  - find_file_pass
  - test_for_xls_encryption
  - ole2_walk_property_tree
  - handler_writefile
  - scan_biff_for_xlm_macros_and_images
  - scan_for_xlm_macros_and_images
  - handler_enum
  - likely_mso_stream
  - scan_mso_stream
  - handler_otf
  - handler_otf_encrypted
  - ole2_read_header
  - copy_encryption_info_stream_standard
  - copy_encryption_verifier
  - key_length_valid_aes_bits
  - generate_key_aes
  - aes_128ecb_decrypt
  - verify_key_aes
  - initialize_encryption_key
  - cli_ole2_extract
  source_file: /src/clamav/libclamav/ole2_extract.c
- function_names:
  - yy_get_next_buffer
  - yy_get_previous_state
  - yy_try_NUL_trans
  - input
  - yyrestart
  - yy_switch_to_buffer
  - yy_load_buffer_state
  - yy_create_buffer
  - yy_delete_buffer
  - yy_init_buffer
  - yy_flush_buffer
  - yypush_buffer_state
  - yypop_buffer_state
  - yyensure_buffer_stack
  - yy_scan_buffer
  - yy_scan_string
  - yy_scan_bytes
  - yy_fatal_error
  - yyget_lineno
  - yyget_column
  - yyget_in
  - yyget_out
  - yyget_leng
  - yyget_text
  - yyset_extra
  - yyset_lineno
  - yyset_column
  - yyset_in
  - yyset_out
  - yyget_debug
  - yyset_debug
  - yyget_lval
  - yyset_lval
  - yylex_init
  - yylex_init_extra
  - yy_init_globals
  - yylex_destroy
  - yy_flex_strncpy
  - yy_flex_strlen
  - yyalloc
  - yyrealloc
  - yyfree
  - yywarning
  - yyfatal
  - yyerror
  - yr_lex_parse_rules_string
  - yr_lex_parse_rules_file
  source_file: /src/clamav/libclamav/yara_lexer.c
- function_names:
  - cli_virname
  - cli_sigopts_handler
  - readdb_load_regex_subsignature
  - readdb_parse_ldb_subsignature
  - readdb_parse_yara_string
  - cli_add_content_match_pattern
  - cli_initroots
  - cli_dbgets
  - cli_signorm
  - cli_chkign
  - cli_chkpua
  - cli_loaddb
  - cli_loadidb
  - cli_loadwdb
  - cli_loadpdb
  - cli_loadndb
  - lsigattribs
  - init_tdb
  - load_oneldb
  - cli_loadldb
  - cli_loadcbc
  - cli_loadftm
  - cli_loadinfo
  - cli_loadign
  - cli_loadhash
  - cli_loadmd
  - cli_loadcdb
  - set_sha1
  - cli_loadcrt
  - cli_loadmscat
  - cli_loadopenioc
  - parse_yara_hex_string
  - ytable_lookup
  - ytable_add_attrib
  - ytable_add_string
  - ytable_delete
  - yara_hexstr_verify
  - load_oneyara
  - cli_yara_init
  - cli_yara_free
  - cli_loadyara
  - cli_loadpwdb
  - cli_load
  - cli_insertdbtoll
  - count_line_based_signatures
  - count_signatures
  - cli_loaddbdir
  - cl_load
  - cl_retdbdir
  - cl_statinidir
  - cl_statchkdir
  source_file: /src/clamav/libclamav/readdb.c
- function_names: []
  source_file: /src/clamav/libclamav/www.h
- function_names: []
  source_file: /src/clamav/libclamav/nsis/nulsft.h
- function_names: []
  source_file: /src/clamav/libclamav/nsis/nsis_bzlib.h
- function_names: []
  source_file: /src/clamav/libclamav/nsis/nsis_zconf.h
- function_names:
  - nsis_init
  - nsis_shutdown
  - nsis_decomp
  - nsis_unpack_next
  - nsis_detcomp
  - nsis_headers
  - cli_nsis_unpack
  - cli_scannulsft
  source_file: /src/clamav/libclamav/nsis/nulsft.c
- function_names: []
  source_file: /src/clamav/libclamav/nsis/nsis_zutil.h
- function_names:
  - inflate_flush
  - huft_build
  - nsis_inflate
  source_file: /src/clamav/libclamav/nsis/infblock.c
- function_names:
  - makeMaps_d
  - indexIntoF
  - unRLE_obuf_to_output_FAST
  - unRLE_obuf_to_output_SMALL
  - CreateDecodeTables
  - BZ2_decompress
  - bz_config_ok
  - default_bzalloc
  - default_bzfree
  - BZ_API
  - BZ_API
  - BZ_API
  source_file: /src/clamav/libclamav/nsis/bzlib.c
- function_names: []
  source_file: /src/clamav/libclamav/nsis/nsis_zlib.h
- function_names: []
  source_file: /src/clamav/libclamav/nsis/bzlib_private.h
- function_names:
  - textbuffer_ensure_capacity
  - textbuffer_append_len
  - textbuffer_append
  - textbuffer_putc
  source_file: /src/clamav/libclamav/jsparse/textbuf.h
- function_names:
  - vtype_compatible
  source_file: /src/clamav/libclamav/jsparse/lexglobal.h
- function_names: []
  source_file: /src/clamav/libclamav/jsparse/js-norm.h
- function_names:
  - scope_new
  - scope_done
  - scope_declare
  - scope_use
  - scope_lookup
  - tokens_ensure_capacity
  - add_token
  - buf_outc
  - buf_outs
  - output_space
  - output_token
  - scope_free_all
  - match_parameters
  - textbuffer_done
  - free_token
  - replace_token_range
  - append_tokens
  - decode_de
  - handle_de
  - handle_unescape
  - handle_df
  - handle_eval
  - run_folders
  - state_update_scope
  - run_decoders
  - cli_js_parse_done
  - cli_js_output
  - cli_js_destroy
  - cli_js_process_buffer
  - cli_js_init
  - textbuf_clean
  - parseString
  - parseDQString
  - parseSQString
  - parseNumber
  - parseId
  - parseOperator
  - yylex_init
  - yylex_destroy
  - yy_scan_bytes
  - yyget_text
  - yyget_leng
  - yylex
  source_file: /src/clamav/libclamav/jsparse/js-norm.c
- function_names:
  - op_hash
  - in_op_set
  source_file: /src/clamav/libclamav/jsparse/generated/operators.h
- function_names:
  - hash
  - in_word_set
  source_file: /src/clamav/libclamav/jsparse/generated/keywords.h
- function_names:
  - File_Construct
  - File_Open
  - InFile_Open
  - OutFile_Open
  - File_OpenW
  - InFile_OpenW
  - OutFile_OpenW
  - File_Close
  - File_Read
  - File_Write
  - File_Seek
  - FileSeqInStream_Read
  - FileSeqInStream_CreateVTable
  - FileInStream_Read
  - FileInStream_Seek
  - FileInStream_CreateVTable
  - FileOutStream_Write
  - FileOutStream_CreateVTable
  source_file: /src/clamav/libclamav/7z/7zFile.c
- function_names:
  - MY_FAST_CALL::CrcUpdate
  - MY_FAST_CALL::CrcCalc
  source_file: /src/clamav/libclamav/7z/7zCrc.c
- function_names:
  - Buf_Init
  - Buf_Create
  - Buf_Free
  source_file: /src/clamav/libclamav/7z/7zBuf.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/RotateDefs.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/Ppmd7.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/Delta.h
- function_names:
  - Xz_ReadVarInt
  - BraState_Free
  - BraState_SetProps
  - BraState_Init
  - BraState_Code
  - BraState_SetFromMethod
  - SbState_Free
  - SbState_SetProps
  - SbState_Init
  - SbState_Code
  - SbState_SetFromMethod
  - Lzma2State_Free
  - Lzma2State_SetProps
  - Lzma2State_Init
  - Lzma2State_Code
  - Lzma2State_SetFromMethod
  - MixCoder_Construct
  - MixCoder_Free
  - MixCoder_Init
  - MixCoder_SetFromMethod
  - MixCoder_Code
  - Xz_ParseHeader
  - Xz_CheckFooter
  - XzBlock_Parse
  - XzDec_Init
  - XzUnpacker_Create
  - XzUnpacker_Free
  - XzUnpacker_Code
  - XzUnpacker_IsStreamWasFinished
  source_file: /src/clamav/libclamav/7z/XzDec.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/Lzma2Dec.h
- function_names:
  - ReadByte
  - SzDecodePpmd
  - SzDecodeLzma
  - SzDecodeLzma2
  - SzDecodeCopy
  - IS_MAIN_METHOD
  - IS_SUPPORTED_CODER
  - CheckSupportedFolder
  - GetSum
  - SzFolder_Decode2
  - SzFolder_Decode
  source_file: /src/clamav/libclamav/7z/7zDec.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/XzCrc64.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/Types.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/7z.h
- function_names:
  - SzCoderInfo_Init
  - SzCoderInfo_Free
  - SzFolder_Init
  - SzFolder_Free
  - SzFolder_GetNumOutStreams
  - SzFolder_FindBindPairForInStream
  - SzFolder_FindBindPairForOutStream
  - SzFolder_GetUnpackSize
  - SzFile_Init
  - SzAr_Init
  - SzAr_Free
  - SzArEx_Init
  - SzArEx_Free
  - SzArEx_Fill
  - SzArEx_GetFolderStreamPos
  - SzArEx_GetFolderFullPackSize
  - TestSignatureCandidate
  - SzReadByte
  - SzReadBytes
  - SzReadUInt32
  - SzReadNumber
  - SzReadNumber32
  - SzReadID
  - SzSkeepDataSize
  - SzSkeepData
  - SzReadArchiveProperties
  - SzWaitAttribute
  - SzReadBoolVector
  - SzReadBoolVector2
  - SzReadHashDigests
  - SzReadPackInfo
  - SzReadSwitch
  - SzGetNextFolderItem
  - SzReadUnpackInfo
  - SzReadSubStreamsInfo
  - SzReadStreamsInfo
  - SzArEx_GetFileNameUtf16
  - SzReadFileNames
  - SzReadHeader2
  - SzReadHeader
  - SzReadAndDecodePackedStreams2
  - SzReadAndDecodePackedStreams
  - SzArEx_Open2
  - SzArEx_Open
  - SzArEx_Extract
  source_file: /src/clamav/libclamav/7z/7zIn.c
- function_names:
  - IA64_Convert
  source_file: /src/clamav/libclamav/7z/BraIA64.c
- function_names:
  - CheckFlag
  - MyCPUID
  - x86cpuid_CheckAndRead
  - x86cpuid_GetFirm
  - CPU_Is_InOrder
  - CPU_Sys_Is_SSE_Supported
  - CPU_Is_Aes_Supported
  source_file: /src/clamav/libclamav/7z/CpuArch.c
- function_names:
  - typedef
  source_file: /src/clamav/libclamav/7z/7zFile.h
- function_names:
  - Delta_Init
  - MyMemCpy
  - Delta_Encode
  - Delta_Decode
  source_file: /src/clamav/libclamav/7z/Delta.c
- function_names:
  - ARM_Convert
  - ARMT_Convert
  - PPC_Convert
  - SPARC_Convert
  source_file: /src/clamav/libclamav/7z/Bra.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/7zAlloc.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/Bra.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/LzmaDec.h
- function_names:
  - Lzma2Dec_GetOldProps
  - Lzma2Dec_AllocateProbs
  - Lzma2Dec_Allocate
  - Lzma2Dec_Init
  - Lzma2Dec_UpdateState
  - LzmaDec_UpdateWithUncompressed
  - Lzma2Dec_DecodeToDic
  - Lzma2Dec_DecodeToBuf
  - Lzma2Decode
  source_file: /src/clamav/libclamav/7z/Lzma2Dec.c
- function_names:
  - Bcj2_Decode
  source_file: /src/clamav/libclamav/7z/Bcj2.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/CpuArch.h
- function_names:
  - SzAlloc
  - SzFree
  - SzAllocTemp
  - SzFreeTemp
  source_file: /src/clamav/libclamav/7z/7zAlloc.c
- function_names:
  - DynBuf_Construct
  - DynBuf_SeekToBeg
  - DynBuf_Write
  - DynBuf_Free
  source_file: /src/clamav/libclamav/7z/7zBuf2.c
- function_names:
  - Xz_WriteVarInt
  - Xz_Construct
  - Xz_Free
  - XzFlags_GetCheckSize
  - XzCheck_Init
  - XzCheck_Update
  - XzCheck_Final
  source_file: /src/clamav/libclamav/7z/Xz.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/Xz.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/7zBuf.h
- function_names:
  - Xz_ReadHeader
  - XzBlock_ReadHeader
  - Xz_GetUnpackSize
  - Xz_GetPackSize
  - Xz_ReadIndex2
  - Xz_ReadIndex
  - SeekFromCur
  - Xz_ReadBackward
  - Xzs_Construct
  - Xzs_Free
  - Xzs_GetNumBlocks
  - Xzs_GetUnpackSize
  - Xzs_ReadBackward
  source_file: /src/clamav/libclamav/7z/XzIn.c
- function_names:
  - Ppmd7_Construct
  - Ppmd7_Free
  - Ppmd7_Alloc
  - InsertNode
  - RemoveNode
  - SplitBlock
  - GlueFreeBlocks
  - AllocUnitsRare
  - AllocUnits
  - ShrinkUnits
  - SetSuccessor
  - RestartModel
  - Ppmd7_Init
  - CreateSuccessors
  - SwapStates
  - UpdateModel
  - Rescale
  - Ppmd7_MakeEscFreq
  - NextContext
  - Ppmd7_Update1
  - Ppmd7_Update1_0
  - Ppmd7_UpdateBin
  - Ppmd7_Update2
  source_file: /src/clamav/libclamav/7z/Ppmd7.c
- function_names:
  - MY_FAST_CALL::LzmaDec_DecodeReal
  - MY_FAST_CALL::LzmaDec_WriteRem
  - MY_FAST_CALL::LzmaDec_DecodeReal2
  - LzmaDec_TryDummy
  - LzmaDec_InitRc
  - LzmaDec_InitDicAndState
  - LzmaDec_Init
  - LzmaDec_InitStateReal
  - LzmaDec_DecodeToDic
  - LzmaDec_DecodeToBuf
  - LzmaDec_FreeProbs
  - LzmaDec_FreeDict
  - LzmaDec_Free
  - LzmaProps_Decode
  - LzmaDec_AllocateProbs2
  - LzmaDec_AllocateProbs
  - LzmaDec_Allocate
  - LzmaDecode
  source_file: /src/clamav/libclamav/7z/LzmaDec.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/Ppmd.h
- function_names:
  - SeqInStream_Read2
  - SeqInStream_Read
  - SeqInStream_ReadByte
  - LookInStream_SeekTo
  - LookInStream_LookRead
  - LookInStream_Read2
  - LookInStream_Read
  - LookToRead_Look_Lookahead
  - LookToRead_Look_Exact
  - LookToRead_Skip
  - LookToRead_Read
  - LookToRead_Seek
  - LookToRead_CreateVTable
  - LookToRead_Init
  - SecToLook_Read
  - SecToLook_CreateVTable
  - SecToRead_Read
  - SecToRead_CreateVTable
  source_file: /src/clamav/libclamav/7z/7zStream.c
- function_names:
  - Ppmd7z_RangeDec_Init
  - Range_GetThreshold
  - Range_Normalize
  - Range_Decode
  - Range_DecodeBit
  - Ppmd7z_RangeDec_CreateVTable
  - Ppmd7_DecodeSymbol
  source_file: /src/clamav/libclamav/7z/Ppmd7Dec.c
- function_names: []
  source_file: /src/clamav/libclamav/7z/7zVersion.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/7zCrc.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/Alloc.h
- function_names: []
  source_file: /src/clamav/libclamav/7z/Bcj2.h
- function_names:
  - MY_FAST_CALL::Crc64GenerateTable
  - MY_FAST_CALL::Crc64Update
  - MY_FAST_CALL::Crc64Calc
  source_file: /src/clamav/libclamav/7z/XzCrc64.c
- function_names:
  - x86_Convert
  source_file: /src/clamav/libclamav/7z/Bra86.c
- function_names:
  - MY_FAST_CALL::CrcUpdateT4
  - MY_FAST_CALL::CrcUpdateT8
  source_file: /src/clamav/libclamav/7z/7zCrcOpt.c
- function_names:
  - lzwInit
  - lzwInflate
  - lzwInflateEnd
  - code_print
  - dict_print
  source_file: /src/clamav/libclamav/lzw/lzwdec.c
- function_names: []
  source_file: /src/clamav/libclamav/lzw/lzwdec.h
- function_names:
  - cli_strlcpy
  source_file: /src/clamav/libclamav/regex/strlcpy.c
- function_names: []
  source_file: /src/clamav/libclamav/regex/cname.h
- function_names:
  - cli_regfree
  source_file: /src/clamav/libclamav/regex/regfree.c
- function_names: []
  source_file: /src/clamav/libclamav/regex/utils.h
- function_names: []
  source_file: /src/clamav/libclamav/regex/cclass.h
- function_names:
  - cli_regcomp_real
  - p_ere
  - p_ere_exp
  - p_str
  - p_bre
  - p_simp_re
  - p_count
  - p_bracket
  - p_b_term
  - p_b_cclass
  - p_b_eclass
  - p_b_symbol
  - p_b_coll_elem
  - othercase
  - bothcases
  - ordinary
  - backslash
  - nonnewline
  - repeat
  - seterr
  - allocset
  - freeset
  - freezeset
  - firstch
  - nch
  - dupl
  - doemit
  - doinsert
  - dofwd
  - enlarge
  - stripsnug
  - findmust
  - pluscount
  source_file: /src/clamav/libclamav/regex/regcomp.c
- function_names:
  - cli_regerror
  - regatoi
  source_file: /src/clamav/libclamav/regex/regerror.c
- function_names:
  - cli_regexec
  source_file: /src/clamav/libclamav/regex/regexec.c
- function_names:
  - matcher
  - dissect
  - backref
  - fast
  - slow
  - step
  - print
  - at
  - pchar
  source_file: /src/clamav/libclamav/regex/engine.c
- function_names:
  - CHadd
  - CHsub
  - CHIN
  source_file: /src/clamav/libclamav/regex/regex2.h
- function_names: []
  source_file: /src/clamav/libclamav/regex/regex.h
- function_names:
  - warn_assumptions
  - cli_detect_env_jit
  source_file: /src/clamav/libclamav/c++/detect.cpp
- function_names:
  - UpgradeCall
  - '&getEnv()'
  - ScopedExceptionHandler::Set
  - ~ScopedExceptionHandler()
  - do_shutdown
  - jit_exception_handler
  - jit_ssp_handler
  - llvm_error_handler
  - rtlib_sdiv_i64
  - rtlib_udiv_i64
  - rtlib_srem_i64
  - rtlib_urem_i64
  - rtlib_mul_i64
  - rtlib_shl_i64
  - rtlib_srl_i64
  - rtlib_sra_i64
  - rtlib_bzero
  - noUnknownFunctions
  - NotifyListener::NotifyObjectEmitted
  - TimerWrapper::TimerWrapper
  - ~TimerWrapper()
  - TimerWrapper::startTimer
  - TimerWrapper::stopTimer
  - LLVMTypeMapper::getStatic
  - LLVMTypeMapper::LLVMTypeMapper
  - LLVMTypeMapper::buildType
  - LLVMTypeMapper::get
  - RuntimeLimits::loopNeedsTimeoutCheck
  - RuntimeLimits::DEFINEPASS
  - RuntimeLimits::runOnFunction
  - RuntimeLimits::getAnalysisUsage
  - BrSimplifier::DEFINEPASS
  - BrSimplifier::runOnFunction
  - LLVMCodegen::getOperand
  - LLVMCodegen::convertOperand
  - LLVMCodegen::convertOperand
  - LLVMCodegen::convertOperand
  - LLVMCodegen::Store
  - LLVMCodegen::InsertVerify
  - LLVMCodegen::mapType
  - LLVMCodegen::buildConstant
  - LLVMCodegen::LLVMCodegen
  - LLVMCodegen::createGEP
  - LLVMCodegen::createGEP
  - LLVMCodegen::convertMDNode
  - LLVMCodegen::AddStackProtect
  - LLVMCodegen::GEPOperand
  - LLVMCodegen::generate
  - LLVMApiScopedLock::LLVMApiScopedLock
  - ~LLVMApiScopedLock()
  - addNoCapture
  - addFunctionProtos
  - bytecode_watchdog
  - watchdog_disarm
  - watchdog_arm
  - bytecode_execute
  - cli_vm_execute_jit
  - setGuard
  - addFPasses
  - cli_bytecode_prepare_jit
  - bytecode_init
  - cli_bytecode_init_jit
  - cli_bytecode_done_jit
  - cli_bytecode_debug
  - cli_bytecode_debug_printsrc
  - have_clamjit
  - cli_bytecode_printversion
  - cli_printcxxver
  - ClamBCModule::stop
  source_file: /src/clamav/libclamav/c++/bytecode2llvm.cpp
- function_names: []
  source_file: /src/clamav/libclamav/c++/ClamBCModule.h
- function_names: []
  source_file: /src/clamav/libclamav/c++/ClamBCDiagnostics.h
- function_names:
  - help
  - tracehook
  - tracehook_op
  - tracehook_val
  - tracehook_ptr
  - print_src
  - main
  source_file: /src/clamav/clambc/bcrun.c
- function_names:
  - allow_list_free
  - allow_list_init
  - allowed
  - smtpauth_init
  - smtpauthed
  source_file: /src/clamav/clamav-milter/allow_list.c
- function_names:
  - nc_socket
  - nc_connect
  - nc_send
  - nc_sendmsg
  - nc_recv
  - nc_connect_entry
  - nc_ping_entry
  - nc_connect_rand
  - resolve
  - localnet
  - islocalnet
  - islocalnet_name
  - islocalnet_sock
  - localnets_free
  - localnets_init
  source_file: /src/clamav/clamav-milter/netcode.c
- function_names: []
  source_file: /src/clamav/clamav-milter/allow_list.h
- function_names: []
  source_file: /src/clamav/clamav-milter/connpool.h
- function_names:
  - cpool_addunix
  - islocal
  - cpool_addtcp
  - addslot
  - cpool_probe
  - cpool_mon
  - cpool_init
  - cpool_free
  - cpool_get_rand
  source_file: /src/clamav/clamav-milter/connpool.c
- function_names: []
  source_file: /src/clamav/clamav-milter/clamfi.h
- function_names: []
  source_file: /src/clamav/clamav-milter/netcode.h
- function_names:
  - add_x_header
  - makesanehdr
  - nullify
  - sendchunk
  - clamfi_header
  - clamfi_body
  - clamfi_abort
  - clamfi_eom
  - clamfi_connect
  - parse_action
  - action_accept
  - action_defer
  - action_reject
  - action_blackhole
  - action_quarantine
  - action_reject_msg
  - init_actions
  - clamfi_envfrom
  - clamfi_envrcpt
  source_file: /src/clamav/clamav-milter/clamfi.c
- function_names:
  - milter_exit
  - main
  source_file: /src/clamav/clamav-milter/clamav-milter.c
- function_names: []
  source_file: /src/clamav/clamd/session.h
- function_names:
  - tcpserver
  source_file: /src/clamav/clamd/tcpserver.c
- function_names: []
  source_file: /src/clamav/clamd/clamd_others.h
- function_names: []
  source_file: /src/clamav/clamd/shared.h
- function_names:
  - localserver
  - localserver
  source_file: /src/clamav/clamd/localserver.c
- function_names:
  - parse_command
  - conn_reply_single
  - conn_reply
  - conn_reply_virus
  - conn_reply_error
  - conn_reply_errno
  - command
  - dispatch_command
  - print_ver
  - print_commands
  - execute_or_dispatch_command
  source_file: /src/clamav/clamd/session.c
- function_names: []
  source_file: /src/clamav/clamd/server.h
- function_names:
  - msg_callback
  - hash_callback
  - clamd_virus_found_cb
  - scan_callback
  - scan_pathchk
  - scanfd
  - scanstream
  source_file: /src/clamav/clamd/scanner.c
- function_names: []
  source_file: /src/clamav/clamd/scanner.h
- function_names:
  - scanner_thread
  - sighandler_th
  - need_db_reload
  - reload_th
  - reload_db
  - get_cmd
  - statinidir
  - acceptloop_th
  - parse_dispatch_cmd
  - handle_stream
  - recvloop
  source_file: /src/clamav/clamd/server-th.c
- function_names: []
  source_file: /src/clamav/clamd/localserver.h
- function_names: []
  source_file: /src/clamav/clamd/tcpserver.h
- function_names: []
  source_file: /src/clamav/clamd/thrmgr.h
- function_names:
  - help
  - free_engine
  - main
  source_file: /src/clamav/clamd/clamd.c
- function_names:
  - work_queue_new
  - work_queue_add
  - work_queue_pop
  - add_topools
  - remove_frompools
  - print_queue
  - thrmgr_printstats
  - thrmgr_destroy
  - thrmgr_wait_for_threads
  - thrmgr_new
  - stats_tls_key_alloc
  - thrmgr_setactivetask
  - thrmgr_setactiveengine
  - stats_init
  - stats_destroy
  - thrmgr_contended
  - thrmgr_pop
  - thrmgr_worker
  - thrmgr_dispatch_internal
  - thrmgr_dispatch
  - thrmgr_group_dispatch
  - thrmgr_group_finished
  - thrmgr_group_waitforall
  - thrmgr_group_new
  - thrmgr_group_need_terminate
  - thrmgr_group_terminate
  source_file: /src/clamav/clamd/thrmgr.c
- function_names:
  - xfree
  - virusaction
  - virusaction
  - writen
  - realloc_polldata
  - poll_fd
  - fds_cleanup
  - read_fd_data
  - buf_init
  - fds_add
  - fds_lock
  - fds_unlock
  - fds_remove
  - fds_poll_recv
  - fds_free
  source_file: /src/clamav/clamd/clamd_others.c
- function_names:
  - main
  source_file: /src/clamav/fuzz/standalone_fuzz_target_runner.cpp
- function_names:
  - clamav_message_callback
  - ClamAVState::ClamAVState
  - ~ClamAVState()
  - LLVMFuzzerTestOneInput
  source_file: /src/clamav/fuzz/clamav_scanmap_fuzzer.cpp
- function_names:
  - clamav_message_callback
  - ClamAVState::ClamAVState
  - ~ClamAVState()
  - LLVMFuzzerTestOneInput
  source_file: /src/clamav/fuzz/clamav_dbload_fuzzer.cpp
- function_names:
  - clamav_message_callback
  - ClamAVState::ClamAVState
  - ~ClamAVState()
  - LLVMFuzzerTestOneInput
  source_file: /src/clamav/fuzz/clamav_scanfile_fuzzer.cpp
- function_names:
  - scan_callback
  - main
  source_file: /src/clamav/examples/ex_prescan_callback.c
- function_names:
  - main
  source_file: /src/clamav/examples/ex_basic_scandesc.c
- function_names:
  - inspection_callback
  - post_callback
  - main
  source_file: /src/clamav/examples/ex_file_inspection_callback.c
- function_names:
  - main
  source_file: /src/clamav/examples/ex_cl_cvdunpack.c
- function_names:
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/sandbox.c
- function_names:
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/notpdf_sample.c
- function_names:
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/embedpe_sample.c
- function_names:
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/ftype_sample.c
- function_names:
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/onlype_sample.c
- function_names:
  - logical_trigger
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/old/sandbox.c
- function_names:
  - logical_trigger
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/old/notpdf_sample.c
- function_names:
  - logical_trigger
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/old/embedpe_sample.c
- function_names:
  - logical_trigger
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/old/ftype_sample.c
- function_names:
  - logical_trigger
  - entrypoint
  source_file: /src/clamav/examples/fileprop_analysis/old/onlype_sample.c
- function_names:
  - onas_clamonacc_exit
  - main
  - onas_handle_signals
  - onas_init_context
  - onas_check_client_connection
  - onas_start_eloop
  - startup_checks
  - help
  - onas_cleanup
  - onas_context_cleanup
  source_file: /src/clamav/clamonacc/clamonacc.c
- function_names: []
  source_file: /src/clamav/clamonacc/clamonacc.h
- function_names: []
  source_file: /src/clamav/clamonacc/inotif/hash.h
- function_names:
  - onas_ddd_init_ht
  - onas_ddd_init_wdlt
  - onas_ddd_grow_wdlt
  - onas_ddd_init
  - onas_ddd_watch
  - onas_ddd_watch_hierarchy
  - onas_ddd_unwatch
  - onas_ddd_unwatch_hierarchy
  - onas_enable_inotif_ddd
  - onas_ddd_th
  - onas_ddd_handle_in_delete
  - onas_ddd_handle_in_moved_from
  - onas_ddd_handle_in_create
  - onas_ddd_handle_in_close_write
  - onas_ddd_handle_in_moved_to
  - onas_ddd_handle_extra_scanning
  - onas_ddd_exit
  source_file: /src/clamav/clamonacc/inotif/inotif.c
- function_names:
  - onas_hshift
  - onas_hash
  - onas_ht_init
  - onas_free_ht
  - onas_bucket_init
  - onas_free_bucket
  - onas_element_init
  - onas_free_element
  - onas_ht_insert
  - onas_bucket_insert
  - onas_ht_get
  - onas_ht_remove
  - onas_bucket_remove
  - onas_hashnode_init
  - onas_listnode_init
  - onas_free_hashnode
  - onas_free_dirlist
  - onas_free_listnode
  - onas_add_hashnode_child
  - onas_add_listnode
  - onas_rm_listnode
  - onas_get_parent
  - onas_get_dirname_idx
  - onas_ht_rm_child
  - onas_ht_add_child
  - onas_ht_add_hierarchy
  - onas_ht_rm_hierarchy
  source_file: /src/clamav/clamonacc/inotif/hash.c
- function_names: []
  source_file: /src/clamav/clamonacc/inotif/inotif.h
- function_names:
  - onas_setup_fanotif
  - onas_fan_eloop
  source_file: /src/clamav/clamonacc/fanotif/fanotif.c
- function_names: []
  source_file: /src/clamav/clamonacc/fanotif/fanotif.h
- function_names: []
  source_file: /src/clamav/clamonacc/scan/onas_queue.h
- function_names: []
  source_file: /src/clamav/clamonacc/scan/thread.h
- function_names:
  - onas_new_event_queue_node
  - onas_init_event_queue
  - onas_destroy_event_queue_node
  - onas_destroy_event_queue
  - onas_scan_queue_th
  - onas_queue_is_b_empty
  - onas_consume_event
  - onas_queue_event
  - onas_scan_queue_start
  - onas_scan_queue_exit
  source_file: /src/clamav/clamonacc/scan/onas_queue.c
- function_names:
  - onas_scan
  - onas_scan_safe
  - onas_scan_thread_scanfile
  - onas_scan_thread_handle_dir
  - onas_scan_thread_handle_file
  - onas_scan_worker
  - onas_map_context_info_to_event_data
  source_file: /src/clamav/clamonacc/scan/thread.c
- function_names: []
  source_file: /src/clamav/clamonacc/misc/utils.h
- function_names:
  - _priv_fts_children
  - _priv_fts_close
  - _priv_fts_open
  - _priv_fts_read
  - _priv_fts_set
  source_file: /src/clamav/clamonacc/misc/priv_fts.h
- function_names:
  - onas_fan_checkowner
  - onas_get_opt_list
  - free_opt_list
  source_file: /src/clamav/clamonacc/misc/utils.c
- function_names:
  - FTS_OPEN
  - internal_function::fts_load
  - FTS_CLOSE
  - FTS_READ
  - FTS_SET
  - FTS_CHILDREN
  - dirent_not_directory
  - internal_function::fts_build
  - internal_function::fts_stat
  - internal_function::fts_sort
  - internal_function::fts_alloc
  - internal_function::fts_lfree
  - internal_function::fts_palloc
  - internal_function::fts_padjust
  - internal_function::fts_maxarglen
  - internal_function::fts_safe_changedir
  source_file: /src/clamav/clamonacc/misc/fts.c
- function_names:
  - onas_send_stream
  - onas_send_fdpass
  - onas_fdpass
  - onas_dsresult
  source_file: /src/clamav/clamonacc/client/protocol.c
- function_names:
  - onas_set_sock_only_once
  - onas_get_sockd
  source_file: /src/clamav/clamonacc/client/socket.c
- function_names:
  - onas_print_server_version
  - onas_check_remote
  - onas_ping_clamd
  - onas_curl_init
  - onas_setup_client
  - onas_get_clamd_version
  - onas_client_scan
  source_file: /src/clamav/clamonacc/client/client.c
- function_names: []
  source_file: /src/clamav/clamonacc/client/communication.h
- function_names: []
  source_file: /src/clamav/clamonacc/client/client.h
- function_names: []
  source_file: /src/clamav/clamonacc/client/socket.h
- function_names: []
  source_file: /src/clamav/clamonacc/client/protocol.h
- function_names:
  - onas_socket_wait
  - onas_sendln
  - onas_recvlninit
  - onas_recvln
  - onas_fd_recvln
  source_file: /src/clamav/clamonacc/client/communication.c
- function_names: []
  source_file: /src/clamav/clamonacc/c-thread-pool/thpool.h
- function_names:
  - thpool_init
  - thpool_add_work
  - thpool_wait
  - thpool_destroy
  - thpool_pause
  - thpool_resume
  - thpool_num_threads_working
  - thread_init
  - thread_hold
  - thread_do
  - thread_destroy
  - jobqueue_init
  - jobqueue_clear
  - jobqueue_push
  - jobqueue_pull
  - jobqueue_destroy
  - bsem_init
  - bsem_reset
  - bsem_post
  - bsem_post_all
  - bsem_wait
  source_file: /src/clamav/clamonacc/c-thread-pool/thpool.c
- function_names:
  - detail_exists
  - detail_is_selected
  - resize
  - rm_windows
  - init_windows
  - init_ncurses
  - win_start
  - print_colored
  - header
  - show_bar
  - cleanup
  - exit_program
  - tasks_compare
  - print_con_info
  - get_ip
  - get_port
  - make_ip
  - make_connection_real
  - make_connection
  - send_string_noreconn
  - send_string
  - reconnect
  - recv_line
  - output_queue
  - parse_queue
  - output_memstats
  - parse_memstats
  - output_stats
  - output_all
  - parse_stats
  - read_version
  - sigint
  - help
  - setup_connections
  - free_global_stats
  - explain
  - show_help
  - main
  source_file: /src/clamav/clamdtop/clamdtop.c
- function_names:
  - get_unicode_name
  - output_token
  - output_token67
  - output_token73
  - print_hex_buff
  - wm_decode_macro
  source_file: /src/clamav/sigtool/vba.c
- function_names: []
  source_file: /src/clamav/sigtool/vba.h
- function_names:
  - getdbname
  - hexdump
  - hashpe
  - hashsig
  - fuzzy_img_file
  - fuzzy_img
  - convenience_ctx
  - destroy_ctx
  - htmlnorm
  - asciinorm
  - utf16decode
  - sha256file
  - writeinfo
  - qcompare
  - removeTempDir
  - get_sign_file_name
  - sign
  - verify
  - build
  - unpack
  - cvdinfo
  - listdir
  - listdb
  - listsigs
  - createTempDir
  - setTempDir
  - scanfile
  - vba_callback
  - vbadump
  - comparesha
  - rundiff
  - maxlinelen
  - compare
  - compareone
  - dircopy
  - verifydiff
  - matchsig
  - decodehexstr
  - get_paren_end
  - decodehexspecial
  - decodehex
  - decodesigmod
  - decodecdb
  - decodeftm
  - decodesig
  - decodesigs
  - testsigs
  - diffdirs
  - makediff
  - dumpcerts
  - help
  - main
  source_file: /src/clamav/sigtool/sigtool.c
- function_names:
  - execute
  source_file: /src/clamav/freshclam/execute.c
- function_names: []
  source_file: /src/clamav/freshclam/notify.h
- function_names:
  - sighandler
  - writepid
  - help
  - libclamav_msg_callback
  - libclamav_msg_callback_quiet
  - download_complete_callback
  - get_server_node
  - string_list_add
  - free_string_list
  - get_database_server_list
  - get_string_list
  - initialize
  - get_official_database_lists
  - select_from_official_databases
  - select_specific_databases
  - executeIfNewVersion
  - perform_database_update
  - main
  source_file: /src/clamav/freshclam/freshclam.c
- function_names: []
  source_file: /src/clamav/freshclam/execute.h
- function_names:
  - clamd_connect
  - notify
  source_file: /src/clamav/freshclam/notify.c
